Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MODEL CALCULATION UNIT AND CONTROL DEVICE FOR CALCULATING A MULTILAYER PERCEPTRON MODEL WITH FEED-FORWARD AND FEEDBACK
Document Type and Number:
WIPO Patent Application WO/2018/046416
Kind Code:
A1
Abstract:
The invention relates to a model calculation unit (22) for calculating a multilayer perceptron model, wherein the model calculation unit (22) is formed in hardware and is hard-wired, comprising: • - a calculation core (18); • - a memory (12); • - a DMA unit (17) which is designed to successively instruct the calculation core (18) to calculate a neuron layer in each case based on input variables of an associated input variable vector (101) and to store the respectively resulting output variables of an output variable vector (102) in an associated data memory section (D), wherein the data memory section (D) for the input variable vector (101) associated with at least one of the neuron layers at least partially comprises in each case the data memory sections (D) of at least two of the output variable vectors (102) of two different neuron layers.

Inventors:
MARKERT HEINER (DE)
GUNTORO ANDRE (DE)
SCHIEGG MARTIN (DE)
Application Number:
PCT/EP2017/072043
Publication Date:
March 15, 2018
Filing Date:
September 04, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06N3/063; F02P5/15; G05B13/04; G06F15/78; G06N7/00
Foreign References:
DE29521338U11997-03-20
Other References:
EPPLER W ET AL: "High speed neural network chip for trigger purposes in high energy physics", DESIGN, AUTOMATION AND TEST IN EUROPE, 1998., PROCEEDINGS PARIS, FRANCE 23-26 FEB. 1998, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 23 February 1998 (1998-02-23), pages 108 - 115, XP010268412, ISBN: 978-0-8186-8359-6, DOI: 10.1109/DATE.1998.655844
RICHARD FIIFI TURKSON ET AL: "Artificial neural network applications in the calibration of spark-ignition engines: An overview", ENGINEERING SCIENCE AND TECHNOLOGY, AN INTERNATIONAL JOURNAL, vol. 19, no. 3, 16 April 2016 (2016-04-16), pages 1346 - 1359, XP055420859, ISSN: 2215-0986, DOI: 10.1016/j.jestch.2016.03.003
KEUNTAK YANG ET AL: "A Multi-Layer Perceptron SoC for Smart Devices", COMPUTER SCIENCE AND ENGINEERING, vol. 2, no. 7, 7 January 2013 (2013-01-07), pages 133 - 137, XP055303611, ISSN: 2163-1484, DOI: 10.5923/j.computer.20120207.02
TIANSHI CHEN ET AL: "DianNao", ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 24 February 2014 (2014-02-24), pages 269 - 284, XP058044553, ISBN: 978-1-4503-2305-5, DOI: 10.1145/2541940.2541967
Download PDF:
Claims:
Ansprüche

1 . Modellberechnungseinheit (22) zur Berechnung eines mehrschichtigen Perzept- ronenmodells, wobei die Modellberechnungseinheit (22) in Hardware ausgebildet und fest verdrahtet ist, umfassend:

einen Rechenkern (18), der ausgebildet ist, um eine oder mehrere Ausgangsgrößen eines Ausgangsgrößenvektors (102) einer Neuronenschicht des mehrschichtigen Perzeptronenmodells mit einer Anzahl von Neuronen abhängig von einer oder mehreren Eingangsgrößen eines Eingangsgrößenvektors (101 ) zu berechnen;

einen Speicher (12), in dem ein Datenspeicherbereich (122) vorgesehen ist, in dem jeder Neuronenschicht ein Datenspeicherabschnitt (D) zum Speichern der Eingangsgrößen des Eingangsgrößenvektors (101 ) und ein Datenspeicherabschnitt (D) zum Speichern der Ausgangsgrößen des Ausgangsgrößenvektors (102) zugeordnet ist;

eine DMA-Einheit (17), die ausgebildet ist, um den Rechenkern (18) nacheinander anzuweisen, jeweils eine Neuronenschicht basierend auf Eingangsgrößen des zugeordneten Eingangsgrößenvektors (101 ) zu berechnen und die jeweils resultierenden Ausgangsgrößen des Ausgangsgrößenvektors (102) in den zugeordneten Datenspeicherabschnitt (D) zu speichern,

wobei der Datenspeicherabschnitt (D) für den mindestens einer der Neuro- nenschichten zugeordneten Eingangsgrößenvektor (101 ) die Datenspeicherabschnitte (D) von mindestens zwei der Ausgangsgrößenvektoren (102) von zwei verschiedenen Neuronenschichten jeweils zumindest teilweise umfassen.

2. Modellberechnungseinheit (22) nach Anspruch 1 , wobei der Datenspeicherabschnitt (D) für den mindestens einer der Neuronenschichten zugeordneten Eingangsgrößenvektor (101 ) den Datenspeicherabschnitt (D) des Ausgangsgrößenvektors (102) der vorangehenden Neuronenschicht vollständig umfasst. Modellberechnungseinheit (22) nach Anspruch 1 oder 2, wobei der Datenspeicherabschnitt (D) für den mindestens einer der Neuronenschichten zugeordneten Eingangsgrößenvektor (101 ) den Datenspeicherabschnitt (D) des Ausgangsgrößenvektors (102) einer anderen als der vorangehenden Neuronenschicht, insbesondere einer vorangehenden oder nachfolgenden Neuronenschicht, teilweise umfasst.

Modellberechnungseinheit (22) nach einem der Ansprüche 1 bis 3, wobei die Datenspeicherabschnitte (D) der mindestens zwei Ausgangsgrößenvektoren (102) der zwei verschiedenen Neuronenschichten im Adressbereich des Datenspeicherbereichs (D) aneinander angrenzen.

Modellberechnungseinheit (22) nach einem der Ansprüche 1 bis 4, wobei der Speicher für jede Neuronenschicht einen Konfigurationsspeicherbereich (A) zum Speichern von Konfigurationsparametern in einem jeweiligen Konfigurationsspeicherabschnitt (A) aufweist; wobei die DMA-Einheit (17) ausgebildet ist, um den Rechenkern (18) nacheinander anzuweisen, jeweils eine Neuronenschicht basierend auf den Konfigurationsparametern eines jeweiligen Konfigurationsspeicherabschnitts (A) und den dadurch definierten Eingangsgrößenvektor zu berechnen und den jeweils resultierenden Ausgangsgrößenvektor (102) in einen durch die entsprechenden Konfigurationsparameter definierten Datenspeicherabschnitt (D) des Datenspeicherbereichs (122) zu speichern.

Modellberechnungseinheit (22) nach einem der Ansprüche 1 bis 5, wobei der Rechenkern (18) ausgebildet ist, um das Ende der aktuellen Berechnung der Neuronenschicht an die DMA-Einheit (17) oder nach extern zu signalisieren, wobei die DMA-Einheit (17) die Berechnung der nächsten Neuronenschicht basierend auf in einem weiteren Konfigurationsspeicherabschnitt (A) gespeicherten Konfigurationsparameter startet.

Modellberechnungseinheit (22) nach einem der Ansprüche 1 bis 6, wobei der Rechenkern (18) ausgebildet ist, um für eine Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einer Anzahl von Neuronen (20) abhängig von einer oder mehreren Eingangsgrößen eines Eingangsgrößenvektors, von einer Gewichtungsmatrix mit Gewichtungsfaktoren und einen für jedes Neuron vorgegebenen Offsetwert eine Ausgangsgröße für jedes Neuron zu berechnen, wobei für jedes Neuron eine Summe der mit einem durch das Neuron und die Eingangsgröße bestimmten Gewichtungsfaktor gewichteten Werte der Eingangsgrößen und dem dem Neuron vorgegebenen Offsetwert berechnet wird und das Ergebnis mit einer Aktivierungsfunktion transformiert wird, um die Ausgangsgröße für das betreffende Neuron (20) zu erhalten.

