DE102018123563B4 - Method for inter-core communication in a multi-core processor - Google Patents
Method for inter-core communication in a multi-core processor Download PDFInfo
- Publication number
- DE102018123563B4 DE102018123563B4 DE102018123563.1A DE102018123563A DE102018123563B4 DE 102018123563 B4 DE102018123563 B4 DE 102018123563B4 DE 102018123563 A DE102018123563 A DE 102018123563A DE 102018123563 B4 DE102018123563 B4 DE 102018123563B4
- Authority
- DE
- Germany
- Prior art keywords
- data
- core
- processor
- processor core
- priority
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
Zur Leistungssteigerung von fahrzeuginternen Steuergeräten werden zunehmend Mehrkernprozessoren verwendet. Mehrkernprozessoren nutzen globale Speicher, um der steigenden Anzahl an Funktionen sowie der Koordination der einzelnen Prozessorkerne gerecht zu werden. Dabei entsteht die Notwendigkeit des Datenaustausches zwischen den Prozessorkernen. Die Anwendung von globalen Speichern ist in Bezug auf Zwischenkernkommunikation zwischen einzelnen Prozessorkernen mit langsamen Lese- und Schreibzugriffen bzw. mit hohen Wartezeiten verbunden. Dadurch ist die Umsetzung von funktionaler Sicherheit gefährdet. Das erfindungsgemäße Verfahren stellt sich den Anforderungen der optimalen Speicherausnutzung zur Leistungssteigerung von Mehrkernprozessoren und der Echtzeitabbildung von zeitkritischen Funktionen. Dazu werden Prozessorkerne nach der Sicherheitsrelevanz der ausgeführten Funktionen mit verschiedenen Prioritäten versehen. Programmcode und Daten von hochpriorisierten Prozessorkernen werden in deren lokalen Speichern abgelegt. Lese- und Speicherzugriff auf lokale Speicher stellt den schnellstmöglichen Datentransfer zwischen einem Prozessorkern und einem Speicher dar. Die Zwischenkernkommunikation erfolgt auf die Art und Weise, dass höher priorisierte Prozessorkerne durch ein effizientes Speichermanagement lediglich auf ihre eigenen lokalen Speicher zugreifen müssen.Multi-core processors are increasingly being used to increase the performance of in-vehicle control units. Multi-core processors use global memory to cope with the increasing number of functions and the coordination of the individual processor cores. This creates the need for data exchange between the processor cores. With regard to inter-core communication between individual processor cores, the use of global memories is associated with slow read and write accesses or with long waiting times. This puts the implementation of functional safety at risk. The method according to the invention faces the requirements of optimal memory utilization for increasing the performance of multi-core processors and real-time mapping of time-critical functions. For this purpose, processor cores are assigned different priorities according to the safety relevance of the functions performed. Program code and data from high-priority processor cores are stored in their local memories. Read and memory access to local memory represents the fastest possible data transfer between a processor core and a memory. The inter-core communication takes place in such a way that higher-priority processor cores only have to access their own local memory through efficient memory management.
Description
Technisches GebietTechnical field
Die vorliegende Erfindung betrifft ein Verfahren zur Zwischenkernkommunikation in einem fahrzeuginternen Steuergerät mit Mehrkernprozessor gemäß dem Patentanspruch 1.The present invention relates to a method for inter-core communication in an in-vehicle control unit with a multi-core processor.
Stand der TechnikState of the art
Mit der zunehmenden Elektrifizierung von Fahrzeugen, aber auch durch die Weiterentwicklung von Fahrassistenzsystemen, Entertainmentsystemen und dem autonomen Fahren entstehen stetig mehr Funktionen, welche innerhalb eines Fahrzeuges durch die fahrzeuginternen Steuergeräte ausgeführt werden. Dies erfordert immer leistungsfähigere Steuergeräte. Fahrzeuginterne Steuergeräte, z.B. Motorsteuergeräte, sind in ihrem Aufbau bezüglich Gehäuseform und Pinbelegung in der Fahrzeugindustrie weitgehend vereinheitlicht, mit dem Ziel, Entwicklungs- und Herstellungskosten zu reduzieren. Um den steigenden Leistungsanforderungen gerecht zu werden, bei gleichzeitiger Beibehaltung des notwendigen Bauraums, werden Mehrkernprozessoren verwendet, wobei durch eine Erhöhung der Anzahl der Prozessorkerne eine Leistungssteigerung des Prozessors fokussiert wird. Mehrkernprozessoren bestehen in der Bauteilbetrachtungsweise aus den Prozessorkernen, welche ihrerseits ein Rechenwerk, Rechenregister bzw. Speicherbereiche, ein Steuerwerk sowie ein Speichermanagement innehaben, aus Speichern und Caches und weiterer Peripherie. Die einzelnen Komponenten des Mehrkernprozessors sind über ein Bussystem miteinander verbunden. In Anlehnung an die Zeichnung
Untersuchungen hinsichtlich der Leistungsfähigkeit von Mehrkernprozessoren in Abhängigkeit vom Speichermanagement bei aktuellen Prozessoren für fahrzeuginterne Steuergeräte zeigen, dass eine Erhöhung der Prozessorkerne nicht zwingend einen linearen Anstieg der Leistung des Prozessors zur Folge hat (
Konkurrierender Speicherzugriff führt insbesondere in Verbindung mit funktionaler Sicherheit zu großen Wartezeiten in den Prozessorrechenvorgängen. Im Hinblick auf die Entwicklung der Assistenzsysteme und des autonomen Fahrens werden auch Daten aus Radarsensoren oder Kameras vermehrt zu sicherheitsrelevanten Funktionen. Sicherheitsrelevante Funktionen sind üblicherweise zeitkritisch und haben eine hohe Echtzeitanforderung. In Fahrzeugen werden die Sicherheitslevel von Funktionen über den Sicherheitsstandard ISO26262 definiert. Dabei werden unterschiedliche Sicherheitsstufen nach ASIL (automotive safety intergrity level) abgebildet. Die Stufen geben die Schwere und Häufigkeit eines Funktionsfehlers an und richten besondere Anforderungen an die Ausfallwahrscheinlichkeit. Durch die sicherheitsbezogene Unterteilung der Funktionen beinhaltet ein Funktionsportfolio eines fahrzeuginternen Steuergerätes nun anteilsmäßig einige sicherheitskritische und sehr viele nicht sicherheitskritische Funktionen. Der nunmehr entstehende Konflikt wird als „mixed criticality“ bezeichnet und beschreibt, dass verschiedene Funktionen innerhalb des Steuergerätes unterschiedliche Prioritäten, aufgrund ihrer Sicherheitsstufe, aufweisen. Am Beispiel der Raddrehzahlsensoren bedeutet das, dass die Daten des Sensors, nach Priorität geordnet, zeitkritisch eher durch die Funktionen des Notbremsassistenten und der Fahrzeuggeschwindigkeit als für die Navigation ausgewertet werden sollten. Nach ISO26262 sind dafür statische Prioritätsreihenfolgen erlaubt, wie sie bereits in Systemarchitekturen für die Automobilbranche erfüllt werden. Dennoch steigen die zu transportierenden Informationen innerhalb des fahrzeuginternen Steuergerätenetzwerkes schneller an, als die implementierbaren Funktionen. Bei der Anwendung von globalen Speichern innerhalb eines Mehrkernprozessors entsteht neben der Problematik des konkurrierenden Speicherzugriffs von verschiedenen Kernen nun weiterhin der Effekt, dass Daten und Programmcode von und für Funktionen mit unterschiedlichen Sicherheitsstufen in einem Speicher durchmischt abliegen. Dies erschwert zum einen die Priorisierung der Funktionen und Datenverarbeitung und zum anderen besitzen sicherheitskritische Funktionen gleiche Wartezeiten und Verzögerungen wie nichtsicherheitsrelevante Funktionen. Um die notwenigen Sicherheitsstufen abbilden zu können, werden zunehmend Partitionen auf globalen Speichern benutzt.Competing memory access, especially in connection with functional security, leads to long waiting times in the processor computing processes. With regard to the development of assistance systems and autonomous driving, data from radar sensors or cameras are increasingly becoming safety-relevant functions. Security-related functions are usually time-critical and have a high real-time requirement. In vehicles, the safety levels of functions are defined using the ISO26262 safety standard. Different safety levels according to ASIL (automotive safety integration level) are mapped. The levels indicate the severity and frequency of a malfunction and make special demands on the probability of failure. Due to the safety-related subdivision of the functions, a function portfolio of an in-vehicle control unit now contains some safety-critical and very many non-safety-critical functions. The conflict that now arises is referred to as “mixed criticality” and describes that different functions within the control device have different priorities due to their security level. Using the example of the wheel speed sensors, this means that the data of the sensor, sorted according to priority, should be evaluated in a time-critical manner by the functions of the emergency brake assistant and the vehicle speed rather than for navigation. According to ISO26262, static priority orders are permitted for this, as they are already fulfilled in system architectures for the automotive industry. Nevertheless, the information to be transported within the in-vehicle control unit network increases faster than the functions that can be implemented. When using global memories within a multi-core processor, in addition to the problem of competing memory access from different cores, there is still the effect that data and program code from and for functions with different security levels are mixed in a memory. On the one hand, this complicates the prioritization of functions and data processing, and on the other hand, safety-critical functions have the same waiting times and delays as non-safety-relevant functions. In order to be able to map the necessary security levels, partitions on global memories are increasingly used.
Es ist weiterhin von Bedeutung, dass, wenn Daten von einem Prozessorkern zur Verarbeitung in einen anderen Prozessorkern kopiert werden, diese miteinander abgeglichen werden, um die Kohärenz der Daten und der Speicher zu bewahren. Dabei werden den eigentlichen Informationen Zusatzinformationen angefügt, die zur Übermittlung und Sicherstellung der Datenübertragung dienen. Bei einer entsprechenden Fülle an Informationen und einer begrenzten Bandbreite kann es dadurch ebenfalls zu Übertragungsengpässen kommen. Dieser Effekt wird als Overhead bezeichnet.It is also important that when data is copied from one processor core for processing into another processor core, it is compared with one another in order to maintain the coherence of the data and the memory. Additional information is added to the actual information, which is used to transmit and ensure data transmission. With a corresponding amount of information and a limited bandwidth, transmission bottlenecks can also occur. This effect is called overhead.
Um nun die Leistungsfähigkeit von fahrzeuginternen Steuergeräten, unter der Verwendung von Mehrkernprozessoren, zu erhöhen, bedarf es neben der Leistung der einzelnen Kerne demnach auch eines effektiven Speichermanagements, um eine optimale Leistungsausbeute zu erhalten. In der Offenlegungsschrift
In einer Ausführung ist einem Prozessorkern eine hohe Sicherheitsstufe zugeordnet. Sicherheitsstufen werden hierbei in Prioritäten transferiert. Der Prozessorkern mit hoher Priorität verarbeitet Daten aus einem Prozessorkern mit niedriger Priorität. Dazu wird ein globaler Speicher verwendet, welcher ebenfalls partitioniert ist, wobei dem Prozessorkern mit hoher Priorität je eine Partition auf dem globalen Daten-RAM und dem globalen Programm-RAM und dem Prozessorkern mit niedriger Priorität eine weitere globale Daten-RAM-Partition sowie eine weitere globale Programm-RAM-Partition zugeordnet sind. Zur Effizienzerhöhung werden bei Funktionen mit hoher Priorität vermeidbare Kopiervorgänge substituiert. Anstatt die Daten aus dem Daten-RAM des Prozessorkerns mit niedriger Priorität, welche vom Prozessorkern mit hoher Sicherheitsstufe verarbeitet werden sollen, über den Bus in dessen Partition im globalen Speicher zu schreiben, diese anschließend in die lokale Speichereinheit des Prozessorkerns mit hoher Priorität zu kopieren, sodass dieser die Daten dann in seinen Daten-RAM lesen und weiter verarbeiten kann, werden die Daten aus dem lokalen Daten-RAM des Prozessorkerns mit niedriger Priorität über einen eingerichteten Datentransfer direkt in die globale Partition des Prozessorkerns mit hoher Priorität gesendet. Dies kann im einfachsten Fall ebenfalls über das Bussystem erfolgen, wobei der Schreibvorgang in die eigene lokale Speichereinheit sowie der anschließende Kopiervorgang an die lokale Zielspeichereinheit entfallen. Jedoch unterliegt der Datentransfer somit weiterhin den Verzögerungen durch Speicherzugriff auf einen globalen Speicher. In einer alternativen Ausführungsform wird daher der Datentransfer über eine Direktverbindung mittels Speicherdirektzugriff („Direct Memory Access“, DMA) vorgeschlagen. In dieser Ausführungsform schreibt der Prozessorkern mit niedriger Priorität Daten in seinen lokalen Daten-RAM und richtet einen DMA zwischen seinem lokalen Daten-RAM und der globalen Daten-RAM-Partition des Prozessorkerns mit hoher Priorität ein. Dieser liest die Daten aus seiner Daten-RAM-Partition des globalen Speichers in seinen lokalen Daten-RAM und verarbeitet sie weiter.In one embodiment, a high security level is assigned to a processor core. Security levels are transferred in priorities. The high priority processor core processes data from a low priority processor core. For this purpose, a global memory is used, which is also partitioned, the processor core with high priority each having a partition on the global data RAM and the global program RAM and the processor core with low priority another global data RAM partition and another global program RAM partition are assigned. In order to increase efficiency, avoidable copying processes are substituted for functions with high priority. Instead of writing the data from the data RAM of the processor core with low priority, which is to be processed by the processor core with a high security level, over the bus into its partition in the global memory, then copying it into the local storage unit of the processor core with high priority, so that it can then read the data in its data RAM and process it further, the data from the local data RAM of the processor core with low priority is sent directly to the global partition of the processor core with high priority via an established data transfer. In the simplest case, this can also be done via the bus system, the writing process into the own local storage unit and the subsequent copying process to the local target storage unit being omitted. However, data transfer is still subject to delays due to memory access to global memory. In an alternative embodiment, data transfer via a direct connection by means of direct memory access (“Direct Memory Access” (DMA)) is therefore proposed. In this embodiment, the low priority processor core writes data to its local one Data RAM and establishes a DMA between its local data RAM and the global data RAM partition of the processor core with high priority. This reads the data from its data RAM partition of the global memory into its local data RAM and processes it further.
Die direkte Übermittlung funktionsspezifischer Daten eines Prozessorkerns niedriger Priorität in die Partition des globalen Daten-RAM eines Prozessorkerns mit höherer Priorität verringert die Verzögerung durch weniger Kopiervorgänge in den globalen Speicher und reduziert gleichzeitig die Gefahr von Overhead. Da ein Prozessorkern exklusiven Zugriff auf die ihm zugeordnete Partition innerhalb eines globalen Speichers besitzt, kann dieser die Daten nach Bedarf auslesen und gleichzeitig die Sicherheitsstandards einhalten, da eine Vermischung mit Daten anderer Prioritäten auf dem globalen Speicher verhindert wird.The direct transfer of function-specific data from a processor core of lower priority to the partition of the global data RAM of a processor core with higher priority reduces the delay due to fewer copying processes into the global memory and at the same time reduces the risk of overhead. Since a processor core has exclusive access to the partition assigned to it within a global memory, it can read out the data as required and at the same time comply with the security standards, since mixing with data of other priorities on the global memory is prevented.
Der aktuelle Stand der Technik zur effektiven Leistungsausbeute bei fahrzeuginternen Steuergeräten mit Mehrkernprozessoren durch effizientes Speichermanagement erreicht insofern eine Verbesserung, dass Prozessorkernen eine Priorität, abhängig von notwendigen bzw. vorgesehenen Sicherheitsstandards der Funktionen, welche sie ausführen sollen, zugewiesen ist. Um den Echtzeitanforderungen priorisierter Funktionen gerecht zu werden, werden RAM-Partitionen auf globalen Speichern in prozessorkernzugehörige Partitionen unterteilt. Prozessorkerne haben dabei exklusiven Zugriff auf die ihnen zugeordnete lokale Speichereinheit. Benötigte Daten aus anderen Prozessorkernen können von diesen direkt in die entsprechende globale Daten-RAM-Partition geschrieben werden. Zur weiteren Optimierung des Datentransfers kann zum Schreiben der Daten in die globalen Speicher ein DMA eingerichtet werden.The current state of the art for effective performance in vehicle-internal control units with multi-core processors through efficient memory management achieves an improvement in that processor cores are assigned a priority, depending on the necessary or intended safety standards of the functions that they are to perform. To meet the real-time requirements of prioritized functions, RAM partitions on global memories are divided into processor-related partitions. Processor cores have exclusive access to the local storage unit assigned to them. Required data from other processor cores can be written directly into the corresponding global data RAM partition. To further optimize the data transfer, a DMA can be set up to write the data into the global memory.
Dennoch müssen die erforderlichen Daten noch vom Zielprozessorkern aus dem globalen Speicher gelesen werden. Lesen von und Schreiben auf den globalen Speicher stellen nach wie vor die langsamsten Kopiervorgänge bei der Zwischenkernkommunikation in Mehrkernprozessoren dar. Zusätzlich sind die erreichbaren Übertragungsgeschwindigkeiten besonders von der Geschwindigkeit der jeweiligen Speicher abhängig. Die höchste Geschwindigkeit erreicht ein Prozessorkern nur dann, wenn er exklusiv auf seinen eigenen lokalen Speicher zugreift. Generell stellt die Zwischenkernkommunikation stets eine Gefährdung der Echtzeitfähigkeit eines Systems dar und sollte daher eine möglichst kurze Zeit in Anspruch nehmen.However, the required data must still be read from the target processor core from the global memory. Reading from and writing to the global memory are still the slowest copying processes in inter-core communication in multi-core processors. In addition, the transfer speeds that can be achieved are particularly dependent on the speed of the respective memory. A processor core only achieves the highest speed if it exclusively accesses its own local memory. In general, inter-core communication always poses a threat to the real-time capability of a system and should therefore take as short a time as possible.
Um dem Anspruch gerecht zu werden, die Datenübertragungsgeschwindigkeit bei der Zwischenkernkommunikation in Mehrkernprozessoren bei fahrzeuginternen Steuergeräten zu optimieren und die Echtzeitfähigkeit der Ausführung von sicherheitsrelevanten Funktionen zu gewährleisten, wird die folgende Erfindung vorgeschlagen.In order to meet the requirement of optimizing the data transmission speed in the case of inter-core communication in multi-core processors in vehicle-internal control units and to ensure the real-time capability of executing safety-relevant functions, the following invention is proposed.
Aufgabe der ErfindungObject of the invention
Die Aufgabe der Erfindung besteht in der Bereitstellung eines Verfahrens zur Zwischenkernkommunikation in einem Mehrkernprozessor, welches durch effizientes Speichermanagement die Echtzeitanforderung der funktionalen Sicherheit nach ISO26262 gewährleistet.The object of the invention is to provide a method for inter-core communication in a multi-core processor, which ensures the real-time requirement of functional safety according to ISO26262 through efficient memory management.
Lösung der AufgabeSolution of the task
Die Aufgabe wird durch ein Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor gemäß dem Patentanspruch 1 gelöst, weitere Ausführungsformen ergeben sich aus den Merkmalen der Unteransprüche.The object is achieved by a method for inter-core communication in a multi-core processor according to
Darstellung und Vorteile der ErfindungPresentation and advantages of the invention
Das erfindungsgemäße Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor beschreibt ein optimiertes Speichermanagement zur Datenübertragung zwischen Prozessorkernen. Für die Umsetzung des Verfahrens ist ein Mehrkernprozessor mit mindestens zwei Prozessorkernen erforderlich, welche je wenigstens über einen unmittelbar an das Rechenwerk des Prozessorkerns angeschlossenen lokalen Speicher verfügen und über ein Netzwerk miteinander verbunden sind. Die lokalen Speicher können dabei sowohl physisch als auch logisch in eine Programmspeicherschnittstelle und eine Datenspeicherschnittstelle unterteilt sein. Die Programmspeicherschnittstelle kann dabei einen Programm-RAM enthalten. Die Datenspeicherschnittstelle kann dabei einen oder mehrere Daten-RAM enthalten, über welche Daten zwischen den Prozessorkernen ausgetauscht werden. Das Netzwerk kann als ein Bussystem ausgelegt sein, wobei das Bussystem aus einem oder mehreren Busleitungen bestehen kann. Der Mehrkernprozessor beinhaltet üblicherweise weitere Komponenten, wie weitere Speichereinheiten und Caches, zusätzliche Peripherie sowie Schnittstellen zur Kommunikation mit anderen Systemen oder Ein- und Ausgabegeräten. In einer vorteilhaften Ausführungsform gehören zu den weiteren Komponenten zusätzlich ein oder mehrere globale Speicher, ein oder mehrere Programm-RAM sowie ein oder mehrere Daten-RAM, welche Teil des globalen Speichers sind. Den einzelnen Prozessorkernen sind Prioritäten zugeordnet, sodass jeder Prozessorkern zu weiteren Prozessorkernen im Mehrkernprozessor eine höhere oder niedrigere Priorität aufweist. Die Prioritäten können hierbei nach den Sicherheitsstandards nach ISO26262 zugewiesen sein. Weiterhin sind Daten von besonders zeitkritischen oder sicherheitsrelevanten Funktionen, je nach Priorität, in den lokalen Speichern der jeweiligen Prozessorkerne allokiert. Dadurch ergibt sich der Vorteil der minimalen Wartezeit bei der Datenübertragung und Datenverarbeitung dieser Funktionen, da Prozessorkerne auf ihren eigenen lokalen Speicher den schnellsten Lese- und Schreibzugriff haben. Weiterhin werden entsprechende Daten gemäß den Anforderungen der funktionalen Sicherheit von weiteren Daten getrennt und eine Vermischung der Daten wird verhindert. Die zusätzliche Verwendung von globalen Speichern bringt den Vorteil, dass Programmcode und Daten von Funktionen ohne oder mit niedriger Sicherheitsrelevanz oder Priorität in entsprechenden Sammelspeichern gelagert werden können.The inventive method for inter-core communication in a multi-core processor describes an optimized memory management for data transmission between processor cores. To implement the method, a multi-core processor with at least two processor cores is required, each of which has at least one local memory directly connected to the arithmetic unit of the processor core and is connected to one another via a network. The local memories can be divided both physically and logically into a program memory interface and a data storage interface. The program memory interface can contain a program RAM. The data storage interface can contain one or more data RAM, via which data is exchanged between the processor cores. The network can be designed as a bus system, wherein the bus system can consist of one or more bus lines. The multi-core processor usually contains other components, such as further storage units and caches, additional peripherals and interfaces for communication with other systems or input and output devices. In an advantageous embodiment, the further components additionally include one or more global memories, one or more program RAM and one or more data RAM, which are part of the global memory. Priorities are assigned to the individual processor cores, so that each processor core has a higher or lower priority to other processor cores in the multi-core processor. The priorities can be assigned according to the ISO26262 security standards. Furthermore, data of particularly time-critical or security-relevant functions are relevant allocated according to priority, in the local memories of the respective processor cores. This has the advantage of minimal waiting time for the data transfer and data processing of these functions, since processor cores have the fastest read and write access to their own local memory. Corresponding data are also separated from other data in accordance with the requirements of functional safety and mixing of the data is prevented. The additional use of global memories has the advantage that program code and data of functions without or with low security relevance or priority can be stored in corresponding collective memories.
Für das erfindungsgemäße Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor wird zwischen zwei grundlegenden Anwendungsfällen unterschieden. Im ersten Fall führt ein Prozessorkern, welchem eine hohe Priorität zugewiesen ist, eine Funktion aus, für deren Prozess Daten aus einem weiteren Prozessorkern, welchem eine niedrigere Priorität zugewiesen ist, benötigt werden. Im Hinblick auf eine optimale Verarbeitungsgeschwindigkeit der Funktion aus dem hochpriorisierten Prozessorkern sind der Programmcode der Funktion im Programm-RAM des lokalen Speichers sowie die Daten im Daten-RAM des lokalen Speichers dieses Prozessorkerns allokiert. Benötigte Daten aus dem Prozessorkern mit niedrigerer Priorität werden von diesem in den Daten-RAM des lokalen Speichers des Prozessorkerns mit hoher Priorität geschrieben. Ist der Schreibvorgang beendet, liest der Prozessorkern mit hoher Priorität die Daten aus dem entsprechenden Daten-RAM seines lokalen Speichers und führt die Funktion aus. Der Prozessorkern mit hoher Priorität muss die benötigten Daten hierbei nicht erst aus einem globalen Speicher lesen, wobei eine Wartezeit entstehen kann, sondern lediglich auf seinen eigenen lokalen Speicher zugreifen. Im zweiten Fall führt ein Prozessorkern, welchem eine niedrigere Priorität zugewiesen ist, eine Funktion aus, für deren Prozess Daten aus einem weiteren Prozessorkern, welchem eine höhere Priorität zugewiesen ist, benötigt werden. Im Hinblick auf eine optimale Verarbeitungsgeschwindigkeit der Funktion aus dem niedriger priorisierten Prozessorkern sind der Programmcode der Funktion im Programm-RAM des lokalen Speichers sowie die Daten im Daten-RAM des lokalen Speichers dieses Prozessorkerns allokiert. Benötigte Daten aus dem Prozessorkern mit höherer Priorität werden von diesem in den Daten-RAM seines lokalen Speichers kopiert. Anschließend liest der Prozessorkern mit niedrigerer Priorität die erforderlichen Daten aus dem Daten-RAM des lokalen Speichers des Prozessorkerns mit höherer Priorität und verarbeitet sie im Prozess der auszuführenden Funktion entsprechend weiter. Der Prozessorkern mit hoher Priorität, welcher Daten für einen Prozessorkern mit niedriger Priorität bereitstellen soll, muss hierbei keine Daten in einen globalen Speicher oder den lokalen Speicher eines anderen Prozessorkerns kopieren, sondern greift lediglich kurz für den Kopiervorgang auf seinen eigenen lokalen Speicher zu. Für das erfindungsgemäße Verfahren gilt allgemein, dass Prozessorkerne, welche Daten für andere Prozessorkerne mit einer höheren Priorität bereitstellen sollen, diese Daten stets in den lokalen Speicher der Prozessorkerne mit höherer Priorität schreiben sowie, dass Prozessorkerne, welche Daten für Prozessorkerne mit niedrigerer Priorität bereitstellen sollen, diese Daten in ihren eigenen lokalen Speicher schreiben. Prozessorkerne, welche Daten von einem höher priorisierten Prozessorkern verarbeiten, lesen diese aus dem lokalen Speicher des Prozessorkerns mit höherer Priorität und Prozessorkerne, welche Daten von einem niedriger priorisierten Prozessorkern verarbeiten, lesen diese aus ihrem lokalen Speicher aus. Somit greifen jeweils höher priorisierte Prozessorkerne während der Zwischenkernkommunikation lediglich auf ihren eigenen lokalen Speicher zu, wodurch minimale Unterbrechungen bzw. Wartezeiten für diese Prozessorkerne entstehen.For the method according to the invention for inter-core communication in a multi-core processor, a distinction is made between two basic applications. In the first case, a processor core to which a high priority is assigned performs a function for the process of which data from a further processor core to which a lower priority is assigned are required. With a view to an optimal processing speed of the function from the high-priority processor core, the program code of the function in the program RAM of the local memory and the data in the data RAM of the local memory of this processor core are allocated. Required data from the processor core with lower priority is written by this into the data RAM of the local memory of the processor core with high priority. When the writing process is finished, the processor core reads the data from the corresponding data RAM of its local memory with high priority and executes the function. The processor core with high priority does not have to read the required data from a global memory, which can result in a waiting time, but only access its own local memory. In the second case, a processor core, which is assigned a lower priority, performs a function for the process of which data from a further processor core, which is assigned a higher priority, are required. With regard to an optimal processing speed of the function from the processor core with a lower priority, the program code of the function is allocated in the program RAM of the local memory and the data in the data RAM of the local memory of this processor core. Required data from the processor core with higher priority is copied from this into the data RAM of its local memory. The processor core with lower priority then reads the required data from the data RAM of the local memory of the processor core with higher priority and processes it further in the process of the function to be carried out. The processor core with high priority, which should provide data for a processor core with low priority, does not have to copy data into a global memory or the local memory of another processor core, but only briefly accesses its own local memory for the copying process. It generally applies to the method according to the invention that processor cores, which are to provide data for other processor cores with a higher priority, always write this data into the local memory of the processor cores with higher priority, and that processor cores which are to provide data for processor cores with a lower priority, write this data to their own local storage. Processor cores, which process data from a higher priority processor core, read them from the local memory of the processor core with higher priority and processor cores, which process data from a lower priority processor core, read them from their local memory. Thus, processor cores with higher priorities only access their own local memory during inter-core communication, which results in minimal interruptions or waiting times for these processor cores.
In einer vorteilhaften Ausführungsform des erfindungsgemäßen Verfahrens wird für das Schreiben von Daten eines Prozessorkerns in den lokalen Speicher eines anderen Prozessorkerns ein Speicherdirektzugriff eingerichtet. Die Busbeteiligung während Schreibvorgängen auf höher priorisierte Prozessorkerne wird hierbei durch einen DMA-Controller priorisiert, was die weitere Erhöhung der Übertragungsgeschwindigkeit der Daten mit sich bringt.In an advantageous embodiment of the method according to the invention, direct memory access is set up for writing data from one processor core to the local memory of another processor core. The bus participation during write processes on processor cores with a higher priority is prioritized here by a DMA controller, which entails a further increase in the transmission speed of the data.
In einer weiteren vorteilhaften Ausführung weisen die Prozessorkerne jeweils zwei Daten-RAM in ihren lokalen Speichern auf, sodass ein lokaler Daten-RAM des Prozessorkerns zur Kommunikation mit anderen Komponenten und / oder Prozessorkernen, sowie der andere lokale Daten-RAM zur kontinuierlichen Datenverarbeitung verwendet werden kann oder, dass mehrere Prozessorkerne Daten in den Daten-RAM des Prozessorkerns schreiben können, wobei konkurrierender Speicherzugriff verhindert bzw. dessen Effekt reduziert wird.In a further advantageous embodiment, the processor cores each have two data RAMs in their local memories, so that a local data RAM of the processor core can be used for communication with other components and / or processor cores, and the other local data RAM can be used for continuous data processing or that several processor cores can write data into the data RAM of the processor core, whereby competing memory access is prevented or its effect is reduced.
AusführungsbeispieleEmbodiments
Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung unter Bezugnahme auf die schematisch dargestellten Zeichnungen.Further features, possible applications and advantages of the invention result from the following description of exemplary embodiments of the invention with reference to the schematically illustrated drawings.
Hierbei zeigen:
-
1 : eine Zwischenkernkommunikation zwischen drei Prozessorkernen, welche jeweils einen lokalen Speicher aufweisen, wobei je ein Prozessorkern mit höchster und ein Prozessorkern mit mittlerer Priorität Daten von einem Prozessorkern mit niedriger Priorität verarbeiten. -
2 : eine Zwischenkernkommunikation zwischen drei Prozessorkernen, welche jeweils einen lokalen Speicher aufweisen, wobei zwei Prozessorkerne Daten von einem Prozessorkern mit höchster Priorität verarbeiten. -
3 : eine Zwischenkernkommunikation zwischen drei Prozessorkernen, welche jeweils einen lokalen Speicher aufweisen, wobei ein Prozessorkern mit höchster Priorität Daten von einem Prozessorkern mit mittlerer Priorität verarbeitet und gleichzeitig ein Prozessorkern mit niedriger Priorität Daten aus dem Prozessorkern mit mittlerer Priorität verarbeitet. -
4 : eine Zwischenkernkommunikation zwischen drei Prozessorkernen, welche jeweils zwei lokale Daten-RAM in ihren lokalen Speichern aufweisen, wobei je ein Prozessorkern mit höchster und ein Prozessorkern mit mittlerer Priorität Daten von einem Prozessorkern mit niedriger Priorität verarbeiten. -
5 : eine Zwischenkernkommunikation zwischen drei Prozessorkernen, welche jeweils zwei lokale Daten-RAM in ihren lokalen Speichern aufweisen, wobei ein Prozessorkern mit höchster Priorität Daten von einem Prozessorkern mit mittlerer Priorität verarbeitet und gleichzeitig ein Prozessorkern mit niedriger Priorität Daten aus dem Prozessorkern mit mittlerer Priorität verarbeitet.
-
1 : Inter-core communication between three processor cores, each of which has a local memory, one processor core with the highest and one Processor core with medium priority Process data from a processor core with low priority. -
2nd : Inter-core communication between three processor cores, each of which has a local memory, two processor cores processing data from a processor core with the highest priority. -
3rd : Inter-core communication between three processor cores, each of which has a local memory, wherein a processor core with highest priority processes data from a processor core with medium priority and at the same time a processor core with low priority processes data from the processor core with medium priority. -
4th : Inter-core communication between three processor cores, each of which has two local data RAMs in their local memories, one processor core with the highest priority and one processor core with the medium priority processing data from a processor core with the lower priority. -
5 : Inter-core communication between three processor cores, each with two local data RAMs in their local memories, whereby a processor core with highest priority processes data from a processor core with medium priority and at the same time a processor core with low priority processes data from the processor core with medium priority.
In den dargestellten Ausführungsformen ist die Zwischenkernkommunikation beispielhaft für einen Mehrkernprozessor eines fahrzeuginternen Steuergerätes mit drei Prozessorkernen unterschiedlicher Priorität abgebildet. Ein erster Prozessorkern ist für die Kommunikation mit anderen Systemen oder Ein-/ Ausgabegeräten, bspw. über CAN/Ethernet verantwortlich. Diesem Prozessorkern ist eine niedrige Priorität zugeordnet. Ein zweiter Prozessorkern ist für die Ausführung sicherheitsrelevanter Funktionen verantwortlich und besitzt demnach die höchste Priorität. Ein dritter Prozessorkern ist für die Systemüberwachung und Fehlerdiagnose zuständig. Diesem Prozessorkern ist verhältnismäßig eine mittlere Priorität zugewiesen. In allen Figuren weist der erste Prozessorkern (
In
In
In
In
In
BezugszeichenlisteReference list
- 11
- MehrkernprozessorMulti-core processor
- 2A, 2B, 2Z2A, 2B, 2Z
- ProzessorkernProcessor core
- 3A, 3B, 3Z3A, 3B, 3Z
- lokaler Speicherlocal memory
- 4A, 4B, 4Z4A, 4B, 4Z
- ProgrammspeicherschnittstelleProgram memory interface
- 5A, 5B, 5Z5A, 5B, 5Z
- DatenspeicherschnittstelleData storage interface
- 6A, 6B, 6Z6A, 6B, 6Z
- lokaler Daten-RAMlocal data RAM
- 77
- BussystemBus system
- 88th
- globaler Speicherglobal storage
- 9, 9A, 9B, 9Z9, 9A, 9B, 9Z
- globaler Daten-RAMglobal data RAM
- 10, 10A, 10B, 10Z10, 10A, 10B, 10Z
- globaler Programm-RAMglobal program RAM
- 1111
- DMA-ControllerDMA controller
- S1S1
- erster Schreibvorgangfirst write
- S2S2
- zweiter Schreibvorgangsecond write
- S3S3
- erster Lesevorgangfirst reading
- S4S4
- zweiter Lesevorgangsecond reading
- S5S5
- erste Datenverarbeitungfirst data processing
- S6S6
- zweite Datenverarbeitungsecond data processing
- S7S7
- dritte Datenverarbeitungthird data processing
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018123563.1A DE102018123563B4 (en) | 2018-09-25 | 2018-09-25 | Method for inter-core communication in a multi-core processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018123563.1A DE102018123563B4 (en) | 2018-09-25 | 2018-09-25 | Method for inter-core communication in a multi-core processor |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102018123563A1 DE102018123563A1 (en) | 2020-03-26 |
DE102018123563B4 true DE102018123563B4 (en) | 2020-04-02 |
Family
ID=69724859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102018123563.1A Active DE102018123563B4 (en) | 2018-09-25 | 2018-09-25 | Method for inter-core communication in a multi-core processor |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102018123563B4 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817898A (en) * | 2021-02-08 | 2021-05-18 | 清华大学 | Data transmission method, processor, chip and electronic equipment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017056725A1 (en) * | 2015-09-30 | 2017-04-06 | 日立オートモティブシステムズ株式会社 | In-vehicle control device |
-
2018
- 2018-09-25 DE DE102018123563.1A patent/DE102018123563B4/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017056725A1 (en) * | 2015-09-30 | 2017-04-06 | 日立オートモティブシステムズ株式会社 | In-vehicle control device |
Non-Patent Citations (2)
Title |
---|
Brock, H. et al.: AUTOSAR goes Multicore – mit Sicherheit. In: Elektronik automotive, June 2014. online: https://www.elektroniknet.de/elektronik-automotive/software-tools/autosar-goes-multicore-mit-sicherheit-110665.html am 4.7.2014Abgerufen am 5.9.2019 * |
Kachris, C. et al.: Low-latency explicit communication and synchronization in scalable multi-core clusters. In: 2010 IEEE International Conference On Cluster Computing Workshops and Posters (CLUSTER WORKSHOPS), 2010. * |
Also Published As
Publication number | Publication date |
---|---|
DE102018123563A1 (en) | 2020-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69818103T2 (en) | CALLING MECHANISM FOR STATIC AND DYNAMICALLY LINKED FUNCTIONS IN AN OBJECT-ORIENTED CONTROL UNIT USING HETEROGENEOUS DEVELOPMENT ENVIRONMENTS | |
CH651950A5 (en) | MULTIPROCESSOR ARRANGEMENT. | |
EP3125056A1 (en) | System and method for control and/or analysis of an industrial process | |
DE102014005557A1 (en) | Numerical control device | |
EP3417373B1 (en) | Method and device for operating a controller | |
DE2164793A1 (en) | Method and data processing system for controlling a large number of input / output units by means of a central unit | |
DE112014000340T5 (en) | Prefetching data for a chip with a parent core and a scout core | |
DE112019005584T5 (en) | ARITHMETIC CONTROL DEVICE | |
DE102018123563B4 (en) | Method for inter-core communication in a multi-core processor | |
DE4445651A1 (en) | Process for the control of technical processes | |
EP1428105A2 (en) | Programme-controlled unit | |
EP3705993B1 (en) | System and method for locating and identifying computing nodes in a network | |
DE102016206490A1 (en) | ELECTRONIC CONTROL UNIT | |
DE102016219449A1 (en) | Parallelization method, parallelization tool and vehicle-mounted device | |
EP2126700B1 (en) | Control of the run time behavior of processes | |
DE102016224206A1 (en) | VEHICLE CONTROL DEVICE | |
DE2507405A1 (en) | PROCEDURE AND ARRANGEMENT FOR SYNCHRONIZING THE TASKS IN PERIPHERAL DEVICES IN A DATA PROCESSING SYSTEM | |
DE102022202335A1 (en) | COMPUTER-IMPLEMENTED METHOD FOR MEMORY OPTIMIZATION OF A PARTITIONED SYSTEM | |
EP1260905A2 (en) | Program-controlled unit | |
DE102019118757B4 (en) | Method for establishing cache coherence in multi-core processors | |
EP1429254B1 (en) | Interrupt handling in a CAN node | |
DE102022003674A1 (en) | Method for statically allocating information to storage areas, information technology system and vehicle | |
WO2023030757A1 (en) | Monitoring method | |
DE112022002749T5 (en) | ELECTRONIC SYSTEM AND ELECTRONIC CONTROL DEVICE | |
DE102021101309A1 (en) | ELECTRONIC CONTROL DEVICE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |