-
Die vorliegende Erfindung betrifft einen Mikrocontroller sowie ein Verfahren zum Betreiben eines derartigen Mikrocontrollers und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
Moderne Mikrocontroller, wie sie beispielsweise in Steuergeräten von Kraftfahrzeugen eingesetzt werden (z.B. in Motorsteuergeräten zur Motorsteuerung), weisen zumeist einen Multicore-Prozessor mit mehreren (wenigstens zwei) Prozessorkernen (Cores) auf. Ein Prozessorkern bzw. Core umfasst eine arithmetisch-logische Einheit (ALU), welche das eigentliche elektronische Rechenwerk zur Ausführung von Tasks, Programmen, Rechenbefehlen, etc. darstellt, sowie weiterhin einen lokalen Speicher. Ein derartiger lokaler Speicher kann beispielsweise als ein Registersatz aus einem oder mehreren Registern oder als ein RAM-Speicher ausgebildet sein. Weiterhin umfasst der Mikrocontroller einen globalen Speicher, der beispielsweise als Flash-, NOR-Flash oder RAM-Speicher ausgebildet sein kann.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Mikrocontroller sowie ein Verfahren zum Betreiben eines derartigen Mikrocontrollers und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Der Mikrocontroller umfasst einen globalen Speicher (z.B. Flash-, NOR-Flash, RAM-Speicher) und eine Prozessoreinheit. Die Prozessoreinheit umfasst wenigstens einen Prozessorkern. Insbesondere ist die Prozessoreinheit als Multicore-Prozessor ausgebildet und umfasst eine Vielzahl von Prozessorkernen. Jeder Prozessorkern weist jeweils eine arithmetisch-logische Einheit (ALU) und einen lokalen Speicher (z.B. ein Registersatz aus einem oder mehreren Registern oder ein RAM-Speicher) auf.
-
Der wenigstens eine Prozessorkern und somit insbesondere der bzw. die lokalen Speicher stehen mit dem globalen Speicher über einen Kommunikationskanal in Kommunikationsverbindung. Der Kommunikationskanal ist beispielsweise als Bus, Crossbar oder Network-on-a-Chip ausgebildet.
-
In dem Mikrocontroller ist wenigstens eine Paketiereinheit vorgesehen. Eine derartige Paketiereinheit ist mit dem Kommunikationskanal direkt datenübertragend verbunden. Weiterhin ist eine derartige Paketiereinheit mit dem globalen Speicher oder mit einem lokalen Speicher einer der Prozessorkerne direkt datenübertragend verbunden. Mehrere Paketiereinheiten können in geeigneter Weise auf die unterschiedlichen Speicher des Mikrocontrollers verteilt sein. Beispielsweise kann an lokalen Speichern unterschiedlicher Prozessorkerne jeweils eine spezielle, unterschiedliche Anzahl von Paketiereinheiten angekoppelt sein. Auch an dem globalen Speicher kann eine zweckmäßige Anzahl von Paketiereinheiten oder auch keine Paketiereinheit vorgesehen sein.
-
Eine am globalen Speicher angekoppelte Paketiereinheit ist insbesondere dazu eingerichtet, Daten zwischen dem globalen Speicher und lokalen Speichern der Prozessorkerne auszutauschen. Eine an einen lokalen Speicher angekoppelte Paketiereinheit ist insbesondere dazu eingerichtet, Daten zwischen diesem lokalen Speicher und dem globalen Speicher auszutauschen und/oder zwischen diesem lokalen Speicher und weiteren lokalen Speichern.
-
Jede Paketiereinheit weist eine lokale Speichereinheit, beispielsweise einen Flash-Speicher, auf. In dieser lokalen Speichereinheit sind Kopierdaten gespeichert. Nach Maßgabe dieser Kopierdaten tauscht die entsprechende Paketiereinheit auf Veranlassung eine Vielzahl einzelner Daten gemeinsam zwischen dem Speicher, mit dem die jeweilige Paketiereinheit direkt datenübertragend verbunden ist, und einem anderen Speicher über den Kommunikationskanal aus. Die Vielzahl der Daten wird insbesondere als ein gemeinsames Datenpaket übermittelt. Eine am globalen Speicher angekoppelte Paketiereinheit tauscht insbesondere ein Datenpaket zwischen dem globalen Speicher und lokalen Speichern aus. Eine an einen lokalen Speicher angekoppelte Paketiereinheit tauscht insbesondere ein Datenpaket zwischen diesem lokalen Speicher und dem globalen Speicher und/oder weiteren lokalen Speichern aus.
-
Durch die Erfindung wird eine Möglichkeit bereitgestellt, um Daten möglichst schnell und mit geringem Rechenaufwand zwischen Speichern des Mikrocontrollers zu kopieren. Insbesondere wird es ermöglicht, auf effektive und aufwandsarme Weise für die Durchführung von Prozessen benötigte Eingangsdaten und/oder im Zuge derartiger Prozesse erhaltene Ergebnisdaten zwischen Speichern des Mikrocontrollers zu kopieren.
-
Auf dem Mikrocontroller ablaufende Prozesse arbeiten insbesondere getaktet in periodischen Zeitabschnitten. Die einzelne Prozessorkerne führen dabei in sog. Zeitschlitzen (time slot) bzw. Zeitscheiben (time slice) jeweils spezielle, unterschiedliche Software-Funktionen bzw. Prozesse (Tasks, Programme, Rechenbefehle, etc.) aus. Die Zeitscheiben können beispielsweise jeweils 1 ms, 2 ms, 5 ms, 10 ms, 20 ms, 50 ms, 100 ms, 1000 ms betragen. Für die pro Zeitscheibe ausgeführten Prozesse werden zumeist spezielle Eingangsdaten benötigt, beispielsweise aktuelle Messwerte, welche von Sensoren des Kraftfahrzeugs erfasst wurden. Diese Messwerte sind insbesondere im globalen Speicher des Mikrocontrollers hinterlegt. Damit ein Prozessorkern während einer Zeitscheibe spezielle Prozesse in Abhängigkeit von speziellen Eingangsdaten durchführen kann, können diese Eingangsdaten durch eine Paketiereinheit auf eine entsprechende Veranlassung hin beispielsweise zu Beginn der Zeitscheibe von dem globalen Speicher in den lokalen Speicher dieses Prozessorkerns kopiert werden. Im Zuge dieser Prozesse bestimmte Ergebnisdaten können auf Veranlassung hin am Ende der Zeitscheibe oder auch zu Beginn der nächsten Zeitscheibe durch die Paketiereinheit von dem lokalen Speicher des jeweiligen Prozessorkerns in den globalen Speicher kopiert werden.
-
In herkömmlichen Mikrocontrollern werden Kopiervorgänge zwischen Speichern des Mikrocontrollers zumeist durch einzelne Prozessorkerne selbst (softwareseitig) durchgeführt, was oftmals mit Problemen und Nachteilen behaftet ist. Ein derartiges Kopieren mittels Software ist zumeist aufwendig, zeitintensiv und mit hoher Rechenleistung verbunden. Insbesondere liest ein Prozessorkern zu diesem Zweck die zu kopierenden Daten einzeln vom jeweiligen Ausgangsspeicher ein und speichert diese zunächst beispielsweise in einem Register zwischen. Von diesem Register aus schreibt der Prozessorkern die zwischengespeicherten Daten anschließend einzeln in den Zielspeicher. Der Prozessorkern arbeitet dabei beispielsweise eine vorgegebene Liste ab, um nacheinander einzelne Daten auf diese Weise zu kopieren. Für einen derartigen Kopiervorgang eines einzelnen Datums sind daher vergleichsweise viele Transaktionen über den Kommunikationskanal erforderlich, wodurch der gesamte Kopiervorgang erheblich länger dauert, als dies zum reinen Transport des Datums nötig wäre. Derartige Kopiervorgänge können bis zu mehreren Prozent der Gesamtlaufzeit eines Prozessorkerns belegen, was zu einer merklichen Verlangsamung des Mikrocontrollers führen kann. Weiterhin ist es in herkömmlichen Mikrocontrollern zumeist nicht möglich, mehrere derartige Kopiervorgänge unterschiedlicher Prozessorkerne gleichzeitig durchzuführen. Während eines durchgeführten Kopiervorgangs kann es daher zu Kollisionen mit weiteren Kopiervorgängen kommen, welche durchgeführt werden sollen, was zu einer zusätzlichen Verlangsamung des Mikrocontrollers führen kann. Das Risiko für derartige Kollisionen steigt mit der Dauer der einzelnen Kopiervorgänge und der Anzahl von Prozessorkernen an.
-
Durch die Erfindung können diese Probleme und Nachteile herkömmlicher Mikrocontroller behoben werden. Insbesondere werden Daten nicht mittels Software ausgetauscht, sondern mittels Hardware durch die Paketiereinheiten. In Form der Paketiereinheiten sind insbesondere Hardwareeinheiten vorgesehen, die exklusiv für den Austausch von Daten zur Verfügung stehen. Im Gegensatz zu den Prozessorkernen lesen die Paketiereinheiten keine Befehle über den Kommunikationskanal.
-
Daten werden durch die Paketiereinheit gemeinsam zu einem größeren Datenpaket zusammengefasst kopiert und es ist insbesondere nicht notwendig, jedes einzelne Datum nacheinander zu kopieren. Weiterhin können die Paketiereinheiten auf den jeweiligen Speicher, an welchen sie angekoppelt sind, direkt und ohne Verzögerungen zugreifen, insbesondere ohne Verzögerungen des Kommunikationskanals (welche z.B. bis zu 15 Takte betragen kann). Zu diesem Zweck sind die Paketiereinheiten insbesondere jeweils über eine direkte Schnittstelle an den jeweiligen Speicher angekoppelt. Die Paketiereinheiten können insbesondere in einem einzelnen Takt in gewünschter Weise auf den jeweiligen angekoppelten Speicher zugreifen. Insgesamt kann ein Datenaustausch mittels Paketiereinheiten somit wesentlich schneller durchgeführt werden als in herkömmlichen Mikrocontrollern.
-
Dadurch, dass die Prozessorkerne von der Aufgabe befreit werden, Datenaustausch durchzuführen, kann die entsprechende Rechenleistung der Prozessorkerne zum Durchführen anderer Prozesse aufgewendet werden, wodurch dem Mikrocontroller mehr Rechenleistung bzw. Rechenzeit zur Verfügung steht. Weiterhin werden Kollisionen von Kopiervorgängen, wie sie beim Datenaustausch durch Prozessorkerne auftreten können, vermieden, wodurch das Verhalten des Mikrocontrollers insgesamt vorhersehbarer wird.
-
Die lokalen Speichereinheiten der Paketiereinheiten können jeweils beispielsweise in der Größenordnung von einigen Kilobytes sein. Beispielsweise können als Kopierdaten Adressen der auszutauschenden Daten hinterlegt sein, insbesondere Adressen der Daten im Ausgangsspeicher und Adressen im Zielspeicher, an welche die Daten geschrieben werden sollen. Die Kopierdaten können beispielsweise zum Systemstart des Mikrocontrollers in den lokalen Speicher der Paketiereinheiten geschrieben werden. Die Kopierdaten können vorzugsweise während der Laufzeit des Mikrocontrollers verändert bzw. angepasst werden, beispielsweise durch die Prozessorkerne. Insbesondere weisen die Paketiereinheiten jeweils spezielle Hardware auf, welche den jeweiligen Datenaustausch anhand der in der lokalen Speichereinheit der jeweiligen Paketiereinheit hinterlegten Kopierdaten durchführt. Mittels dieser Hardware werden insbesondere die auszutauschenden Daten gemäß den als Kopierdaten hinterlegten Adressen in dem Ausgangsspeicher zusammengesucht und insbesondere gleichzeitig dazu in den Zielspeicher geschrieben.
-
Vorteilhafterweise ist die wenigstens eine Paketiereinheit dazu eingerichtet, die Vielzahl einzelner Daten auf Veranlassung mittels eines Burst-Transfers über den Kommunikationskanal auszutauschen. Im Zuge eines derartigen Burst-Transfers können Datenpakete bzw. Bursts aus einzelnen Daten übertragen werden, ohne dabei jedes einzelne Datum separat zu adressieren. Insbesondere wird nur ein einzelnes Datum des Datenpakets explizit adressiert und auf die Adressen der übrigen Daten des Datenpakets kann ohne zusätzliche Latenzzeit zugegriffen werden. Insbesondere können die einzelnen Daten mittels des Burst-Transfers in der Reihenfolge ausgetauscht werden, in welcher sie in den Ausgansspeicher geschrieben wurden.
-
Vorzugsweise umfassen die Paketiereinheiten jeweils einen Puffer in der Größe der Vielzahl der einzelnen Daten, also insbesondere in der Größe des Datenpakets der auszutauschenden Daten. Vorteilhafterweise besitzt dieser Puffer die Größe eines Bursts. Insbesondere können zwei derartige Puffer pro Paketiereinheit vorgesehen sein, um einen Datenaustausch in beide Richtungen schnellstmöglich und gleichzeitig durchzuführen.
-
Gemäß einer vorteilhaften Ausführung ist die wenigstens eine Paketiereinheit dazu eingerichtet, als ein Master auf den Kommunikationskanal zuzugreifen. Insbesondere können somit mögliche Kollisionen beim Datenaustausch verhindert werden. Wenn die Paketiereinheiten aktiv als Master auf den Kommunikationskanal zugreifen und Daten austauschen, belegen die Paketiereinheiten insbesondere den entsprechenden Speicher, an welchen sie angekoppelt sind. Während des Datenaustauschs der wenigstens einen Paketiereinheit können vorteilhafterweise keine anderen Komponenten des Mikrocontrollers auf den jeweiligen Speicher, mit dem die wenigstens eine Paketiereinheit direkt datenübertragend verbunden ist, zugreifen. Somit wird insbesondere gewährleistet, dass sich Daten während des Datenaustauschs nicht ändern können, da unterbunden wird, dass andere Komponenten Daten während des Datenaustauschs überschreiben bzw. aktualisieren. Dadurch kann eine Konsistenz der ausgetauschten Daten ohne zusätzliche Maßnahmen wie Software-Locks sichergestellt werden.
-
Vorteilhafterweise ist die wenigstens eine Paketiereinheit dazu eingerichtet, die Vielzahl von einzelnen Daten in andere Datentypen zu konvertieren. Beispielsweise können 16 Bit Daten in 32 Bit Daten konvertiert werden und/oder Integer Daten in Float Daten und/oder Little Endian Daten in Big Endian Daten.
-
Vorzugsweise wird die Vielzahl der einzelnen Daten, die von der wenigstens einen Paketeinheit ausgetauscht wird, als Eingangsdaten zum Ausführen eines Prozesses verwendet oder sind als Ergebnisdaten eines ausgeführten Prozesses bestimmt worden. Wie bereits erläutert, werden derartige Prozesse insbesondere getaktet innerhalb von Zeitscheiben ausgeführt. Die wenigstens eine Paketiereinheit wird vorteilhafterweise zu Beginn und/oder zu Ende einer derartigen Zeitscheibe dazu veranlasst, die Vielzahl einzelner Daten auszutauschen.
-
Vorteilhafterweise wird die wenigstens eine Paketiereinheit mittels eines Interrupts und/oder eines Timers dazu veranlasst, die Vielzahl einzelner Daten auszutauschen. Ein derartiger Interrupt kann beispielsweise von einem der Prozessorkerne ausgegeben werden, so dass der Datenaustausch direkt durch einen Prozessorkern angesteuert bzw. angestoßen werden kann. Mittels eines Timers kann beispielsweise eine eigene Ablaufsteuerung z.B. mit eigener Systemuhr realisiert werden, beispielsweise durch eine entsprechende Logik in der Paketiereinheit selbst. In diesem Fall können die Paketiereinheiten auch die Ansteuerung der Kopiervorgänge übernehmen und somit die Prozessorkerne zusätzlich entlasten.
-
Bevorzugt ist die wenigstens eine Paketiereinheit dazu eingerichtet, auf den Speicher, mit dem sie direkt datenübertragend verbunden ist, mit größerer Bitbreite zuzugreifen, als auf den Kommunikationskanal. Beispielsweise können die Paketiereinheiten mit 1024 Bits statt 64 Bits auf den jeweiligen angekoppelten Speicher zugreifen. Die Paketiereinheiten können dann mehrere Werte innerhalb dieser großen Bitbreite gleichzeitig verarbeiten.
-
Vorzugsweise können die lokalen Speicher und/oder der globale Speicher in mehrere Bänke aufgeteilt sein. Insbesondere sind derartige Bänke nur für die jeweilige Paketiereinheit sichtbar, die mit dem jeweiligen Speicher direkt datenübertragend verbunden ist. Die Paketiereinheiten können insbesondere gleichzeitig auf alle Bänke des jeweiligen angekoppelten Speichers zugreifen. Somit kann zumindest ein Teil der Zugriffe zwischen Paketiereinheiten und Speicher parallelisiert werden.
-
Vorteilhafterweise können die Paketiereinheiten zwischen unterschiedlichen ECC-Codes für den jeweiligen Speicher, mit welchem sie direkt datenübertragend verbunden sind, und das Kommunikationssystem übersetzen. Insbesondere kann das Kommunikationssystem SECDED-Codes entsprechend der Wortbreite erfordern, während für die einzelnen Speicher Codes mit höherer Wortbreite und höherer Erkennungs- und Korrekturfähigkeit sinnvoll sind.
-
Vorzugsweise ist die wenigstens eine Paketiereinheit dazu eingerichtet, eine Speicherschutzeinheit, eine sog. Memory Protection Unit (MPU), des Mikrocontrollers zu programmieren. Insbesondere können die Paketeinheiten, wenn sie Daten eines speziellen Prozessorkerns übermitteln, die MPU dieses speziellen Prozessorkerns entsprechend der übermittelten Daten umprogrammieren. Somit kann die Sicherheit erhöht werden und es kann Zeit eingespart werden, welche für eine manuelle Programmierung von MPUs aufgewendet werden müsste.
-
Der Mikrocontroller ist insbesondere in ein Steuergerät eines Kraftfahrzeugs implementiert, beispielsweise in ein Motorsteuergerät. Somit kann eine verbesserte Sicherheit des entsprechenden Steuergeräts gewährleistet werden und Sicherheitsanforderungen, welche im Kraftfahrzeugbereich gestellt werden, können eingehalten werden. Insbesondere können Sicherheitsanforderungen, wie sie in der ISO-Norm 26262 hinterlegt sind, eingehalten werden.
-
Ein erfindungsgemäßer Mikrocontroller ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung des Verfahrens in Form eines Computerprogramms ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt schematisch eine bevorzugte Ausgestaltung eines erfindungsgemäßen Mikrocontrollers, der dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
-
2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
Ausführungsform(en) der Erfindung
-
In 1 ist eine bevorzugte Ausgestaltung eines erfindungsgemäßen Mikrocontrollers schematisch dargestellt und mit 100 bezeichnet. Der Mikrocontroller 100 ist beispielsweis in ein Steuergerät eines Kraftfahrzeugs integriert, beispielsweise in ein Motorsteuergerät zum Steuern bzw. Regeln von Motorfunktionen.
-
Der Mikrocontroller 100 umfasst einen Multicore-Prozessor mit einer Vielzahl von Prozessorkernen 110. In 1 sind beispielhaft drei Prozessorkerne 110A, 110B und 110C dargestellt. Es versteht sich, dass der Mikrocontroller 100 eine zweckmäßige Anzahl von Prozessorkernen aufweisen kann, beispielsweis auch nur einen Prozessorkern.
-
Jeder Prozessorkern 110A, 110B bzw. 110C umfasst jeweils einen lokalen Speicher 111A, 111B bzw. 111C. Weiterhin umfasst der Mikrocontroller 100 einen globalen Speicher 140. Die lokalen Speicher 111A, 111B bzw. 111C und der globale Speicher 140 können jeweils z.B. als RAM-Speicher ausgebildet sein.
-
Die Prozessorkern 110A, 110B und 110C, insbesondere die lokalen Speicher 110A, 111B und 111C, und der globale Speicher 140 stehen über ein Kommunikationssystem 130, z.B. einen Bus, in Kommunikationsverbindung.
-
Der Mikrocontroller 100 umfasst weiterhin eine Vielzahl von Paketiereinheiten. Beispielsweise ist mit den lokalen Speichern 111A und 111B der Prozessorkerne 110A bzw. 110B jeweils eine Paketiereinheit 120A bzw. 120B direkt datenübertragend verbunden. Mit dem lokalen Speicher 111C sind beispielsweise zwei Paketiereinheit 120C und 120D direkt datenübertragend verbunden. Mit dem globalen Speicher 140 ist eine Paketiereinheit 120E direkt datenübertragend verbunden. Weiterhin sind die Paketiereinheiten 120A, 120B, 120C, 120D und 120E jeweils direkt datenübertagend mit dem Bus 130 verbunden.
-
Die Paketiereinheiten 120A, 120B, 120C, 120D und 120E sind jeweils über eine direkte Schnittstelle an den jeweiligen Speicher 111A, 111B, 111C bzw. 140 angekoppelt. Jede Paketiereinheit 120A, 120B, 120C, 120D und 120E umfasst weiterhin jeweils eine eigene lokale Speichereinheit 121A, 121B, 121C, 121D bzw. 121E.
-
Die Paketiereinheit 120E ist dazu eingerichtet, Daten zwischen dem globalen Speicher 140 und den lokalen Speichern 111A, 111B und 111C über den Bus 130 auszutauschen. Die Paketiereinheiten 120A, 120B, 120C und 120D sind dazu eingerichtet sowohl Daten zwischen den lokalen Speichern 111A, 111B, 111C und dem globalen Speicher 140 über den Bus 130 auszutauschen als auch Daten zwischen den lokalen Speichern 111A, 111B und 111C untereinander.
-
In den lokalen Speichern 121A, 121B, 121C, 121D und 121E der Paketiereinheiten 120A, 120B, 120C, 120D bzw. 120E sind jeweils Kopierdaten hinterlegt, gemäß welchen der jeweilige Datenaustausch durchgeführt wird. Insbesondere sind als Kopierdaten Adressen der auszutauschenden Daten im jeweiligen Ausgangsspeicher hinterlegt sowie Zieladressen, an welche diese Daten im jeweiligen Zielspeicher geschrieben werden sollen.
-
Der Mikrocontroller 100 ist, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welche in 2 schematisch als ein Blockdiagramm dargestellt ist.
-
Der Betrieb des Mikrocontrollers 100 erfolgt getaktet in periodischen Zeitscheiben von beispielsweise 100 ms. In diesen Zeitscheiben werden von den Prozessorkernen 110A, 110B und 110C jeweils spezielle Prozesse im Zuge der Motorsteuerung durchgeführt. Zum Durchführen dieser Prozesse benötigen die Prozessorkerne 110A, 110B und 110C jeweils spezielle Eingangsdaten, z.B. Messwerte von Sensoren, welche im globalen Speicher 140 hinterlegt sind. Weiterhin sollen Ergebnisdaten, welche als Ergebnisse dieser einzelnen Prozesse berechnet werden, von den Prozessorkernen 110A, 110B und 110C an den globalen Speicher 140 übermittelt werden. Die Paketiereinheiten 120A, 120B, 120C, 120D und 120E sind zum Austausch dieser Daten vorgesehen.
-
In einem Schritt 201, dargestellt in 2, beginnt eine derartige Zeitscheibe. Beispielsweise wird dies durch einen Interrupt signalisiert, welcher von der Prozessoreinheit 110A ausgesendet wird. Mit diesem Interrupt werden die Paketiereinheiten dazu veranlasst, Daten auszutauschen.
-
Beispielsweise schreibt die Paketiereinheiten 120E in Schritt 202 auf diese Veranlassung hin nach Maßgabe von den in der lokalen Speichereinheit 121E gespeicherten Kopierdaten Temperatur- und Druckmesswerte aus dem globalen Speicher 140 über den Bus 130 in den lokalen Speicher 111A. Diese Temperatur- und Druckmesswerte sind aus einer Vielzahl einzelner Daten zusammengesetzt. Die Paketiereinheiten 120E übermittelt diese Vielzahl einzelner Daten gemeinsam als ein einziges Datenpaket mittels eines Burst-Transfers an den lokalen Speicher 111A.
-
Nach der Verarbeitung dieser Daten und Ablage der Ergebnisse im lokalen Speicher 111A übermittelt die Paketiereinheiten 120E in Schritt 203 ein Datenpaket aus dem lokalen Speicher 111A über den Bus 130 in den globalen Speicher 140. Dieses Datenpaket beschreibt beispielsweise Ansteuerwerte für einen Aktor im Motorbrennraum, welche von dem Prozessorkern 110A basierend auf den zuletzt übermittelten Temperatur- und Druckmesswerten berechnet wurden.
-
Gleichzeitig zu diesem Datenaustausch gemäß den Schritten 202 und 203 wird in Schritt 204 durch die Paketiereinheit 120A auf die Veranlassung aus Schritt 201 hin nach Maßgabe von den in der lokalen Speichereinheit 121A gespeicherten Kopierdaten ein Datenpaket vom lokalen Speicher 111A über den Bus 130 in den lokalen Speicher 111C des Prozessorkerns 110C übermittelt. Beispielsweise ist dieses Datenpaket dasselbe Datenpaket, welches auch in Schritt 203 übermittelt wird.
-
Während dieses Datenaustauschs gemäß den Schritten 202 bis 205 greifen die Paketiereinheiten 120A und 120E jeweils als Master auf die jeweiligen angekoppelten Speicher 140 bzw. 111A zu. Im Zuge dessen kann keine andere Komponente des Mikrocontrollers 100 auf den globalen Speicher 140 und den lokalen Speicher 111A zugreifen.
-
Nachdem der Datenaustausch beendet wurde, werden in Schritt 206 von den Prozessorkernen 110 Prozesse ausgeführt. Die Paketiereinheiten sind bis zum nächsten Datenaustausch inaktiv und die übrigen Komponenten des Mikrocontrollers 100 können regulär auf den globalen Speicher 140 und den lokalen Speicher 111A zugreifen.
-
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 Nicht-Patentliteratur
-