8. Modellberechnungseinheit (22) nach einem der Ansprüche 1 bis 7, wobei der Rechenkern (18) in einem Flächenbereich eines integrierten Bausteins ausgebildet ist.

9. Steuergerät (2) mit einem Mikroprozessor (21 ) und einer oder mehreren Modellberechnungseinheiten (22) nach einem der Ansprüche 1 bis 8.

10. Steuergerät (2) nach Anspruch 9, wobei das Steuergerät (2) als eine integrierte Schaltung ausgebildet ist.

1 1 . Verwendung des Steuergeräts (2) nach Anspruch 9 oder 10 als ein Steuergerät (2) zur Steuerung eines Motorsystems (1 ) in einem Kraftfahrzeug.

Description:
Beschreibung Titel

Modellberechnungseinheit und Steuergerät zur Berechnung eines mehrschichtigen Perzeptronenmodells mit Vorwärts- und Rückkopplung

Technisches Gebiet

Die Erfindung betrifft die Berechnung von Funktionsmodellen in einer separaten hartverdrahteten Modellberechnungseinheit, insbesondere zur Berechnung von mehrschichtigen Perzeptronenmodellen.

Technischer Hintergrund

Funktionen von Steuerungen von technischen Systemen, wie z.B. Verbrennungsmotoren, Elektroantrieben, Batteriespeicher und dergleichen, werden häufig mit Modellen realisiert, die ein mathematisches Abbild des realen Systems darstellen. Jedoch mangelt es bei physikalischen Modellen, insbesondere bei komplexen Zusammenhängen, an der erforderlichen Berechnungsgenauigkeit, und es ist bei heutigen Rechenkapazitäten in der Regel schwierig, derartige Modelle innerhalb der für ein Motorsteuergerät geforderten Echtzeitanforderungen zu berechnen. Für solche Fälle ist angedacht, datenbasierte Modelle zu verwenden, die Zusammenhänge zwischen einer Ausgangsgröße und Eingangsgrößen ausschließlich auf der Basis von mit Hilfe eines Prüfstands oder dergleichen erhaltenen Trainingsdaten beschreiben. Insbesondere eignen sich datenbasierte Modelle zum Modellieren von komplexen Zusammenhängen, bei denen mehrere Eingangsgrößen, zwischen denen Wechselbeziehungen bestehen, in geeigneter Weise in dem Modell berücksichtigt werden. Zudem bietet die Modellierung mit Hilfe von datenbasierten Modellen die Möglichkeit, das Modell durch Hinzufügen von einzelnen Eingangsgrößen zu ergänzen.

Datenbasierte Funktionsmodelle basieren in der Regel auf einer großen Anzahl von Stützstellen, um eine für die jeweilige Anwendung ausreichende Modellierungsgenauigkeit zu erreichen. Aufgrund der hohen Anzahl der Stützstellen wird zur Berechnung eines Modellwertes mit einem datenbasierten Funktionsmodell, wie beispielsweise einem Gauß-Prozess-Modell oder einem mehrschichtigen Perzeptronenmodell, eine hohe Rechenkapazität benötigt. Um ein derartiges datenbasiertes Funktionsmodell in einer Steuergeräteanwendung in Echtzeit berechnen zu können, können daher auf einer Hardwareausgestaltung basierende Modellberechnungseinheiten vorgesehen sein.

Offenbarung der Erfindung

Erfindungsgemäß sind eine Modellberechnungseinheit zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells gemäß Anspruch 1 sowie ein Steuergerät und eine Verwendung des Steuergeräts nach einem der nebengeordneten Ansprüche vorgesehen.

Weitere Ausgestaltungen sind in den abhängigen Ansprüchen angegeben.

Gemäß einem ersten Aspekt ist eine Modellberechnungseinheit zur Berechnung eines mehrschichtigen Perzeptronenmodells, wobei die Modellberechnungseinheit in Hardware ausgebildet und fest verdrahtet ist, umfassend:

einen Rechenkern, der ausgebildet ist, um eine oder mehrere Ausgangsgrößen eines Ausgangsgrößenvektors einer Neuronenschicht des mehrschichtigen Perzeptronenmodells mit einer Anzahl von Neuronen abhängig von einer oder mehreren Eingangsgrößen eines Eingangsgrößenvektors zu berechnen;

einen Speicher, in dem ein Datenspeicherbereich vorgesehen ist, in dem jeder Neuronenschicht ein Datenspeicherabschnitt zum Speichern der Eingangsgrößen des Eingangsgrößenvektors und ein Datenspeicherabschnitt zum Speichern der Ausgangsgrößen des Ausgangsgrößenvektors zugeordnet ist;

eine DMA-Einheit, die ausgebildet ist, um den Rechenkern nacheinander anzuweisen, jeweils eine Neuronenschicht basierend auf Eingangsgrößen des zugeordneten Eingangsgrößenvektors zu berechnen und die jeweils resultierenden Ausgangsgrößen des Ausgangsgrößenvektors in den zugeordneten Datenspeicherabschnitt zu speichern,

wobei der Datenspeicherabschnitt für den mindestens einer der Neuronen- schichten zugeordneten Eingangsgrößenvektor die Datenspeicherabschnitte von mindestens zwei der Ausgangsgrößenvektoren von zwei verschiedenen Neuronenschichten jeweils zumindest teilweise umfassen.

Die obige Modellberechnungseinheit sieht eine Ausgestaltung vor, die es ermöglicht, mehrere Neuronenschichten eines mehrschichtigen Perzeptronenmodells (MLP-Modells) als Teil eines datenbasierten Modells mit jeweils einer variablen Anzahl von Neuronen zu berechnen. Die Verwendung von mehrschichtigen Perzeptronenmodellen stellt eine datenbasierte Modellierung mit einer geringeren Anzahl von Stützstellenpunkten dar als bei vergleichbaren datenbasierten Modellen, wie beispielsweise einem Gauß-Prozess-Modell.

Eine Idee der obigen Modellberechnungseinheit besteht darin, diese zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells in Hardwarestrukturen separat in einem Rechenkern in einem Steuergerät auszubilden. Auf diese Weise kann eine im Wesentlichen fest verdrahtete Hardwareschaltung zur Realisierung von Funktionen bereitgestellt werden, die es ermöglicht, eine oder mehrere Neuronenschichten eines mehrschichtigen Perzeptronenmodells zu berechnen und dabei nur eine sehr geringe Rechenlast in einem softwaregesteuerten Mikroprozessor eines Steuergeräts zu bewirken. Durch die Hardwarebeschleunigung, die durch die Modellberechnungseinheit bereitgestellt wird, kann ein mehrschichtiges Perzeptronenmodell in Echtzeit berechnet werden, so dass die Verwendung eines solchen Modells für Steuergeräteanwendungen für Verbrennungsmotoren in Kraftfahrzeugen interessant wird.

Die obige in Hardware ausgebildete Modellberechnungseinheit ermöglicht eine automatische, nacheinander stattfindende Berechnung von mehreren Neuronen- schichten eines mehrschichtigen Perzeptronenmodells in einem Rechenkern in einem Steuergerät. Durch die Auslagerung einer Berechnung eines mehrschichtigen Perzeptronenmodells in eine separate Modellberechnungseinheit, die hartverdrahtet ausgebildet ist, ist es möglich, die Berechnungslast in einem Mikroprozessor des Steuergeräts zu reduzieren und die Kommunikation zwischen einem Mikroprozessor und der Modellberechnungseinheit zur Berechnung eines mehrschichtigen Perzeptronenmodells möglichst zu reduzieren und so den Zeitaufwand für die Berechnung eines Modellwertes zu minimieren.

