DE102018123563B4 - Method for inter-core communication in a multi-core processor - Google Patents

Method for inter-core communication in a multi-core processor Download PDF

Info

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
Application number
DE102018123563.1A
Other languages
German (de)
Other versions
DE102018123563A1 (en
Inventor
Philipp Jungklaß
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.)
IAV GmbH Ingenieurgesellschaft Auto und Verkehr
Original Assignee
IAV GmbH Ingenieurgesellschaft Auto und Verkehr
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 IAV GmbH Ingenieurgesellschaft Auto und Verkehr filed Critical IAV GmbH Ingenieurgesellschaft Auto und Verkehr
Priority to DE102018123563.1A priority Critical patent/DE102018123563B4/en
Publication of DE102018123563A1 publication Critical patent/DE102018123563A1/en
Application granted granted Critical
Publication of DE102018123563B4 publication Critical patent/DE102018123563B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; 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 1 ist der prinzipielle Aufbau des Speichermanagements von aktuellen Mehrkernprozessoren aufgezeigt. Ein Mehrkernprozessor (1) beinhaltet eine bestimmte Anzahl an Prozessorkernen (2A, 2B, 2Z), welche je über einen lokalen Speicher (3A, 3B, 3Z) verfügen. Insbesondere fahrzeuginterne Steuergeräte weisen eine Prozessorarchitektur nach der Harvard-Architektur auf, wobei Daten- und Befehlsspeicher sowohl physisch als auch logisch voneinander getrennt sind. Der Vorteil besteht darin, dass Daten und Befehle gleichzeitig verarbeitet werden können. Die einzelnen Prozessorkerne (2A, 2B, 2Z) besitzen demnach eine Programmspeicherschnittstelle (4A, 4B, 4Z) und eine Datenspeicherschnittstelle (5A, 5B, 5Z). Innerhalb der Programmspeicherschnittstelle (4A, 4B, 4Z) befinden sich lokale Speicher in Form von lokalen Programm-RAM und innerhalb der Datenspeicherschnittstelle (5A, 5B, 5Z) befinden sich lokale Speicher in Form von lokalen Daten-Ram (6A, 6B, 6Z). Die einzelnen Prozessorkerne (2A, 2B, 2Z) können auf ihre eigenen lokalen Speicher (3A, 3B, 3Z) unmittelbar und über ein Bussystem (7) auf die lokalen Speicher (3A, 3B, 3Z) weiterer Prozessorkerne (2A, 2B, 2Z) oder auf einen globalen Speicher (8) zugreifen. Der globale Speicher (8) kann wiederum in eine Datenspeichereinheit (9) und eine Programmspeichereinheit (10) aufgeteilt sein. Weiterhin können Datenspeichereinheit (9) und Programmspeichereinheit (10) partitioniert sein, wobei die Datenspeichereinheit (9) funktionalbezogen einzelne Daten-RAM (9A, 9B, 9Z), sowie die Programmspeichereinheit (10) einzelne Programm-RAM (10A, 10B, 10Z) aufweisen kann. Eine Mehrzahl an Prozessorkernen zur Leistungssteigerung des Mehrkernprozessors, aufgrund der Fülle der vorhandenen Funktionen, erfordert einen gegenseitigen Speicherzugriff zwischen Prozessorkernen, im Folgenden als Zwischenkernkommunikation bezeichnet. Die Zwischenkernkommunikation kann dabei jedoch nur zu einem adäquaten Leistungszuwachs beisteuern, wenn die einzelnen Speicher und die Speicherzugriffe optimal ausgenutzt werden. Dafür ist u.a. die Allokation des Programmcodes und der Daten von besonderer Bedeutung. Bei einer großen Menge an Daten, einem hohen Bedarf an Datenaustausch sowie einer Vielzahl von Funktionen und Informationen im steuergerätinternen Netzwerk ist die Verwendung von globalen Speichern im Bezug zur Erhöhung der Speicherkapazität Stand der Technik. Globale Speicher besitzen jedoch Nachteile bezüglich der optimalen Leistungsausbeute von Mehrkernprozessoren und der Echtzeitfähigkeit in der Ausführung von Funktionen. Durch die Vielzahl an Funktionen, die in modernen Fahrzeugen implementiert sind, werden oft durch das Fahrzeug generierte Daten von mehreren Funktionen aus unterschiedlichen Anwendungsbereichen ausgewertet. So werden beispielsweise Daten vom Raddrehzahlsensor u.a. für die Fahrzeuggeschwindigkeit, den Notbremsassistenten und die Navigation benötigt. Wollen also mehrere Prozessorkerne gleichzeitig auf globalen Speicher zugreifen, entstehen Wartezeiten, durch die begrenzt abbildbare Datenübertragungsrate, sowie der Effekt von konkurrierendem Zugriff auf Speicher.With the increasing electrification of vehicles, but also through the further development of driver assistance systems, entertainment systems and autonomous driving, more and more functions are being created that are carried out within a vehicle by the vehicle's internal control units. This requires increasingly powerful control units. In-vehicle control units, for example engine control units, are largely standardized in terms of their housing shape and pin assignment in the vehicle industry, with the aim of reducing development and manufacturing costs. In order to meet the increasing performance requirements while maintaining the necessary installation space, multi-core processors are used, with an increase in the number of processor cores focusing on increasing the performance of the processor. In terms of components, multi-core processors consist of the processor cores, which in turn have an arithmetic unit, arithmetic registers or memory areas, a control unit and memory management, memories and caches and other peripherals. The individual components of the multi-core processor are interconnected via a bus system. Based on the drawing 1 the basic structure of the memory management of current multi-core processors is shown. A multi-core processor ( 1 ) contains a certain number of processor cores ( 2A , 2 B , 2Z) which each have a local storage ( 3A , 3B , 3Z) feature. In-vehicle control devices in particular have a processor architecture based on the Harvard architecture, with data and command memories being physically and logically separated from one another. The advantage is that data and commands can be processed simultaneously. The individual processor cores ( 2A , 2 B , 2Z) therefore have a program memory interface ( 4A , 4B , 4Z) and a data storage interface ( 5A , 5B , 5Z) . Within the program memory interface ( 4A , 4B , 4Z) there is local storage in the form of local program RAM and within the data storage interface ( 5A , 5B , 5Z) there is local storage in the form of local data ram ( 6A , 6B , 6Z) . The individual processor cores ( 2A , 2 B , 2Z) can on their own local storage ( 3A , 3B , 3Z) directly and via a bus system ( 7 ) to the local store ( 3A , 3B , 3Z) additional processor cores ( 2A , 2 B , 2Z) or global storage ( 8th ) access. Global storage ( 8th ) can in turn be stored in a data storage unit ( 9 ) and a program storage unit ( 10th ) be divided. Furthermore, data storage unit ( 9 ) and program storage unit ( 10th ) be partitioned, the data storage unit ( 9 ) function-related individual data RAM ( 9A , 9B , 9Z) , as well as the program storage unit ( 10th ) individual program RAM ( 10A , 10B , 10Z) can have. A plurality of processor cores to increase the performance of the multi-core processor, due to the abundance of the functions available, require mutual memory access between processor cores, hereinafter referred to as inter-core communication. However, the inter-core communication can only contribute to an adequate increase in performance if the individual memories and the memory accesses are used optimally. The allocation of the program code and data is of particular importance for this. With a large amount of data, a high need for data exchange and a large number of functions and information in the internal control unit network, the use of global memories in relation to increasing the storage capacity is state of the art. However, global memories have disadvantages regarding the optimal performance of multi-core processors and the real-time ability to perform functions. Due to the large number of functions that are implemented in modern vehicles, data generated by the vehicle is often evaluated by several functions from different areas of application. For example, data from the wheel speed sensor are required for vehicle speed, emergency brake assist and navigation, among other things. If several processor cores want to access global memory at the same time, waiting times arise due to the limited reproducible data transfer rate and the effect of competing memory access.

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 ( Jungklass, Philipp; Berekovic, Mladen: Effects of concurrent access to embedded multicore microcontrollers with hard real-time demands, 13th International Symposium on Industrial Embedded Systems, 6 June 2018, Graz, Austria ). Demnach sind konkurrierende Zugriffe auf Daten-RAM oder Programm-RAM vom globalen Speicher oder konkurrierender Zugriff auf lokale Speicher der Prozessorkernspeicher mit den größten Leistungseinbußen in Mehrkernprozessoren behaftet. Je nach Prozessoraufbau und Speicherstruktur ist eine lineare Leistungssteigerung mit Zunahme der Prozessorkerne nur bei exklusivem Speicherzugriff der Prozessorkerne auf globale Speicher oder bei exklusivem Zugriff eines Prozessorkerns auf seinen eigenen lokalen Speicher möglich.Studies with regard to the performance of multi-core processors as a function of memory management in current processors for vehicle-internal control units show that an increase in the processor cores does not necessarily result in a linear increase in the performance of the processor ( Jungklass, Philipp; Berekovic, Mladen: Effects of concurrent access to embedded multicore microcontrollers with hard real-time demands, 13th International Symposium on Industrial Embedded Systems, 6 June 2018, Graz, Austria ). Accordingly, competing access to data RAM or program RAM from global memory or competing access to local memory of the processor core memory suffer the greatest performance losses in multi-core processors. Depending on the processor structure and memory structure, a linear increase in performance with an increase in processor cores is only possible Exclusive memory access of the processor cores to global memory or with exclusive access of a processor core to its own local memory possible.

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 WO 2017/056725 A1 wird dazu eine fahrzeuginterne Steuerungsvorrichtung vorgestellt, welche die Datenkommunikation zwischen Prozessorkernen eines Mehrkernprozessors beinhaltet, wobei einzelne Prozessorkerne unterschiedliche funktionale Sicherheitsstufen aufweisen.In order to increase the performance of in-vehicle control units using multi-core processors, in addition to the performance of the individual cores, effective memory management is also required to obtain an optimal performance yield. In the published application WO 2017/056725 A1 For this purpose, an in-vehicle control device is presented, which contains the data communication between processor cores of a multi-core processor, wherein individual processor cores have different functional security levels.

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 claim 1, further embodiments result from the features of the subclaims.

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.
Here show:
  • 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 (2A) die niedrigste, der zweite Prozessorkern (2B) die höchste und der dritte Prozessorkern (2Z) eine mittlere Priorität auf.In the illustrated embodiments, the inter-core communication is shown as an example for a multi-core processor of an in-vehicle control device with three processor cores of different priority. A first processor core is responsible for communication with other systems or input / output devices, e.g. via CAN / Ethernet. A low priority is assigned to this processor core. A second processor core is responsible for the execution of safety-relevant functions and therefore has the highest priority. A third processor core is responsible for system monitoring and fault diagnosis. A relatively high priority is assigned to this processor core. In all figures, the first processor core ( 2A) the lowest, the second processor core ( 2 B) the highest and the third processor core ( 2Z) a medium priority.

