DE102015223331A1 - Mikrocontroller - Google Patents

Mikrocontroller Download PDF

Info

Publication number
DE102015223331A1
DE102015223331A1 DE102015223331.6A DE102015223331A DE102015223331A1 DE 102015223331 A1 DE102015223331 A1 DE 102015223331A1 DE 102015223331 A DE102015223331 A DE 102015223331A DE 102015223331 A1 DE102015223331 A1 DE 102015223331A1
Authority
DE
Germany
Prior art keywords
memory
data
microcontroller
unit
communication channel
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
DE102015223331.6A
Other languages
English (en)
Inventor
Dieter Thoss
Jens Gladigau
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 DE102015223331.6A priority Critical patent/DE102015223331A1/de
Priority to CN201611043542.2A priority patent/CN107015932B/zh
Publication of DE102015223331A1 publication Critical patent/DE102015223331A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Microcomputers (AREA)
  • Control By Computers (AREA)
  • Multi Processors (AREA)

Abstract

Die Erfindung betrifft einen Mikrocontroller (100) mit einem globalen Speicher (140) und einem oder mehreren Prozessorkernen (110A, 110B, 110C) mit jeweils einem lokalen Speicher (111A, 111B, 111C), mit einem Kommunikationskanal (130), mit dem der eine oder die mehreren Prozessorkerne (110A, 110B, 110C) und der globale Speicher (140) in Kommunikationsverbindung stehen, und mit wenigstens einer Paketiereinheit (120A, 120B, 120C, 120D, 120E), die mit dem Kommunikationskanal (130) direkt datenübertragend verbunden ist, die mit dem globalen Speicher (140) oder mit einem lokalen Speicher (111A, 111B, 111C) eines von dem einen oder den mehreren Prozessorkernen (110A, 110B, 110C) direkt datenübertragend verbunden ist, die eine lokale Speichereinheit (121A, 121B, 121C, 121D, 121E) aufweist und die dazu eingerichtet ist, nach Maßgabe von in der lokalen Speichereinheit (121A, 121B, 121C, 121D, 121E) gespeicherten Kopierdaten auf Veranlassung eine Vielzahl einzelner Daten gemeinsam zwischen dem Speicher (111A, 111B, 111C, 140), mit dem die Paketiereinheit direkt datenübertragend verbunden ist, und einem anderen Speicher über den Kommunikationskanal (130) auszutauschen.

Description

  • 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
    • ISO-Norm 26262 [0026]

Claims (11)

  1. Mikrocontroller (100) mit einem globalen Speicher (140) und einem oder mehreren Prozessorkernen (110A, 110B, 110C) mit jeweils einem lokalen Speicher (111A, 111B, 111C), mit einem Kommunikationskanal (130), mit dem der eine oder die mehreren Prozessorkerne (110A, 110B, 110C) und der globale Speicher (140) in Kommunikationsverbindung stehen, und mit wenigstens einer Paketiereinheit (120A, 120B, 120C, 120D, 120E), die mit dem Kommunikationskanal (130) direkt datenübertragend verbunden ist, die mit dem globalen Speicher (140) oder mit einem lokalen Speicher (111A, 111B, 111C) eines von dem einen oder den mehreren Prozessorkernen (110A, 110B, 110C) direkt datenübertragend verbunden ist, die eine lokale Speichereinheit (121A, 121B, 121C, 121D, 121E) aufweist und die dazu eingerichtet ist, nach Maßgabe von in der lokalen Speichereinheit (121A, 121B, 121C, 121D, 121E) gespeicherten Kopierdaten auf Veranlassung eine Vielzahl einzelner Daten gemeinsam zwischen dem Speicher (111A, 111B, 111C, 140), mit dem die Paketiereinheit direkt datenübertragend verbunden ist, und einem anderen Speicher über den Kommunikationskanal (130) auszutauschen.
  2. Mikrocontroller nach Anspruch 1, wobei die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) dazu eingerichtet ist, die Vielzahl einzelner Daten auf Veranlassung gemeinsam mittels eines Burst-Transfers auszutauschen (202, 203, 204, 205).
  3. Mikrocontroller nach Anspruch 1 oder 2, wobei die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) einen Puffer in der Größe der Vielzahl der einzelnen Daten aufweist.
  4. Mikrocontroller nach einem der vorstehenden Ansprüche, wobei die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) dazu eingerichtet ist, als ein Master auf den Kommunikationskanal (130) zuzugreifen.
  5. Mikrocontroller nach einem der vorstehenden Ansprüche, der dazu eingerichtet ist, einen Zugriff einer anderen Komponenten des Mikrocontrollers (100) auf den Speicher (111A, 111B, 111C, 140), mit dem die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) direkt datenübertragend verbunden ist, zu verhindern, während die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) die Vielzahl von Daten gemeinsam zwischen dem Speicher (111A, 111B, 111C, 140), mit dem die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) direkt datenübertragend verbunden ist, und dem anderen Speicher über den Kommunikationskanal (130) austauscht.
  6. Mikrocontroller nach einem der vorstehenden Ansprüche, wobei die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) dazu eingerichtet ist, die Vielzahl von einzelnen Daten in einen anderen Datentyp zu konvertieren.
  7. Mikrocontroller nach einem der vorstehenden Ansprüche, der dazu eingerichtet ist, die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) zu Beginn und/oder zu Ende einer Zeitscheibe dazu zu veranlassen, die Vielzahl einzelner Daten auszutauschen.
  8. Mikrocontroller nach einem der vorstehenden Ansprüche, der dazu eingerichtet ist, die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) mittels eines Interrupts und/oder eines Timers dazu zu veranlassen, die Vielzahl einzelner Daten auszutauschen.
  9. Verfahren zum Betreiben eines Mikrocontrollers (100) nach einem der vorstehenden Ansprüche, wobei die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) dazu veranlasst wird, die Vielzahl einzelner Daten zwischen dem Speicher (111A, 111B, 111C, 140), mit dem die Paketiereinheit direkt datenübertragend verbunden ist, und dem anderen Speicher auszutauschen, und wobei die wenigstens eine Paketiereinheit (120A, 120B, 120C, 120D, 120E) nach Maßgabe von den in der lokalen Speichereinheit (121A, 121B, 121C, 121D, 121E) gespeicherten Kopierdaten auf diese Veranlassung die Vielzahl einzelner Daten gemeinsam zwischen dem Speicher (111A, 111B, 111C, 140), mit dem die Paketiereinheit direkt datenübertragend verbunden ist, und dem anderen Speicher über den Kommunikationskanal (130) austauscht.
  10. Computerprogramm, das einen Mikrocontroller (100) nach einem der Ansprüche 1 bis 8 dazu veranlasst, ein Verfahren nach Anspruch 9 durchzuführen, wenn es auf dem Mikrocontroller (100) ausgeführt wird.
  11. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 10.