Bei der Berechnung eines Modellwerts für ein mehrschichtiges Perzeptronenmo- dell werden in der Regel schichtweise Berechnungen ausgeführt, wobei eine Eingangsgröße eines Eingangsgrößenvektors einer ersten Neuronenschicht zugeführt wird und durch die Berechnung der ersten Neuronenschicht Zwischenausgangsgrößen eines Zwischenausgangsgrößenvektors erhalten werden, die wiederum als Zwischeneingangsgrößen für eine nachgeordnete Neuronenschicht des Perzeptronenmodells dienen.

Entsprechend der Anzahl der Neuronenschichten des Perzeptronenmodells werden diese Berechnungen nacheinander durchgeführt, um als Ergebnis einer letzten Neuronenschicht den Modellwert zu erhalten. Dazu ist eine Speicherstruktur vorgesehen, die gemeinsam mit einer DMA-Einheit eine Steuerung des Berechnungsablaufs vornehmen kann.

Zusätzlich zu dem oben beschriebenen Perzeptronenmodell, die eine reine sukzessive Berechnung über verschiedene Neuronenschichten beinhalten, sind weitere Perzeptronenmodelle bekannt, die ein Rückkopplungsnetzwerk, d.h. eine Rückkopplung von Ausgangsgrößen einer Neuronenschicht auf einige der Eingangsgrößen eines Eingangsgrößenvektors einer vorangehenden Neuronenschicht aufweisen. Dadurch können die Speicherung von vorangehenden Zuständen in den Neuronen realisiert werden. Die werden im folgenden rückgekoppelte Perzeptronenmodelle genannt.

Weiterhin können Perzeptronenmodelle vorgesehen sein, die ein Vorwärtskopp- lungsnetzwerk beinhalten, d.h. bei denen ein Teil der Ausgangsgrößen nicht in zumindest einer unmittelbar nachfolgenden Neuronenschicht berücksichtigt wird, so dass ein Teil der Zwischenausgangsgrößen einer Neuronenschicht als Eingangsgrößen einer nicht unmittelbar darauffolgende Neuronenschicht, d.h. unter Überspringung der unmittelbar nachfolgenden Neuronenschicht, verwendet werden. Die werden im folgenden vorwärtsgekoppelte Perzeptronenmodelle genannt. Diese können auch in Kombination mit rückgekoppelten Perzeptronenmo- dellen ausgebildet sein.

Durch Vorsehen eines Datenspeicherbereichs mit jeweiligen Abschnitten zum Speichern von Eingangsgrößen des Eingangsgrößenvektors einer Neuronschicht und von Eingangsgrößen eines Eingangsgrößenvektors für weitere nachfolgende Neuronenschichten kann eine automatische Berechnung des Modellwerts in der Modellberechnungseinheit ohne weiteren Kopierprozess vorgesehen werden. Dabei werden die Ausgangsgrößen der Ausgangsgrößenvektoren jeder Neuronenschicht, jeweils in den Abschnitt des Datenspeicherbereichs zum Speichern der Eingangsgrößen der jeweils nächsten zu berechnenden Neuronenschicht gespeichert. Durch erneutes Aktivieren der Berechnung einer entsprechenden Neuronenschicht in dem Rechenkern durch die DMA-Einheit kann so eine vorgegebene Anzahl von Neuronenschichten des mehrschichtigen Perzeptronenmodells automatisch berechnet werden.

Rückgekoppelte und/oder vorwärtsgekoppelte Perzeptronenmodelle können realisiert werden, indem ein Datenspeicherabschnitt für den Eingangsgrößenvektor einer Neuronenschicht so im Adressbereich des Datenspeicherbereichs positioniert wird, dass dieser Datenspeicherabschnitte, die Ausgangsgrößenvektoren verschiedener Neuronenschichten zugeordnet sind, ganz oder teilweise überlappen. Dadurch, dass zwischen den Aufrufen zur Berechnung des Perzeptronenmodells der Datenspeicherbereich nicht gelöscht ober überschrieben wird, stehen in bestimmten Datenspeicherabschnitten des Datenspeicherbereichs die Ausgangsgrößenvektoren vorhergehender Berechnungen von Neuronenschichten des Perzeptronenmodells weiterhin zur Verfügung und können abhängig von der Positionierung des Datenspeicherabschnitts des Eingangsgrößenvektors als Teil des Eingangsgrößenvektors zur Berechnung einer Neuronenschicht verwendet werden. Dadurch ergibt sich automatisch eine Rückkopplung. Das Überspringen einer Neuronenschicht bei den vorwärtsgekoppelten Perzept- ronenmodellen kann auf vergleichbare Weise durch Überlappen des Abschnitts des Datenspeicherbereichs zum Speichern der Zwischenausgangsgrößen einer Neuronenschicht mit dem Abschnitt des Datenspeicherbereichs zum Speichern der Eingangsgrößen einer nicht unmittelbar darauffolgenden Neuronenschicht realisiert werden.

Insbesondere kann ein Konfigurationsspeicherbereich vorgesehen sein, der den Ablauf der Berechnung konfiguriert und es ermöglicht, eine Anzahl von Neuro- nenschichten und eine vorgebbare Anzahl von Neuronen für jede Neuronenschicht zu parametrisieren und deren Berechnungsreihenfolge festzulegen. Weiterhin sieht die DMA-Einheit vor, einen Abschnitt des Datenspeicherbereichs, aus dem Eingangsgrößen eines Eingangsgrößenvektors gelesen und in den Ausgangsgrößen eines Ausgangsgrößenvektors einer Neuronenschicht geschrieben werden, so zu adressieren, dass Ausgangsgrößen einer Berechnung einer Neuronenschicht als Zwischeneingangsgrößen für eine nachfolgende Neuronenschicht umdefiniert werden. Dadurch kann durch automatisches Starten einer erneuten Berechnung einer Neuronenschicht ein Ablauf einer mehrschichtigen Berechnung des Perzeptronenmodells durch eine geeignete Parametrisierung in dem Konfigurationsspeicherbereich des Speichers des Rechenkerns vorgesehen werden. Auf diese Weise ist es möglich, einem Rechenkern eine Aufgabe zur Berechnung eines mehrschichtigen Perzeptronenmodells von einem Mikroprozessor vorzugeben und ohne weitere Eingriffe durch den Mikroprozessor einen Modellwert als Ausgangswert des mehrschichtigen Perzeptronenmodells von dem Mikroprozessor nach Beendigung der Berechnung abzurufen bzw. zu empfangen.

Weiterhin kann der Datenspeicherabschnitt für den mindestens einer der Neuro- nenschichten zugeordneten Eingangsgrößenvektor den Datenspeicherabschnitt des Ausgangsgrößenvektors der vorangehenden Neuronenschicht vollständig umfassen.

Ferner kann der Datenspeicherabschnitt für den mindestens einer der Neuronen- schichten zugeordneten Eingangsgrößenvektor den Datenspeicherabschnitt des Ausgangsgrößenvektors einer anderen als der vorangehenden Neuronenschicht, insbesondere einer vorangehenden oder nachfolgenden Neuronenschicht, teilweise enthalten bzw. umfassen.

Es kann vorgesehen sein, dass die Datenspeicherabschnitte der mindestens zwei Ausgangsgrößenvektoren der zwei verschiedenen Neuronenschichten im Adressbereich des Datenspeicherbereichs aneinander angrenzen.