In 1 ist das erfindungsgemäße Verfahren für eine Zwischenkernkommunikation zwischen den drei Prozessorkernen (2A, 2B, 2Z), welche jeweils einen lokalen Speicher (3A, 3B, 3Z) aufweisen, dargestellt, wobei der zweite Prozessorkern (2B) mit höchster und der dritte Prozessorkern (2Z) mit mittlerer Priorität Daten vom ersten Prozessorkern (2A) mit niedriger Priorität verarbeiten. Der erste Prozessorkern (2A) schreibt in einem ersten Schritt (S1) die höchstpriorisierten Daten in den Daten-RAM (6B) des lokalen Speichers (3B) des zweiten Prozessorkerns (2B). In einem zweiten Schritt (S2) schreibt der erste Prozessorkern (2A) die weiteren Daten in den Daten-RAM (6Z) des lokalen Speichers (3Z) des dritten Prozessorkerns (2Z). Ist der Schreibvorgang für den zweiten Prozessorkern (2B) abgeschlossen, liest dieser die entsprechenden Daten in einem weiteren Schritt (S3) über seine Datenspeicherschnittstelle (5B) aus. Analog liest der dritte Prozessorkern (2Z) die Daten in einem weiteren Schritt (S4) über seine Datenspeicherschnittstelle (5Z) aus. In den folgenden Schritten (S5, S6, S7) verarbeiten sämtliche Prozessorkerne (2A, 2B, 2Z) Daten aus ihren lokalen Speichern (3A, 3B, 3Z).In 1 is the method according to the invention for inter-core communication between the three processor cores ( 2A , 2 B , 2Z) which each have a local storage ( 3A , 3B , 3Z) have shown, wherein the second processor core ( 2 B) with the highest and the third processor core ( 2Z) with medium priority data from the first processor core ( 2A) Process with low priority. The first processor core ( 2A) in a first step ( S1 ) the highest priority data in the data RAM ( 6B) local storage ( 3B) of the second processor core ( 2 B) . In a second step ( S2 ) writes the first processor core ( 2A) the other data in the data RAM ( 6Z) local storage ( 3Z) the third processor core ( 2Z) . Is the writing process for the second processor core ( 2 B) completed, it reads the corresponding data in a further step ( S3 ) via its data storage interface ( 5B) out. The third processor core reads analogously ( 2Z) the data in a further step ( S4 ) via its data storage interface ( 5Z) out. In the following steps ( S5 , S6 , S7 ) process all processor cores ( 2A , 2 B , 2Z) Data from their local stores ( 3A , 3B , 3Z) .