DE102015223331.6A 2015-11-25 2015-11-25 Mikrocontroller Pending DE102015223331A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102015223331.6A DE102015223331A1 (de) 2015-11-25 2015-11-25 Mikrocontroller
CN201611043542.2A CN107015932B (zh) 2015-11-25 2016-11-24 微控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015223331.6A DE102015223331A1 (de) 2015-11-25 2015-11-25 Mikrocontroller

Publications (1)

Publication Number Publication Date
DE102015223331A1 true DE102015223331A1 (de) 2017-06-01

Family

ID=58692809

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015223331.6A Pending DE102015223331A1 (de) 2015-11-25 2015-11-25 Mikrocontroller

Country Status (2)

Country Link
CN (1) CN107015932B (de)
DE (1) DE102015223331A1 (de)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
CN102866980B (zh) * 2012-07-31 2015-02-25 中国人民解放军国防科学技术大学 用于多核微处理器片上互连网络的网络通信胞元
DE102013224702A1 (de) * 2013-12-03 2015-06-03 Robert Bosch Gmbh Steuergerät für ein Kraftfahrzeug

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO-Norm 26262

Also Published As

Publication number Publication date
CN107015932B (zh) 2021-08-13
CN107015932A (zh) 2017-08-04

Similar Documents

Publication Publication Date Title
EP3077912B1 (de) Steuergerät für ein kraftfahrzeug
DE102014201682A1 (de) Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
WO2005073865A2 (de) Vorrichtung zur datenübertragung zwischen speichern
DE19929796B4 (de) Vorrichtung und Verfahren zum erneuten Schreiben von Daten aus einem flüchtigen Speicher in einen nichtflüchtigen Speicher
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE102018205204A1 (de) Verfahren zum Bereitstellen von Anwendungsdaten zumindest einer auf einem Steuergerät eines Fahrzeugs ausführbaren Anwendung, Verfahren zum Kalibrieren eines Steuergeräts, Steuergerät und Auswerteeinrichtung
DE112020003004T5 (de) Dma-scatter- und gather-operationen für nicht zusammenhängenden speicher
DE102018202446A1 (de) Verfahren zum Modularisieren einer Softwarearchitektur
EP3015992B1 (de) Verfahren zur verwaltung priorisierter eingangsdaten
DE102010028227A1 (de) Coprozessor mit Ablaufsteuerung
DE112013007676T5 (de) Informationsvorrichtung
DE102015223331A1 (de) Mikrocontroller
EP1548603B1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
DE112020005072T5 (de) Datenverarbeitungseinrichtung
EP1308846B1 (de) Datenübertragungseinrichtung
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
DE102016213610A1 (de) Elektronische Fahrzeugsteuereinrichtung und Überschreibsystem
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe
DE102018205390A1 (de) Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
DE102019130642B4 (de) Verfahren zur Notunterbrechung der Generierung eines EPM-Microticks mittels eines direkten Speicherzugriffs
DE102009024019A1 (de) Fehlererkennungscode-Speichermodul
DE102022202335A1 (de) Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems
DE102020212897A1 (de) Zugriffsverfahren auf Daten in einem externen Speicher eines Mikrocontrollers
DE102014006243A1 (de) Servomotorsteuersystem
DE3241378A1 (de) Integrierte mikroprogrammierte vorrichtung zur steuerung von informationsverarbeitungsablaeufen und verfahren zu ihrem betrieb

Legal Events

Date Code Title Description
R012 Request for examination validly filed