Gemäß einer Ausführungsform kann der Speicher für jede Neuronenschicht einen Konfigurationsspeicherbereich zum Speichern von Konfigurationsparametern in einem jeweiligen Konfigurationsspeicherabschnitt aufweisen; wobei die DMA- Einheit ausgebildet ist, um den Rechenkern nacheinander anzuweisen, jeweils eine Neuronenschicht basierend auf den Konfigurationsparametern eines jeweiligen Konfigurationsspeicherabschnitts und den dadurch definierten Eingangsgrößenvektor zu berechnen und den jeweils resultierenden Ausgangsgrößenvektor in einen durch die entsprechenden Konfigurationsparameter definierten Datenspeicherabschnitt des Datenspeicherbereichs zu speichern.

Weiterhin kann vorgesehen sein, dass die DMA-Einheit ausgebildet ist, um nach Abschluss der Berechnung der Neuronenschicht, die Konfigurationsparameter für die nächste Neuronenschicht dem Rechenkern bereitzustellen, wobei die Berechnung abhängig von einem oder mehreren Konfigurationsparametern beendet wird.

Gemäß einer Ausführungsform kann der Rechenkern ausgebildet sein, um das Ende der aktuellen Berechnung der Neuronenschicht an die DMA-Einheit zu signalisieren, wobei die DMA-Einheit die Berechnung der nächsten Neuronenschicht basierend auf in einem weiteren Konfigurationsspeicherabschnitt gespeicherten Konfigurationsparameter startet.

Weiterhin kann der Rechenkern ausgebildet sein, um für eine Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einer Anzahl von Neuronen abhängig von einer oder mehreren Eingangsgrößen eines Eingangsgrößenvektors, von einer Gewichtungsmatrix mit Gewichtungsfaktoren und einen für jedes Neuron vorgegebenen Offsetwert eine Ausgangsgröße für jedes Neuron zu berechnen, wobei für jedes Neuron eine Summe der mit einem durch das Neuron und die Eingangsgröße bestimmten Gewichtungsfaktor gewichteten Werte der Eingangsgrößen mit dem dem Neuron vorgegebenen Offsetwert beaufschlagt wird und das Ergebnis mit einer Aktivierungsfunktion transformiert wird, um die Ausgangsgröße für das betreffende Neuron zu erhalten.

Gemäß einer Ausführungsform kann der Rechenkern in einem Flächenbereich eines integrierten Bausteins ausgebildet sein.

Gemäß einem weiteren Aspekt ist ein Steuergerät mit einem Mikroprozessor und einer oder mehreren der obigen Modellberechnungseinheiten vorgesehen, wobei das Steuergerät insbesondere als eine integrierte Schaltung ausgebildet ist.

Gemäß einem weiteren Aspekt ist eine Verwendung des obigen Steuergeräts als ein Steuergerät zur Steuerung eines Motorsystems mit einem Verbrennungsmotor und/oder mit einem Elektroantrieb und/oder eines Energiespeichers in einem Kraftfahrzeug vorgesehen.

Kurzbeschreibung der Zeichnungen

Ausführungsformen werden nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:

Figur 1 eine schematische Darstellung eines Steuergeräts zum Einsatz für ein Motorsystem in einem Kraftfahrzeugs;

Figur 2 eine schematische Darstellung einer Berechnungseinheit als

Teil des Steuergeräts;

Figur 3 eine schematische Darstellung einer Neuronenschicht eines

MLP-Modells; und

Figuren 4a-4d Darstellungen von möglichen Aktivierungsfunktionen; Figur 5 einen Konfigurationsspeicherabschnitt eines Konfigurationsspeicherbereichs des Rechenkerns;

Figuren 6a und 6b eine Aufteilung eines Konfigurationsspeicherbereichs und eines Datenspeicherbereichs; und

Figur 7 ein Flussablaufdiagramm zur Darstellung der Funktion der

DMA-Einheit der Modellberechnungseinheit;

Figur 8 eine schematische Darstellung eines Perzeptronenmodells mit rückgekoppelten und vorwärtsgekoppelten Neuronen- schichten; und

Figur 9 eine schematische Darstellung von beispielhaften Adresspositionen der Datenspeicherabschnitte für den Eingangsgrößenvektor und Ausgangsgrößenvektor der verschiedenen Neuronenschichten für das Perzeptronenmodell der Figur 8.

Beschreibung von Ausführungsformen

Figur 1 zeigt beispielhaft eine schematische Darstellung eines Steuergeräts 2 für ein Motorsystem 1 mit einem Verbrennungsmotor 3 als ein Beispiel für ein zu steuerndes technisches System. Das Steuergerät 2 umfasst einen Mikroprozessor 21 und eine Modellberechnungseinheit 22, die als separate Bauteile oder in integrierter Weise in separaten Flächenbereichen auf einem Chip ausgebildet sein können. Insbesondere stellt die Modellberechnungseinheit 22 eine Hardwareschaltung dar, die strukturell von einem Rechenkern des Mikroprozessors 21 getrennt sein kann.

Die Modellberechnungseinheit 22 ist im Wesentlichen hartverdrahtet und dementsprechend nicht wie der Mikroprozessor 21 dazu ausgebildet, einen Softwarecode auszuführen und dadurch eine variable durch Software vorgegebene Funktion auszuführen. Mit anderen Worten ist in der Modellberechnungseinheit 22 kein Prozessor vorgesehen, so dass diese nicht durch einen Softwarecode be treibbar ist. Durch die Fokussierung auf eine vorgegebene Modellfunktion wird eine ressourcenoptimierte Realisierung einer solchen Modellberechnungseinheit 22 ermöglicht. In integrierter Aufbauweise kann die Modellberechnungseinheit 22 flächenoptimiert realisiert werden, die zudem schnelle Berechnungen ermöglicht.

Das Steuergerät 2 dient im Wesentlichen dazu, Sensorsignale S bzw. Sensorgrößen, die von einer Sensorik in dem Verbrennungsmotor 3 erfasst werden, und/oder externe Vorgaben V zu verarbeiten und zyklisch in fest vorgegebenen Zeitabständen von z.B. 1 - 100ms oder winkelsynchron in Abhängigkeit zu einem Kurbelwellenwinkel eines betriebenen Verbrennungsmotors, Werte von einer o- der mehreren entsprechenden Ansteuergrößen A an den Verbrennungsmotor 3 anzulegen, so dass dieser in an sich bekannter Weise betreibbar ist.

In Figur 2 ist eine Modellberechnungseinheit 22 ausführlicher dargestellt. Die Modellberechnungseinheit 22 umfasst eine Zustandsmaschine 1 1 , einen Speicher 12 und einen oder mehrere Operationsblöcke, die beispielsweise einen oder mehrere MAC-Blöcke 13 (MAC: Multiply-ACcumulate für Festkomma- Berechnung oder FMA: Fused-Multiply-Add für Gleitkomma-Berechnung) und einen Aktivierungsfunktion-Berechnungsblock 14 zur Berechnung einer Aktivierungsfunktion ACT sowie optional einen Addierblock 15 und/oder einen Multiplikationsblock 16. Die Zustandsmaschine 1 1 und der eine oder die mehreren Operationsblöcke bilden den Rechenkern 18 der Modellberechnungseinheit 22. Mit Hilfe der Zustandsmaschine 1 1 können in einem Datenspeicherbereich 122 (Eingangsgrößenspeicherbereich) in dem Speicher 12 abgelegte Werte von Eingangsgrößen durch geschachtelte Schleifenberechnungen verrechnet werden, um Zwischenausgangsgrößen bzw. Ausgangsgrößen zu erhalten, die in einen entsprechenden der berechneten Neuronenschicht zugeordneten Ausgangsgrößenspeicherbereich des Speichers 12 geschrieben werden.