In 2 ist das erfindungsgemäße Verfahren für eine Zwischenkernkommunikation zwischen den drei Prozessorkernen (2A, 2B, 2Z), welche jeweils einen lokalen Speicher (3A, 3B, 3Z) aufweisen, dargestellt, wobei der erste und der dritte Prozessorkern (2A, 2Z), welche beide eine niedrigere Priorität als der zweite Prozessorkern (2B) aufweisen, Daten aus dem zweiten Prozessorkern (2B) verarbeiten. Der zweite Prozessorkern (2B) schreibt die erforderlichen Daten in einem ersten und einem zweiten Schritt (S1, S2) in den Daten-RAM (6B) seines lokalen Speichers (3B). Anschließend lesen die beiden anderen Prozessorkerne (2A, 2Z) die Daten aus dem Daten-RAM (6B) des lokalen Speichers (3B) des zweiten Prozessorkerns (2B) aus (S3, S4). In den folgenden Schritten (S5, S6, S7) verarbeiten sämtliche Prozessorkerne (2A, 2B, 2Z) Daten aus ihren lokalen Speichern (3A, 3B, 3Z).In 2nd is the method according to the invention for inter-core communication between the three processor cores ( 2A , 2 B , 2Z) which each have a local storage ( 3A , 3B , 3Z) shown, the first and third processor core ( 2A , 2Z) , both of which have a lower priority than the second processor core ( 2 B) have data from the second processor core ( 2 B) to process. The second processor core ( 2 B) writes the required data in a first and a second step ( S1 , S2 ) in the data RAM ( 6B) its local storage ( 3B) . Then the other two processor cores read ( 2A , 2Z) the data from the data RAM ( 6B) local storage ( 3B) of the second processor core ( 2 B) from (S3, S4). In the following steps ( S5 , S6 , S7 ) process all processor cores ( 2A , 2 B , 2Z) Data from their local stores ( 3A , 3B , 3Z) .