Die Steuerung der Berechnung kann mithilfe einer DMA-Einheit 17 (DMA: Direct Memory Access) vorgenommen werden, wobei die DMA-Einheit 17 einen oder mehrere Kopiervorgänge in Register des Rechenkerns und in Datenspeicherbereiche vornimmt, die für die Berechnung der jeweiligen Neuronenschicht relevant sind. Die Zustandsmaschine 1 1 ist so ausgelegt, um eine einzelne Neuronenschicht eines mehrschichtigen Perzeptronenmodells zu berechnen. Die Zustandsmaschine 1 1 kann anhand des nachfolgenden Pseudocodes beschrieben werden:

/* Eingangstransformation */

for (k=0; k<p7; k++) {

ut[k] = u[k]*pl[k] + p2[k];

}

/* Schleifenberechnung */

for (j=p8; j<p6; j++) {

i = j * p7;

t = p3[j];

for (k=0; k<p7; k++) {

t += V[i+k] * ut[k];

}

y[j] = act(t);

}

/* Ausgangstransformation */

for (k=0; k<p6; k++) {

z[k] = y[k] * p4[k] + p5[k];

}

Mit

p7: maximaler Indexwert für die Eingangsgrößen des Eingangsgrößenvektors

p8: minimaler Indexwert bzw. Anfangswert für die Berechnung der Neuronen der aktuellen Neuronenschicht

p6: maximaler Indexwert für die Neuronen der aktuellen Neuronenschicht p3: Offsetwert

p1 , p2: Variablen für die Eingangstransformation

p4, p5: Variablen für die Ausgangstransformation

Mit Hilfe des obigen Pseudocodes lässt sich folgende Berechnung für jedes Neuron der zu berechnenden Schicht durchführen: y\j] = act( P 3\j] + * Mt M) für j=0...p6-1

Dieses stellt eine Berechnung für eine Neuronenschicht eines mehrschichtigen Perzeptronenmodells dar, wie es in Figur 3 dargestellt ist. Figur 3 zeigt eine Neuronenschicht von mehreren Neuronen 20, denen Werte von Eingangsgrößen eines Eingangsgrößenvektors uto ... ut P 6-i zugeführt werden. Die Werte der Eingangsgrößen werden mit Hilfe einer entsprechenden vorgegebenen Gewichtungsmatrix aus Gewichtungsfaktoren vo... 7-i,o... P 6-i gewichtet. Die Gewichtung erfolgt in der Regel durch multiplikatives Beaufschlagen mit den zugeordneten Gewichtungsfaktoren vo... 7-i,o... 6-i . Die Gewichtungsfaktoren können allgemein die Werte des Eingangsgrößenvektors auch in anderer Weise beaufschlagen.

Die Summen der gewichteten Werte des Eingangsgrößenvektors uto ... ut P 6-i werden jeweils mit einem Offsetwert Oo ... 0 6-i beaufschlagt, insbesondere additiv beaufschlagt. Das Ergebnis wird mit einer vorgegebenen Aktivierungsfunktion „act" transformiert. Als Ergebnis erhält man einen entsprechenden Wert eines Ausgangsgrößenvektors yo . .. y 6-i . Durch das Vorsehen des Offsetwerts für jedes Neuron besteht ein weiterer Freiheitsgrad für die Modellbildung.

Durch Festlegen der Laufvariablen p6 kann die Anzahl der Neuronen 20 der zu berechnenden Neuronenschicht eingestellt werden. Ein mehrschichtiges Perzept- ronenmodell kann durch Verwenden der Werte des Ausgangsgrößenvektors yo . .. y P 6-i einer Neuronenschicht als Eingangsgrößenvektor für eine Berechnung einer nachfolgenden Neuronenschicht in der Modellberechnungseinheit 22 verwendet werden, so dass die Anzahl der Neuronenschicht des mehrschichtigen Perzeptronenmodells durch wiederholtes Aufrufen der Funktion gemäß dem obigen Pseudocode bzw. durch wiederholtes Aufrufen der Modellberechnungseinheit 22 mit entsprechend geänderten Parametern realisiert werden kann.

Es kann eine Eingangs- und/oder Ausgangstransformation der Eingangsgrößen des Eingangsgrößenvektors bzw. der Ausgangsgrößen des Ausgangsgrößenvektors mithilfe der für jedes Neuron vorgegebenen Normierungsvariablen p1 und p2 bzw. p4 und p5 vorgenommen werden. Diese Eingangs- und/oder Ausgangstransformation der Eingangsgrößen kann auch übersprungen werden.

Die schichtweise Berechnung des MLP-Modells ermöglicht eine schlanke Ausgestaltung der Modellberechnungseinheit 22, so dass deren Flächenbedarf in integrierter Bauweise gering ist. Trotzdem ermöglicht die Modellberechnungseinheit 22 eine Berechnung eines mehrschichtigen Perzeptronenmodells in einfacher Weise durch Rückführung oder Umdefinition der Werte der Ausgangsgrößen des Ausgangsgrößenvektors als Eingangsgrößen eines Eingangsgrößenvektors für die Berechnung einer weiteren Neuronenschicht.

Als Aktivierungsfunktion„act" kann eine von mehreren Aktivierungsfunktionen zur Verfügung gestellt werden, die durch den Aktivierungsfunktion-Berechnungsblock 14 der Modellberechnungseinheit 22 berechnet werden kann. Als Aktivierungsfunktionen können beispielsweise eine Knickfunktion, eine Tangens- Hyberbolicus-Funktion, eine Sigmoidfunktion oder eine lineare Funktion verwendet werden, wie sie in den Figuren 4a bis 4d entsprechend dargestellt sind.

Der Speicher 12 der Modellberechnungseinheit 22 weist einen Konfigurationsspeicherbereich 121 auf, der Konfigurationsparameter für eine vorgegebene Anzahl von Neuronenschichten in jeweiligen Konfigurationsspeicherabschnitten A speichern kann. Der Konfigurationsspeicherbereich 121 kann Teil eines Hauptspeichers des Steuergeräts sein, auf den sowohl von dem Mikroprozessor 21 als auch von der Modellberechnungseinheit 22 zugegriffen bzw. benutzt werden kann. Alternativ können die Konfigurationsspeicherabschnitte A auch in einem separaten Flash-Speicher oder in einem für den Rechenkern exklusiven Speicher vorgesehen sein.

Die Konfigurationsspeicherabschnitte A weisen einzelne Speicheradressen auf, in den die Konfigurationsparameter der Modellberechnungseinheit 22 entsprechend einer vorgegebenen Reihenfolge gespeichert werden, wie es in Figur 5 beispielhaft dargestellt ist. Zur Verwendung der einzelnen Konfigurationsspeicherabschnitte A werden die dort gespeicherten Werte für die Berechnung einer Neuronenschicht mit Hilfe der DMA-Einheit 17 in dafür vorgesehene Register des Rechenkerns kopiert. Der Kopiervorgang erfolgt ohne Zutun des MikroControllers 21 oder des Rechenkerns 18 sondern wird automatisch durch die DMA-Einheit 17 ausgeführt.

Die Adresspositionen Reg1 bis RegP des jeweiligen Konfigurationsspeicherabschnitts A umfassen Parameter für die Durchführung einer Berechnung in der betreffenden Neuronenschicht, der der Konfigurationsspeicherabschnitt A des Kon- figurationsspeicherbereichs 121 zugeordnet ist. Beispielsweise können die Konfigurationsspeicherpositionen Reg1 bis RegP die Parameter p1 bis p8 entsprechend dem obigen Pseudocode speichern sowie, insbesondere über entsprechende Adresszeiger, speichern, in welchen Datenspeicherabschnitten (durch Angabe einer entsprechenden Startadresse definierte Adressbereiche) des Datenspeicherbereichs 122 die für die betreffende (aktuell zu berechnende) Neuro- nenschicht relevanten Eingangsgrößen des Eingangsgrößenvektors bzw. Zwischeneingangsgrößen des Zwischeneingangsgrößenvektors, die Gewichtungsfaktoren der Gewichtungsmatrix, die Offset-Werte des Offsetvektors gespeichert sind.

Der Datenspeicherbereich 122 kann in einem Hauptspeicher des Steuergeräts oder in einem exklusiv der Modellberechnungseinheit 22 zugeordneten Speicher vorgesehen sein. Weiterhin kann einer der Konfigurationsparameter Reg1 bis RegP eine Startadresse für einen Datenspeicherabschnitt D zum Speichern der jeweiligen Ausgangsgrößen des resultierenden Ausgangsgrößenvektors angeben, die als Ergebnis der Berechnung in der Neuronenschicht erhalten werden. Die Verwendung von Adresszeigern hat Vorteile, da die Dimensionen der Modellparameter, des Eingangsgrößenvektors und des Ausgangsgrößenvektors variabel sind.

Weiterhin kann der Konfigurationsspeicherbereich 121 eine Adressposition zum Speichern einer Berechnungsstartinformation RegCtrl vorsehen, das bei Einschreiben eines bestimmten Datums die Berechnung der aktuellen (d.h. der dem jeweiligen Konfigurationsspeicherabschnitt A zugeordneten) Neuronenschicht in der Modellberechnungseinheit 22 startet.

Weiterhin kann ein separater Statusregisterspeicherbereich R eine oder mehrere Adresspositionen RegR01 bis RegROQ zum Speichern von Statusinformationen aufweisen. Die Statusinformationen können Rückmeldungen von der Berechnung der jeweiligen Neuronenschicht des Perzeptronenmodells angeben. Die Statusinformationen können beispielsweise eine Information über einen Rechenzustand der Modellberechnungseinheit 22 (idle/busy), über einen Berechnungsfortschritt (Position der Berechnung des Pseudo-Codes in der Zustandsmaschine, z.B. Berechnung der Eingangstransformation, der Hauptschleife, usw.), der Gültigkeit der Parameter (Inkorrekte Adresszeiger, falsche/nicht-unterstützte Werte (z.B. INFinity oder Not-a-Number in float)) und dergleichen aufweisen.

Weiterhin können ungenutzte Speicheradressen in jedem Konfigurationsspeicherabschnitt A vorgesehen sein, um der blockweisen Bearbeitung von Konfigurationsspeicherabschnitten A durch die DMA-Einheit 17 Rechnung zu tragen.

In Figur 6a ist die Anordnung von mehreren Konfigurationsspeicherabschnitten A in dem Konfigurationsspeicherbereich 121 dargestellt, in dem die Konfigurationsparameter in aufeinanderfolgenden Konfigurationsspeicherabschnitten A abgelegt sind, wie in Figur 6a dargestellt ist. Dort ist eine Anordnung von N Konfigurationsspeicherabschnitten mit Konfigurationsparametern für N Neuronenschichten MLP1 ...MLPN vorgegeben. Da sich die Anzahl der Konfigurationsparameter für jede Neuronenschicht nicht ändert, sind die Konfigurationsspeicherabschnitte A vorzugsweise mit jeweils gleicher Größe vorgesehen.

Einige der Konfigurationsparameter sind als Adresszeiger vorgesehen und entsprechend mit , * " gekennzeichnet. Wie in Figur 6b dargestellt, zeigen die Adresszeiger auf Startadressen von Datenspeicherabschnitte D des Datenspeicherbereichs 122 z.B. im Hauptspeicher des Steuergeräts, aus dem zur Berechnung der betreffenden Neuronenschicht die Eingangsgrößen des Eingangsgrößenvektors MLPx_EV bzw. die Zwischeneingangsgrößen MLPx_EV des Zwischeneingangsgrößenvektors (z.B. MLP1_Reg1 * , MLP2_Reg1 * usw.), Gewichtungsfaktoren aus der Gewichtungsmatrix, der Offset-Werte des Offset-Vektors abgerufen werden. Weiterhin zeigt einer der Adresszeiger auf einen Datenspeicherabschnitt D für das Speichern von resultierenden Ausgangsgrößen des Ausgangsgrößenvektors MLPx_AV bzw. (bei Vorhandensein einer nachfolgend zu berechnenden Neuronenschicht) von resultierenden Zwischenausgangsgrößen des Zwischenausgangsgrößenvektors MLPx_AV (z.B. MLP1_Reg2 * , MLP2_Reg2 * usw.). Durch die geeignete Parametrisierung der Konfigurationsparameter in aufeinanderfolgenden Konfigurationsspeicherabschnitten A ist vorzugsweise vorzusehen, dass die Startadresse des Datenspeicherabschnitts D zum Speichern des Ausgangsgrößenvektors einer Neuronenschicht der Startadresse des Datenspeicherabschnitts D zum Speichern des Eingangsgrößenvektors bzw. Zwischeneingangsgrößenvektors einer nachfolgenden Neuronenschicht entspricht. Die Datenspeicherabschnitte D des Datenspeicherbereichs 122 für die Eingangsund Ausgangsgrößen sind für jede Neuronenschicht mit einer vorgegebenen Anzahl von Adresspositionen vorgegeben, die eine entsprechende Anzahl von Neuronen der entsprechende Neuronenschicht des Perzeptronenmodells vorgeben. Die Startadressen des Eingangsgrößenvektors MLP1_EV und der Ausgangsgrößenvektors MLP1_AV der einzelnen Neuronenschicht werden nach Granularität des Speicherzugriffs partitioniert. Dadurch können ein oder mehrere nicht genutzte Datenspeicherabschnitte D entstehen, wie es beispielhaft in Figur 6b dargestellt ist. Die nicht genutzten Datenspeicherabschnitte können beispielsweise dann auftreten, wenn der Adresszeiger nur„Page"-weise adressieren kann, z.B. in Blöcken zu 8 oder 16 Bytes.

Somit muss der Mikroprozessor 21 lediglich die DMA-Einheit 17 initialisieren, um nacheinander die mehreren Neuronenschichten des Perzeptronenmodells zu berechnen, ohne eine entsprechende Programmablaufkontrolle durch den Mikroprozessor vorzusehen. Die Ablaufsteuerung durch aufeinander folgende Aufrufe der Berechnung einer Neuronenschicht erfolgt durch Kopiervorgänge der DMA- Einheit 17.

In Figur 7 ist ein Flussablaufdiagramm dargestellt, das die Steuerung der Modellberechnungseinheit durch die DMA-Einheit 17 darstellt. Zu Beginn wird eine Konfiguration durch den Mikroprozessor 21 vorgenommen, bei der entsprechende Modellparameter, d.h. die Werte der Eingangsgrößen der ersten Neuronenschicht, der Gewichtungsmatrizen für jede der Neuronenschicht und Offsetwerte des Offsetvektors für jede Neuronenschicht, und Konfigurationsparameter in die entsprechenden Datenspeicherabschnitte A des Datenspeicherbereichs 122 bzw. Konfigurationsspeicherabschnitt A des Konfigurationsspeicherbereichs 121 geschrieben werden, wobei Konfigurationsparameter in die entsprechenden Konfigurationsspeicherabschnitte A des Konfigurationsspeicherbereichs 121 definiert werden.