In 3 ist das erfindungsgemäße Verfahren für eine Zwischenkernkommunikation zwischen den drei Prozessorkernen (2A, 2B, 2Z), welche jeweils einen lokalen Speicher (3A, 3B, 3Z) aufweisen, dargestellt, wobei der erste Prozessorkern (2A), welcher die niedrigste Priorität aufweist, und der zweite Prozessorkern (2B), welcher die höchste Priorität aufweist, Daten aus dem dritten Prozessorkern (2Z), welcher die mittlere Priorität aufweist, verarbeiten. In einem ersten und einem zweiten Schritt (S1, S2) schreibt der dritte Prozessorkern (2Z) die erforderlichen Daten in den Daten-RAM (6Z) seines lokalen Speichers (3Z) und in den Daten-RAM (6B) des lokalen Speichers (3B) des zweiten Prozessorkerns (2B). In den weiteren beiden Schritten (S3, S4) liest der erste Prozessorkern (2A) Daten aus dem lokalen Speicher (3Z) des dritten Prozessorkerns (2Z) und der zweite Prozessorkern (2B) liest Daten aus seinem lokalen Speicher (3B). In den folgenden Schritten (S5, S6, S7) verarbeiten sämtliche Prozessorkerne (2A, 2B, 2Z) Daten aus ihren lokalen Speichern (3A, 3B, 3Z).In 3rd is the method according to the invention for inter-core communication between the three processor cores ( 2A , 2 B , 2Z) which each have a local storage ( 3A , 3B , 3Z) have, shown, the first processor core ( 2A) , which has the lowest priority, and the second processor core ( 2 B) , which has the highest priority, data from the third processor core ( 2Z) , which has the medium priority. In a first and a second step ( S1 , S2 ) writes the third processor core ( 2Z) the required data in the data RAM ( 6Z) its local storage ( 3Z) and in the data RAM ( 6B) local storage ( 3B) of the second processor core ( 2 B) . In the next two steps ( S3 , S4 ) reads the first processor core ( 2A) Local storage data ( 3Z) the third processor core ( 2Z) and the second processor core ( 2 B) reads data from its local storage ( 3B) . In the following steps ( S5 , S6 , S7 ) process all processor cores ( 2A , 2 B , 2Z) Data from their local stores ( 3A , 3B , 3Z) .