In Schritt S1 wird die DMA-Einheit 17 durch den MikroController 21 für einen Mul- tiple-Copy-Transfer z.B. mit inkrementierten Quelladressen des Konfigurationsspeicherbereichs 121 und mit den Registern der Berechnungseinheit als Kopier- ziel konfiguriert. Dadurch erfährt die DMA-Einheit 17 die Anzahl der vorzunehmenden Kopiervorgänge für den jeweiligen Konfigurationsparameterabschnitt A und auch die Anzahl der Kopiervorgänge des gesamten MLP-Modells (=Anzahl der MLP Neuronenschicht).

Die DMA-Einheit 17 startet den ersten Kopiervorgang des ersten Konfigurationsparametersabschnitts A auf die Register der Berechnungseinheit und startet anschließend die Berechnung mit der Berechnung der ersten Neuronenschicht in Schritt S2 basierend auf den der ersten Neuronenschicht zugeordneten Konfigurationsparametern (MLP1_Reg1 - MLP1_RegP,RegCtrl). Hierzu signalisiert die DMA-Einheit 17 den Start der Berechnung, z.B. indem die Berechnungsstartinformation RegCtrl vom Konfigurationsspeicherbereich 121 an die entsprechende Adressposition/Register geschrieben wird. Die Adresszeiger der Konfigurationsparameter geben die Datenspeicherabschnitte D an, aus denen die Eingangsgrößen des Eingangsgrößenvektors, die Gewichtungsfaktoren aus der Gewichtungsmatrix und die Offset-Werte des Offset-Vektors entnommen werden sollen, um die Ausgangsgrößen des Ausgangsgrößenvektors der ersten Neuronenschicht zu berechnen.

Nach Berechnen der Ausgangsgrößen der ersten Neuronenschicht befinden sich diese in einem entsprechenden Ausgangsgrößen-Speicherblock, der von der DMA-Einheit 17 basierend auf den Konfigurationsparametern für die erste Neuronenschicht in einem entsprechenden Datenspeicherabschnitt D des Datenspeicherbereichs 122 gespeichert wird.

In Schritt S3 signalisiert der Rechenkern 18 der DMA-Einheit 17, dass die Berechnung der ersten Neuronschicht abgeschlossen ist. Dies kann dadurch erreicht werden, dass der Rechenkern 17 durch entsprechende Konfigurationsparameter einen Interrupt zur DMA-Einheit 17 veranlasst. Für die Berechnung einer weiteren Neuronenschicht werden die Ausgangsgrößen aus der Berechnung der ersten Neuronenschicht als Zwischeneingangsgrößen angenommen, indem die DMA-Einheit 17 die Konfigurationsparameter aus den der weiteren Neuronenschicht zugeordneten Konfigurationsspeicherabschnitten A des Konfigurationsspeicherbereichs 121 in Register der Berechnungseinheit übergibt und ggfs. die Gewichtungsfaktoren der Gewichtungsmatrix sowie die Offset-Werte des Off- setvektors in durch die Adresszeiger unter den Konfigurationsparametern angezeigte Datenspeicherabschnitte D speichert sofern diese dort nicht zuvor gespeichert wurden. Anschließend wird die Berechnung in Schritt S4 gestartet.

Das Verfahren der Schritte S3 und S4 wiederholt sich für jede weitere Neuronenschicht, bis die anfänglich vorgegebene Anzahl von zu kopierenden Konfigurationsspeicherabschnitte A erreicht ist. Ein entsprechender Konfigurationsparameter für die Berechnung der letzten Neuronenschicht definiert den Interruptaufruf des Rechenkerns 18, indem der Rechenkern 18 einen Interrupt direkt an den Mikroprozessor 21 veranlasst. Der Rechenkern 18 signalisiert dann ein entsprechendes Interrupt-Signal an den Mikroprozessor 21 , der daraufhin den Modellwert abruft oder in sonstiger Weise empfängt. Alternativ kann die Modellberechnungseinheit 22 das Interrupt-Signal an die DMA-Einheit 17 melden, und die DMA-Einheit 17 meldet das Interrupt-Signal an den Mikrocontroller 21 weiter (chained Interrupts).

Der Konfigurationsspeicherbereich 121 kann auch Konfigurationsparameter mit entsprechenden Verweisen auf Speicherabschnitte für die Berechnung benötigten Daten aufweisen. Dazu kann nach Beenden der Berechnung eines Perzept- ronenmodells die Berechnung einer neuen ersten Neuronenschicht eines zweiten Perzeptronenmodells vorgenommen werden. Dazu ist es lediglich notwendig, die Adressposition, in die der Modellwert als Ausgangsgröße der letzten Neuronenschicht des ersten Perzeptronenmodells gespeichert wird, nicht Teil der Eingangsgrößen der ersten Neuronenschicht des zweiten Perzeptronenmodells ist.

In Figur 8 ist schematisch ein Perzeptronenmodell mit Vorwärtskopplung und Rückkopplung dargestellt. In Figur 8 ist ein Beispiel eines vierschichtigen Perzeptronenmodells 100 mit den Neuronenschichten MLP1 -MLP4 dargestellt. Jede der Neuronenschichten MLP1 -MLP4 weist eine Eingangsgroßenvektorlage 101 , eine Ausgangsgrößenvektorlage 102 und die Neuronenschicht 103 mit den einzelnen Neuronen 104 auf. Wie zuvor beschrieben, kann die Anzahl der Neuronen 104 der Neuronenschicht 103 von Neuronenschicht zu Neuronenschicht unterschiedlich sein. Der Eingangsgrößenvektor 101 ist in einem Datenspeicherabschnitt D des Datenspeicherbereichs 122 und der Ausgangsgroßenvektor 102 einem zumindest teilweise davon abweichenden Datenspeicherabschnitt D des Datenspeicherbereichs 122 gespeichert. Ganz oder teilweise kann der Datenspeicherabschnitt D zum Speichern des Ausgangsgrößenvektors dem Datenspeicherabschnitt D zum Speichern des Eingangsgrößenvektors zur Berechnung der darauffolgenden Neuronenschicht entsprechen. Durch geeignete Überlappungen der Definition der Datenspeicherabschnitte D für die Eingangsgrößenvektoren und Ausgangsgrößenvektoren derselben oder von verschiedenen Neuronenschichten können Rückkopplungen und Überspringungen unter Berücksichtigung einer Zwischenausgangsgröße für die nächste Neuronenschicht umgesetzt werden.

In Figur 9 werden schematisch die Adresspositionen der Datenspeicherabschnitte D in dem Datenspeicherbereich 122 dargestellt, wobei die Datenspeicherabschnitte D mit der„Bezeichnung der NeuronenschichfJ'EV" für den Eingangsgrößenvektor und mit der„Bezeichnung der NeuronenschichfJ'AV" für den Ausgangsgroßenvektor bezeichnet sind. Überlappungsbereiche bzw. Überlappungsadressabschnitte sind mit 111 - U4 gekennzeichnet.

In dem in Figur 8 dargestellten Ausführungsbeispiel eines Perzeptronenmodells wird beispielsweise ein Teil des Ausgangsgrößenvektors der zweiten Neuronenschicht MLP2 auf die zweite Neuronenschicht MLP2 rückgekoppelt. Gemeinsam mit dem Ausgangsgroßenvektor der ersten Neuronenschicht MLP1 wird dann der Eingangsgrößenvektor der zweiten Neuronenschicht MLP2 gebildet, so dass der dort verwendete Eingangsgrößenvektor aus dem rückgekoppelten Teil des Ausgangsgrößenvektors der zweiten Neuronenschicht MLP2 und dem Ausgangsgroßenvektor der ersten Neuronenschicht MLP1 zusammengesetzt ist. Entsprechend der Konfiguration der Modellberechnungseinheit 22 ist jedoch vorgesehen, dass die Eingangsgrößenvektoren in zusammenhängenden Datenspeicherabschnitten D vorgehalten werden. In diesem Fall wird der Eingangsgrößenvektor der zweiten Neuronenschicht MLP2 aus einem zusammenhängenden Datenspeicherabschnitt MLP2_EV entnommen.

Dies wird dadurch erreicht, dass sich der Datenspeicherabschnitt MLP1_AV für den Ausgangsgroßenvektor der ersten Neuronenschicht MLP1 und der Daten- speicherabschnitt MLP2_AV für den rückgekoppelten Teil des Ausgangsgrößenvektors der zweiten Neuronenschicht MLP2 aneinander anschließen. Der Datenspeicherabschnitt MLP2_EV für den Eingangsgrößenvektor der zweiten Neuronenschicht MLP2 wird dann so definiert, dass dieser den Datenspeicherabschnitt MLP1_AV für den Ausgangsgrößenvektor der ersten Neuronenschicht MLP1 und der Datenspeicherabschnitt MLP2_AV für den rückgekoppelten Teil des Ausgangsgrößenvektors der zweiten Neuronenschicht MLP2 umfasst. Der rückgekoppelte Teil des Ausgangsgrößenvektors der zweiten Neuronenschicht MLP2 wird als erster Überlappungsadressabschnitt U1 bezeichnet.

Weiterhin greift die Berechnung in der zweiten Neuronenschicht MLP2 auf den Ausgangsgrößenvektor der vierten Neuronenschicht MLP4 zurück. Dies wird dadurch erreicht, dass sich der Datenspeicherabschnitt MLP1_AV für den Ausgangsgrößenvektor der ersten Neuronenschicht MLP1 und der Datenspeicherabschnitt MLP4_AV des Ausgangsgrößenvektors der vierten Neuronenschicht MLP4 aneinander anschließen. Der Datenspeicherabschnitt MLP2_EV für den Eingangsgrößenvektor der zweiten Neuronenschicht MLP2 wird zusätzlich zu der obigen Positionierung so definiert, dass dieser den Datenspeicherabschnitt MLP1_AV für den Ausgangsgrößenvektor der ersten Neuronenschicht MLP1 , den Datenspeicherabschnitt MLP2_AV für den rückgekoppelten Teil des Ausgangsgrößenvektors der zweiten Neuronenschicht MLP2 und den Datenspeicherabschnitt MLP4_AV für den rückgekoppelten Ausgangsgrößenvektor der vierten Neuronenschicht MLP4 umfasst. Der Datenspeicherabschnitt MLP4_AV des Ausgangsgrößenvektors der vierten Neuronenschicht MLP4 wird als zweiter Überlappungsadressabschnitt U2 bezeichnet.

Weiterhin greift die Berechnung in der dritten Neuronenschicht MLP3 auf einen vorwärtsgekoppelten Teil des Ausgangsgrößenvektors der ersten Neuronenschicht MLP1 und den Ausgangsgrößenvektor der zweiten Neuronenschicht MLP2 zurück. Dies wird dadurch erreicht, dass sich der Datenspeicherabschnitt MLP1_AV für den Ausgangsgrößenvektor der ersten Neuronenschicht MLP1 und der Datenspeicherabschnitt MLP2_AV des Ausgangsgrößenvektors der zweiten Neuronenschicht MLP2 aneinander anschließen. Der Datenspeicherabschnitt MLP3_EV für den Eingangsgrößenvektor der dritten Neuronenschicht MLP3 wird zusätzlich zu der obigen Positionierung so definiert, dass dieser den Datenspei- cherabschnitt MLP2_AV für den Ausgangsgrößenvektor der zweiten Neuronenschicht MLP2 und den Datenspeicherabschnitt für den vorwärtsgekoppelten Teil des Ausgangsgrößenvektors der ersten Neuronenschicht MLP1 umfasst. Der Datenspeicherabschnitt des vorwärtsgekoppelten Teils des Ausgangsgrößenvektors der ersten Neuronenschicht MLP1 wird als dritter Überlappungsadressabschnitt U3 bezeichnet.

Zusätzlich greift die Berechnung in der dritten Neuronenschicht MLP3 auf einen rückgekoppelten Teil des Ausgangsgrößenvektors MLP3_AV derselben dritten Neuronenschicht MLP3 zurück, der einem vierten Überlappungsadressabschnitt U4 entspricht. Dies wird dadurch erreicht, dass sich der Datenspeicherabschnitt MLP3_AV für den Ausgangsgrößenvektor MLP3_AV der dritten Neuronenschicht MLP3 und der Datenspeicherabschnitt MLP2_AV des Ausgangsgrößenvektors MLP2_AV der zweiten Neuronenschicht MLP2 aneinander anschließen.

Der Datenspeicherabschnitt MLP3_EV für den Eingangsgrößenvektor der dritten Neuronenschicht MLP3 wird zusätzlich zu der obigen Positionierung so definiert, dass dieser den Datenspeicherabschnitt für den Ausgangsgrößenvektor MLP2_AV der zweiten Neuronenschicht MLP2, den Datenspeicherabschnitt für den vorwärtsgekoppelten Teil des Ausgangsgrößenvektors MLP1_AV der ersten Neuronenschicht MLP1 (dritter Überlappungsbereich U3) und den Datenspeicherabschnitt für den rückgekoppelten Teil des Ausgangsgrößenvektors MLP3_AV der dritten Neuronenschicht MLP3 (vierter Überlappungsbereich U4) umfasst.

Allgemein sind die Datenspeicherabschnitte D der Ausgangsgrößenvektoren von mehreren Neuronenschichten aneinander angeordnet, wenn diese gemeinsam jeweils ganz oder teilweise den Eingangsgrößenvektor einer der mehreren Neuronenschichten folgenden zu berechnenden Neuronenschicht bilden. Da die Adressierung des Eingangsgrößenvektors in der Regel als zusammenhängender Adressbereich stattfindet, wird in diesem Fall der Datenspeicherabschnitt D für den Eingangsgrößenvektor der zu berechnenden Neuronenschicht so definiert, dass dieser die Datenspeicherabschnitte D der betreffenden Ausgangsgrößenvektoren überlappt. Die Berechnung der einzelnen Neuronenschicht erfolgt zeitlich aufeinanderfolgend beginnend mit der ersten Neuronenschicht bis zur Endneuronenschicht, d.h. in diesem Ausführungsbeispiel der vierten Neuronenschicht. Bei Rückkopplungen erfolgt jedoch nicht unmittelbar eine Neuberechnung der Neuronenschicht, auf die rückgekoppelt wird. Stattdessen werden die rückgekoppelten Teile von Ausgangsgrößenvektoren erst bei der nächsten vollständigen Berechnung des Perzeptronenmodells berücksichtigt. Dadurch entsteht eine verzögerte Berücksichtigung der rückgekoppelten Teile der Ausgangsgrößenvektoren. Dies wird durch das Verzögerungselement 105 in Figur 8 symbolisiert. Diese Verzögerungselement 105 bezeichnet lediglich eine Funktion und ist in der Modellberechnungseinheit 22 nicht real ausgebildet, da diese Funktion durch die Zwi- schenspeicherung im Datenspeicherbereich 122 erfüllt wird.