In 4 ist das erfindungsgemäße Verfahren für eine Zwischenkernkommunikation zwischen den drei Prozessorkernen (2A, 2B, 2Z), welche jeweils zwei Daten-RAM (6A, 6B, 6Z) in ihren lokalen Speichern (3A, 3B, 3Z) aufweisen, dargestellt, wobei der zweite Prozessorkern (2B) mit höchster und der dritte Prozessorkern (2Z) mit mittlerer Priorität Daten vom ersten Prozessorkern (2A) mit niedriger Priorität verarbeiten. Der erste Prozessorkern (2A) schreibt in einem ersten Schritt (S1) die höchstpriorisierten Daten in einen Daten-RAM (6B) des zweiten Prozessorkerns (2B). In einem zweiten Schritt (S2) schreibt der erste Prozessorkern (2A) die weiteren Daten in einen Daten-RAM (6Z) des dritten Prozessorkerns (2Z). Ist der Schreibvorgang für den zweiten Prozessorkern (2B) abgeschlossen, liest dieser die entsprechenden Daten in einem weiteren Schritt (S3) über seine Datenspeicherschnittstelle (5B) aus. Analog liest der dritte Prozessorkern (2Z) die Daten in einem weiteren Schritt (S4) über seine Datenspeicherschnittstelle (5Z) aus. Die Schritte zur Datenverarbeitung (S5, S6, S7) werden in allen Prozessorkernen (2A, 2B, 2Z) parallel dazu ausgeführt, durch die jeweiligen weiteren lokalen Daten-RAM (6A, 6B, 6Z), welche nicht an der Zwischenkernkommunikation beteiligt sind.In 4th is the method according to the invention for inter-core communication between the three processor cores ( 2A , 2 B , 2Z) , which each have two data RAM ( 6A , 6B , 6Z) in their local stores ( 3A , 3B , 3Z) have shown, wherein the second processor core ( 2 B) with the highest and the third processor core ( 2Z) with medium priority data from the first processor core ( 2A) Process with low priority. The first processor core ( 2A) in a first step ( S1 ) the highest priority data in a data RAM ( 6B) of the second processor core ( 2 B) . In a second step ( S2 ) writes the first processor core ( 2A) the other data in a data RAM ( 6Z) the third processor core ( 2Z) . Is the writing process for the second processor core ( 2 B) completed, it reads the corresponding data in a further step ( S3 ) via its data storage interface ( 5B) out. The third processor core reads analogously ( 2Z) the data in a further step ( S4 ) via its data storage interface ( 5Z) out. The steps for data processing ( S5 , S6 , S7 ) are in all processor cores ( 2A , 2 B , 2Z) executed in parallel by the respective other local data RAM ( 6A , 6B , 6Z) which are not involved in inter-core communication.

In 5 ist das erfindungsgemäße Verfahren für eine Zwischenkernkommunikation zwischen den drei Prozessorkernen (2A, 2B, 2Z), welche jeweils zwei Daten-RAM (6A, 6B, 6Z) in ihren lokalen Speichern (3A, 3B, 3Z) aufweisen, dargestellt, wobei der erste Prozessorkern (2A), welcher die niedrigste Priorität aufweist, und der zweite Prozessorkern (2B), welcher die höchste Priorität aufweist, Daten aus dem dritten Prozessorkern (2Z), welcher die mittlere Priorität aufweist, verarbeiten. In einem ersten und einem zweiten Schritt (S1, S2) schreibt der dritte Prozessorkern (2Z) die erforderlichen Daten in einen Daten-RAM (6Z) seines lokalen Speichers (3Z) und Daten-RAM (6B) des lokalen Speichers (3B) des zweiten Prozessorkerns (2B). Dabei ist zur Zwischenkernkommunikation zwischen dem dritten Prozessorkern (2Z) und dem zweiten Prozessorkern (2B) ein Speicherdirektzugriff über einen DMA-Controller (11) eingerichtet, sodass die Datenübertragung auf den Prozessorkern höchster Priorität (2B) für eine Übertragung auf dem Busleitungssystem (7) priorisiert ist. In den weiteren beiden Schritten (S3, S4) liest der erste Prozessorkern (2A) Daten aus dem lokalen Speicher (3Z) des dritten Prozessorkerns (2Z) und der zweite Prozessorkern (2B) liest Daten aus seinem lokalen Speicher (3B). Die Schritte zur Datenverarbeitung (S5, S6, S7) werden in allen Prozessorkernen (2A, 2B, 2Z) parallel dazu ausgeführt, durch die jeweiligen weiteren lokalen Daten-RAM (6A, 6B, 6Z), welche nicht an der Zwischenkernkommunikation beteiligt sind.In 5 is the method according to the invention for inter-core communication between the three processor cores ( 2A , 2 B , 2Z) , which each have two data RAM ( 6A , 6B , 6Z) in their local stores ( 3A , 3B , 3Z) have, shown, the first processor core ( 2A) , which has the lowest priority, and the second processor core ( 2 B) , which has the highest priority, data from the third processor core ( 2Z) , which has the medium priority. In a first and a second step ( S1 , S2 ) writes the third processor core ( 2Z) the required data in a data RAM ( 6Z) its local storage ( 3Z) and data RAM ( 6B) local storage ( 3B) of the second processor core ( 2 B) . The inter-core communication between the third processor core ( 2Z) and the second processor core ( 2 B) direct memory access via a DMA controller ( 11 ) is set up so that data transfer to the processor core is of the highest priority ( 2 B) for transmission on the bus line system ( 7 ) is prioritized. In the next two steps ( S3 , S4 ) reads the first processor core ( 2A) Local storage data ( 3Z) the third processor core ( 2Z) and the second processor core ( 2 B) reads data from its local storage ( 3B) . The steps for data processing ( S5 , S6 , S7 ) are in all processor cores ( 2A , 2 B , 2Z) executed in parallel by the respective other local data RAM ( 6A , 6B , 6Z) which are not involved in inter-core communication.

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)

Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor, wobei der Mehrkernprozessor mindestens zwei Prozessorkerne aufweist, wobei den Prozessorkernen eine Priorität abhängig von den Sicherheitsstandards der Funktionen, welche sie ausführen sollen, zugewiesen ist, wobei die Prioritäten nach den Sicherheitsstandards nach ISO 26262 zugewiesen sind, sodass besonders zeitkritische oder sicherheitsrelevante Funktionen eine höhere Priorität aufweisen, wobei die Prozessorkerne über ein Netzwerk untereinander und mit weiteren Komponenten des Mehrkernprozessors verbunden sind, sodass eine Datenübertragung zwischen den Prozessorkernen untereinander und den Komponenten möglich ist, wobei jeder Prozessorkern wenigstens über einen eigenen lokalen Speicher verfügt, wobei den Prozessorkernen unterschiedliche Prioritäten zugeordnet sind, sodass, dann, wenn ein Prozessorkern mit einer höheren Priorität Daten von einem Prozessorkern mit einer niedrigeren Priorität benötigt, der Prozessorkern mit der höheren Priorität Daten vom Prozessorkern mit der niedrigeren Priorität verarbeitet, in der Form, dass der Prozessorkern mit der niedrigeren Priorität die erforderlichen Daten über das Netzwerk in den lokalen Speicher des Prozessorkerns mit der höheren Priorität schreibt, der Prozessorkern mit der höheren Priorität die Daten aus seinem lokalen Speicher liest und die Daten weiterverarbeitet, oder dann, wenn ein Prozessorkern mit einer niedrigeren Priorität Daten von einem Prozessorkern mit einer höheren Priorität benötigt, der Prozessorkern mit der niedrigeren Priorität Daten vom Prozessorkern mit der höheren Priorität verarbeitet, in der Form, dass der Prozessorkern mit der höheren Priorität die erforderlichen Daten in seinen lokalen Speicher schreibt, der Prozessorkern mit der niedrigeren Priorität die Daten aus dem lokalen Speicher des Prozessorkerns mit der höheren Priorität liest und die Daten weiterverarbeitet, wobei für das Schreiben von Daten eines Prozessorkerns in den lokalen Speicher eines anderen Prozessorkerns ein Speicherdirektzugriff eingerichtet werden kann. Method for inter-core communication in a multi-core processor, the multi-core processor having at least two processor cores, the processor cores being assigned a priority depending on the security standards of the functions which they are intended to perform, the priorities being assigned in accordance with the security standards in accordance with ISO 26262, so that particularly time-critical ones or security-related functions have a higher priority, the processor cores being connected to one another and to other components of the multi-core processor via a network, so that data transfer between the processor cores to one another and the components is possible, each processor core having at least its own local memory, the Processor cores are assigned different priorities, so, if a processor core with a higher priority needs data from a processor core with a lower priority, the processor core with the higher priority processes data from the processor core with the lower priority, in the form that the processor core with the lower priority does the necessary data writes over the network to the local memory of the processor core with the higher priority, the processor core with the higher priority reads the data from its local memory and processes the data, or if a processor core with a lower priority writes data from a processor core with a higher one Priority is required, the processor core with the lower priority processes data from the processor core with the higher priority, in the form that the processor core with the higher priority writes the required data into its local memory, the processor core with the lower priority that Reads data from the local memory of the processor core with the higher priority and processes the data further, wherein direct memory access can be set up for writing data from one processor core to the local memory of another processor core. Verfahren nach Patentanspruch 1, dadurch gekennzeichnet, dass weitere Komponenten des Mehrkernprozessors einen oder mehrere globale Speicher und / oder einen oder mehrere Programm-RAM und / oder einen oder mehrere Daten-RAM einschließen, sodass Daten und Programmcode mit niedriger Priorität auf diesen Komponenten gespeichert und / oder verarbeitet werden.Procedure according to Claim 1 , characterized in that further components of the multi-core processor include one or more global memories and / or one or more program RAM and / or one or more data RAM, so that data and program code with low priority are stored and / or processed on these components . Verfahren nach Patentanspruch 1 oder 2, dadurch gekennzeichnet, dass der lokale Speicher eines Prozessorkerns ein Speicher ist, welcher physisch und elektrisch unmittelbar mit dem Prozessorkern verbunden ist.Procedure according to Claim 1 or 2nd , characterized in that the local memory of a processor core is a memory which is physically and electrically connected directly to the processor core. Verfahren nach einem der vorherigen Patentansprüche, dadurch gekennzeichnet, dass das Netzwerk aus einem oder mehreren Bussystemen besteht, sodass Daten und Informationen zwischen den Prozessorkernen, deren lokalen Speichern sowie den restlichen Komponenten des Mehrkernprozessors ausgetauscht werden.Method according to one of the preceding claims, characterized in that the network consists of one or more bus systems, so that data and information are exchanged between the processor cores, their local memories and the remaining components of the multi-core processor. Vorrichtung die eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 4 auszuführen.Device which is set up, a method according to one of the Claims 1 to 4th to execute. Fahrzeug mit einer Vorrichtung nach Patentanspruch 5.Vehicle with a device after Claim 5 .
DE102018123563.1A 2018-09-25 2018-09-25 Method for inter-core communication in a multi-core processor Active DE102018123563B4 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056725A1 (en) * 2015-09-30 2017-04-06 日立オートモティブシステムズ株式会社 In-vehicle control device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056725A1 (en) * 2015-09-30 2017-04-06 日立オートモティブシステムズ株式会社 In-vehicle control device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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
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
EP2698678A2 (en) Configuration technique for a control device with applications that communicate with each other
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