DE102017216454A1 - A method of operating a processor unit having multiple processor cores and shared buffer memory area - Google Patents

A method of operating a processor unit having multiple processor cores and shared buffer memory area Download PDF

Info

Publication number
DE102017216454A1
DE102017216454A1 DE102017216454.9A DE102017216454A DE102017216454A1 DE 102017216454 A1 DE102017216454 A1 DE 102017216454A1 DE 102017216454 A DE102017216454 A DE 102017216454A DE 102017216454 A1 DE102017216454 A1 DE 102017216454A1
Authority
DE
Germany
Prior art keywords
real
time
processor
processor core
buffer memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102017216454.9A
Other languages
German (de)
Inventor
Yannik Mueller
Kevin Mueller
Frank Mueller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102017216454.9A priority Critical patent/DE102017216454A1/en
Publication of DE102017216454A1 publication Critical patent/DE102017216454A1/en
Pending legal-status Critical Current

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben einer Prozessoreinheit (100), wobei die Prozessoreinheit (100) wenigstens zwei Prozessorkerne (110, 120, 130, 140) aufweist, wobei wenigstens einer dieser Prozessorkerne (110, 120, 130, 140) ein echtzeitfähiger Prozessorkern ist, und wobei die Prozessoreinheit (100) einen gemeinsamen Puffer-Speicherbereich (150) aufweist, auf welchen alle Prozessorkerne (110, 120, 130, 140) der Prozessoreinheit (100) zugreifen können, wobei ein Parameter bestimmt wird, welcher von Zugriffen eines echtzeitfähigen Prozessorkerns (110) der Prozessoreinheit (100) auf den gemeinsamen Puffer-Speicherbereich (150) abhängt, wobei in Abhängigkeit von dem bestimmten Parameter entschieden wird, ob ein Teilbereich des gemeinsamen Puffer-Speicherbereichs (150) exklusiv dem echtzeitfähigen Prozessorkern (110) zugeordnet wird, so dass nur der echtzeitfähige Prozessorkern (110) auf diesen Teilbereich zugreifen kann, und/oder ob die Größe eines dem echtzeitfähigen Prozessorkern (110) exklusiv zugeordneten Teilbereichs des gemeinsamen Puffer-Speicherbereichs (150) verändert wird.The invention relates to a method for operating a processor unit (100), wherein the processor unit (100) has at least two processor cores (110, 120, 130, 140), wherein at least one of these processor cores (110, 120, 130, 140) is a real-time processor core and wherein the processor unit (100) has a common buffer memory area (150) accessible to all processor cores (110, 120, 130, 140) of the processor unit (100), wherein a parameter is determined which of accesses of a real-time processor core (110) of the processor unit (100) depends on the common buffer memory area (150), it being decided depending on the particular parameter, whether a portion of the common buffer memory area (150) exclusively associated with the real-time processor core (110) so that only the real-time capable processor core (110) can access this subarea and / or the size of the real-time frame processor core (110) exclusively assigned portion of the common buffer memory area (150) is changed.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben einer Prozessoreinheit, wobei die Prozessoreinheit wenigstens zwei Prozessorkerne aufweist, wobei wenigstens einer dieser Prozessorkerne ein echtzeitfähiger Prozessorkern ist, und wobei die Prozessoreinheit einen gemeinsamen Puffer-Speicherbereich aufweist, auf welchen alle Prozessorkerne der Prozessoreinheit zugreifen können.The present invention relates to a method of operating a processor unit, wherein the processor unit comprises at least two processor cores, at least one of these processor cores being a real-time processor core, and wherein the processor unit has a common buffer memory area accessible to all processor cores of the processor unit.

Stand der TechnikState of the art

Eine Multicore-Prozessoreinheit weist mehrere unterschiedliche Prozessorkerne auf. Diesen einzelnen Prozessorkernen können während des Betriebs individuell unterschiedliche Prozesse und Tasks zugewiesen sein. Die unterschiedlichen Prozesse und Tasks laufen dabei nur auf den entsprechend zugewiesenen Prozessorkernen ab.A multicore processor unit has several different processor cores. These individual processor cores can be assigned individually different processes and tasks during operation. The different processes and tasks run only on the appropriately assigned processor cores.

Derartige Multicore-Prozessoreinheiten finden immer größere Bedeutung in Echtzeitsystemen, beispielsweise in Steuerungen von Maschinen. Echtzeitsysteme zeichnen sich dadurch aus, dass ein Ergebnis einer Rechenoperation (z.B. Prozess oder Task) innerhalb eines definierten Zeitintervalls garantiert berechnet ist, also vor einer bestimmten Zeitschranke vorliegt. In einem Echtzeitsystem läuft auf dem Prozessor ein sog. Echtzeitbetriebssystem, das die unterschiedlichen Prozesse und Tasks regelt.Such multicore processor units are becoming increasingly important in real-time systems, for example in controls of machines. Real-time systems are characterized by the fact that a result of an arithmetic operation (for example, process or task) is guaranteed to be calculated within a defined time interval, that is to say present before a certain time limit. In a real-time system, a so-called real-time operating system runs on the processor, which regulates the different processes and tasks.

Offenbarung der ErfindungDisclosure of the invention

Erfindungsgemäß werden ein Verfahren zum Betreiben einer Prozessoreinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Ausführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for operating a processor unit as well as a computing unit and a computer program for its execution with the features of the independent patent claims are proposed. Advantageous embodiments are the subject of the dependent claims and the following description.

Die Prozessoreinheit ist insbesondere als eine Multicore-Prozessoreinheit ausgebildet und weist wenigstens zwei Prozessorkerne auf. Ein derartiger Prozessorkern umfasst insbesondere eine arithmetisch-logische Einheit (ALU), welche als elektronisches Rechenwerk zur Ausführung von Tasks, Programmen, Rechenbefehlen, etc. ausgebildet ist.The processor unit is designed in particular as a multicore processor unit and has at least two processor cores. Such a processor core comprises, in particular, an arithmetic logic unit (ALU), which is designed as an electronic arithmetic unit for executing tasks, programs, arithmetic instructions, etc.

Weiterhin weist ein derartiger Prozessorkern einen lokalen Puffer-Speicher bei Zugriff auf den Hauptspeicher (DRAM) auf, auf welchen nur dieser Prozessorkern zugreifen kann. Dieser lokale Puffer-Speicher kann als sog. Cache-Speicher ausgebildet sein. Beispielsweise kann dieser Cache-Speicher einen sog. L1-Cache und gegebenenfalls einen L2-Cache („Mid Level Cache“, MLC) umfassen. Der L1-Cache ist dabei insbesondere ein kleiner, aber schneller Speicher. Der L2-Cache, falls vorhanden, ist insbesondere größer als der L1-Cache, aber besitzt insbesondere eine geringere Bandbreite und schlechtere Latenzzeit als der L1-Cache.Furthermore, such a processor core has a local buffer memory for accessing the main memory (DRAM), which only this processor core can access. This local buffer memory can be designed as a so-called cache memory. For example, this cache memory can be a so-called. L1 Cache and optionally one L2 Cache ("Mid Level Cache", MLC). Of the L1 Cache is especially a small but fast memory. Of the L2 Cache, if any, is larger than that L1 Cache, but in particular has a lower bandwidth and latency than the lower L1 Cache.

Die Prozessoreinheit weist weiterhin einen gemeinsamen Puffer-Speicherbereich auf, auf welchen alle Prozessorkerne der Prozessoreinheit zugreifen können. Insbesondere ist dieser gemeinsame Puffer-Speicherbereich als sog. ‚Last Level Cache‘ (LLC) ausgebildet. Dieser LLC ist insbesondere größer als jeweils die L1- und L2-Caches der einzelnen Prozessorkerne.The processor unit also has a shared buffer memory area accessible to all processor cores of the processor unit. In particular, this shared buffer memory area is designed as a so-called, last level cache '(LLC). This LLC is in particular larger than the respective ones L1 and L2 caches of the individual processor cores.

Wenigstens einer der wenigstens zwei Prozessorkerne der Prozessoreinheit ist ein echtzeitfähiger Prozessorkern. Als echtzeitfähiger Prozessorkern sei in diesem Zusammenhang ein Prozessorkern zu verstehen, welcher Rechenoperationen (z.B. Prozesse oder Tasks) derart ausführen kann, dass eine Echtzeitbedingung erfüllt ist, insbesondere derart, dass ein Ergebnis der Rechenoperation innerhalb eines definierten Zeitintervalls garantiert berechnet ist, also vor einer bestimmten Zeitschranke vorliegt. Insbesondere wird zu diesem Zweck ein Echtzeitsystem bzw. echtzeitfähiges Betriebssystem auf dem echtzeitfähigen Prozessorkern ausgeführt, welches die unterschiedlichen Prozesse und Tasks regelt.At least one of the at least two processor cores of the processor unit is a real-time processor core. A real-time-capable processor core in this context is a processor core which can perform arithmetic operations (eg processes or tasks) in such a way that a real-time condition is met, in particular such that a result of the arithmetic operation is calculated within a defined time interval, ie before a certain one Time limit exists. In particular, a real-time system or real-time-capable operating system is executed on the real-time-capable processor core for this purpose, which regulates the different processes and tasks.

Im Rahmen des Verfahrens wird ein Parameter bestimmt, welcher von Zugriffen eines echtzeitfähigen Prozessorkerns der Prozessoreinheit auf den gemeinsamen Puffer-Speicherbereich, also auf den LLC, abhängt. In Abhängigkeit von dem bestimmten Parameter wird entschieden, ob ein Teilbereich des gemeinsamen Puffer-Speicherbereichs exklusiv dem echtzeitfähigen Prozessorkern zugeordnet wird, so dass nur der echtzeitfähige Prozessorkern auf diesen Teilbereich zugreifen kann, und/oder ob die Größe eines dem echtzeitfähigen Prozessorkern exklusiv zugeordneten Teilbereichs des gemeinsamen Puffer-Speicherbereichs verändert wird. Insbesondere wird diese Zuordnung des Teilbereichs im Zuge einer Cache-Allozierung durchgeführt, wovon eine Ausprägung beispielsweise unter dem Begriff ‚Cache Allocation Technology‘ (CAT) bekannt ist. Die zugeordnete Größe kann insbesondere zwischen 0% und 100% des gemeinsamen Puffer-Speicherbereichs betragen und insbesondere im Rahmen des Verfahrens variabel vorgebbar sein.As part of the method, a parameter is determined which depends on accesses of a real-time processor core of the processor unit to the common buffer memory area, that is, on the LLC. Depending on the particular parameter, it is decided whether a portion of the common buffer memory area is exclusively allocated to the real-time capable processor core so that only the real-time processor core can access that portion and / or the size of a portion of the portion of the real-time capable processor core common buffer memory area is changed. In particular, this allocation of the subarea is carried out in the course of a cache allocation, an expression of which is known, for example, under the term "cache allocation technology" (CAT). The assigned variable may in particular amount to between 0% and 100% of the common buffer memory area and in particular may be variably predefinable within the scope of the method.

Vorteilhafterweise wird der dem echtzeitfähigen Prozessorkern exklusiv zugeordnete Teilbereich des gemeinsamen Puffer-Speicherbereichs vergrößert, wenn der Parameter einen ersten Schwellwert erreicht, und/oder verkleinert, wenn der Parameter einen zweiten Schwellwert erreicht. Dabei stellt zweckmäßigerweise einer der beiden Schwellwerte einen oberen Schwellwert und der andere einen unteren Schwellwert dar, zwischen denen der Parameter gewünschtenfalls liegen soll. Die jeweilige Zuordnung erster/zweiter und oberer/unterer Schwellwert hängt dann vom konkret gewählten Parameter ab.Advantageously, the portion of the common buffer memory area exclusively assigned to the real-time-capable processor core is increased when the parameter reaches a first threshold value and / or reduced when the parameter reaches a second threshold value. In this case, expediently one of the two threshold values represents an upper threshold value and the other a lower threshold value, between which the parameter if desired, should be. The respective assignment first / second and upper / lower threshold then depends on the specific selected parameter.

Wenn der Prozessorkern mehrere echtzeitfähige Prozessorkerne aufweist, kann insbesondere für jeden dieser echtzeitfähigen Prozessorkerne ein derartiger Parameter bestimmt und eine derartige Überprüfung bzw. Zuordnung durchgeführt werden.If the processor core has a plurality of real-time-capable processor cores, such a parameter can be determined in particular for each of these real-time-capable processor cores and such a check or assignment can be carried out.

Insbesondere erlaubt der bestimmte Parameter Rückschlüsse darauf, ob von dem echtzeitfähigen Prozessorkern Rechenoperationen, im Zuge derer dieser echtzeitfähige Prozessorkern auf den gemeinsamen Puffer-Speicherbereich zugreift, wie gewünscht bzw. gemäß vorgegebenen Kriterien ausgeführt werden können. Zweckmäßigerweise gibt der Parameter Auskunft darüber, ob der echtzeitfähige Prozessorkern über ausreichend viel Cache-Speicher verfügt, um auszuführende Rechenoperationen wie gewünscht auszuführen. Wenn dies nicht der Fall ist, wird ein Teilbereich exklusiv für den echtzeitfähigen Prozessorkern reserviert, so dass insbesondere keiner der übrigen Prozessorkerne der Prozessoreinheit auf diesen Teilbereich zugreifen kann und so der echtzeitfähige Prozessorkern diesen Teilbereich zweckmäßigerweise nutzen kann, bzw. wird der exklusiv für den echtzeitfähigen Prozessorkern reservierte Teilbereich vergrößert, um die entsprechenden Rechenoperationen wie gewünscht gemäß den jeweiligen vorgegebenen Kriterien auszuführen. Die Größe des Teilbereichs kann beispielsweise in Abhängigkeit von den auszuführenden Rechenoperationen gewählt werden. Vorzugsweise kann ein zugeordneter Teilbereich in Abhängigkeit von dem bestimmten Parameter auch wieder verkleinert werden. Dabei wird ein Teil des Teilbereich wieder für alle Prozessorkerne freigegeben wird, so dass er wieder allen Prozessorkernen zur Verfügung steht.In particular, the particular parameter allows conclusions to be drawn as to whether the real-time-capable processor core can execute arithmetic operations in the course of which this real-time-capable processor core accesses the common buffer memory area as desired or according to predefined criteria. Conveniently, the parameter provides information as to whether the real-time capable processor core has enough cache memory to perform arithmetic operations as desired. If this is not the case, a subarea is reserved exclusively for the real-time capable processor core, so that in particular none of the remaining processor cores of the processor unit can access this subarea and thus the real-time processor core can use this subarea expediently, or becomes exclusive for the real-time capable Processor core reserved area enlarged to perform the corresponding arithmetic operations as desired according to the respective predetermined criteria. The size of the subarea can be selected, for example, depending on the arithmetic operations to be performed. Preferably, an assigned subarea can also be reduced again depending on the specific parameter. In this case, a part of the sub-area is released again for all processor cores, so that it is again available to all processor cores.

Nachdem der Teilbereich dem echtzeitfähigen Prozessorkern exklusiv zugeteilt wurde, kann zweckmäßigerweise in Abhängigkeit von dem bestimmten Parameter entschieden werden, ob der Teilbereich wieder ganz für alle Prozessorkerne freigegeben wird, so dass wieder alle Prozessorkerne auf den Teilbereich zugreifen können.After the subregion has been allocated exclusively to the real-time-capable processor core, it can be expediently decided, depending on the specific parameter, whether the subregion is again completely released for all processor cores, so that all processor cores can again access the subregion.

Durch das Verfahren können Teile des gemeinsamen Puffer-Speicherbereichs dynamisch während der Laufzeit der Prozessoreinheit allokiert und flexibel echtzeitfähigen Prozessorkernen zugeteilt werden. Insbesondere ist dabei keine feste, statische Zuteilung von speziellen Teilen des gemeinsamen Puffer-Speicherbereichs für spezielle Prozessorkerne a priori nötig, also bevor die Prozessoreinheit in Betrieb genommen wird. Durch das Verfahren wird insbesondere eine flexible Verteilung von Teilen des Puffer-Speicherbereichs „on demand“ ermöglicht, zweckmäßigerweise in Abhängigkeit von aktuellen Gegebenheiten und von aktuell auszuführenden Rechenoperationen, also insbesondere abhängig von der aktuellen Last der Prozessoreinheit oder von Cache-Zugriffsgrößen, wie z.B. einer Trefferrate (engl. hit rate) oder einer Verfehlensrate (engl. miss rate).The method allows parts of the common buffer memory area to be allocated dynamically during runtime of the processor unit and flexibly allocated to real-time capable processor cores. In particular, no fixed, static allocation of special parts of the common buffer memory area for special processor cores is necessary a priori, ie before the processor unit is put into operation. In particular, the method enables a flexible distribution of parts of the buffer memory area "on demand", expediently as a function of current circumstances and of currently executing arithmetic operations, that is to say in particular depending on the current load of the processor unit or of cache access variables, such as e.g. a hit rate or a miss rate.

Insbesondere kann durch das Verfahren eine Echtzeitreaktion (Worst Case Execution Time, WCET) verbessert werden. Dadurch ist insbesondere eine kürzere Zykluszeit, also zweckmäßigerweise eine höhere Regel-Qualität durch kürzere Regelzeit möglich, oder eine höhere Achsanzahl, z.B. eine Konsolidierung einer zweiten Steuerung.In particular, the method can be used to improve a real-time reaction (Worst Case Execution Time, WCET). As a result, in particular a shorter cycle time, thus expediently a higher control quality by shorter control time is possible, or a higher number of axles, e.g. a consolidation of a second controller.

Insbesondere kann durch das Verfahren eine optimale Zuordnung von Teilbereichen des gemeinsamen Puffer-Speicherbereichs ermöglicht werden, zweckmäßigerweise derart, dass so viel des gemeinsamen Puffer-Speicherbereichs wie nötig einzelnen echtzeitfähigen Prozessorkernen zugeteilt wird und gleichzeitig so wenig wie möglich. Insbesondere kann ein Minimalwert und/oder Maximalwert vorgegeben und/oder extern vorgebbar sein, welcher einen minimalen bzw. maximalen Teil des Puffer-Speicherbereichs vorgibt, welcher für die Zuordnung zu einzelnen echtzeitfähigen Prozessorkernen genutzt werden darf.In particular, the method allows an optimal allocation of partial areas of the common buffer memory area, expediently such that as much of the common buffer memory area as necessary is allocated to individual real-time-capable processor cores and at the same time as little as possible. In particular, a minimum value and / or maximum value can be predefined and / or externally predefined, which specifies a minimum or maximum part of the buffer memory area which may be used for the assignment to individual real-time-capable processor cores.

Zweckmäßigerweise kann eine Visualisierung des Verfahrens vorgesehen sein, insbesondere indem Informationen über eine Mensch-Maschinen-Schnittstelle ausgegeben werden, beispielsweise über eine graphische Benutzeroberfläche. Insbesondere können dabei allgemeine Informationen über die Aufteilung des gemeinsamen Puffer-Speicherbereichs ausgegeben werden oder auch spezielle Informationen betreffend der Zuordnung des Teilbereichs zu dem echtzeitfähigen Prozessorkern. Beispielsweise kann auch der bestimmte Parameter ausgegeben werden. Zweckmäßigerweise kann über die Mensch-Maschinen-Schnittstelle auch eine Eingabe eines Benutzers erfolgen. Beispielsweise können der Minimalwert und/oder Maximalwert für die Zuordnung von Teilbereichen zu einzelnen echtzeitfähigen Prozessorkernen eingegeben werden.Expediently, a visualization of the method can be provided, in particular by outputting information via a human-machine interface, for example via a graphical user interface. In particular, general information about the division of the common buffer memory area can be output or also special information concerning the allocation of the partial area to the real-time capable processor core. For example, the specific parameter can also be output. Appropriately, via the human-machine interface, an input of a user can be made. For example, the minimum value and / or maximum value for the assignment of partial areas to individual real-time-capable processor cores can be entered.

Vorteilhafterweise hängt der Parameter von in Echtzeit durchzuführenden Rechenoperationen des echtzeitfähigen Prozessorkerns ab, im Zuge derer der echtzeitfähige Prozessorkern auf den gemeinsamen Puffer-Speicherbereich zugreift. Alternativ oder zusätzlich hängt der der Parameter vorzugsweise von einer Echtzeitbedingung ab, gemäß welcher in Echtzeit durchzuführende Rechenoperationen von dem echtzeitfähigen Prozessorkern auszuführen sind. Zweckmäßigerweise erlaubt der Parameter somit Rückschlüsse darüber, ob der echtzeitfähige Prozessorkern über ausreichend Ressourcen verfügt bzw. auf ausreichend viel Teile des gemeinsamen Puffer-Speicherbereichs zugreifen kann, um die vorgegebene Echtzeitbedingung zu erfüllen bzw. um die entsprechenden Rechenoperationen gemäß dieser Echtzeitbedingung auszuführen. Wenn dies nicht der Fall ist, wird zweckmäßigerweise entschieden, dem echtzeitfähigen Prozessorkern einen Teilbereich zuzuordnen bzw. den dem echtzeitfähigen Prozessorkern zugeordneten Teilbereich zu vergrößern. Insbesondere kann durch das Verfahren die Echtzeitfähigkeit der Prozessoreinheit verbessert bzw. gewährleistet werden.Advantageously, the parameter depends on real-time arithmetic operations of the real-time processor core, in the course of which the real-time capable processor core accesses the common buffer memory area. Alternatively or additionally, the parameter preferably depends on a real-time condition according to which arithmetic operations to be performed in real time are to be performed by the real-time capable processor core. Conveniently, the parameter thus allows conclusions about whether the real-time capable processor core has sufficient resources or sufficient parts of the common buffer memory area to meet the predetermined real-time condition or to perform the corresponding arithmetic operations according to this real-time condition. If this is not the case, it is expediently decided to allocate a partial area to the real-time-capable processor core or to increase the partial area assigned to the real-time-capable processor core. In particular, the method can improve or ensure the real-time capability of the processor unit.

Vorzugsweise hängt der Parameter von einer maximalen Ausführungszeit (Worst Case Execution Time, WCET) des echtzeitfähigen Prozessorkerns ab. Insbesondere kann diese maximale Ausführungszeit als Echtzeitbedingung für den echtzeitfähigen Prozessorkern vorgegeben sein. Alternativ oder zusätzlich kann der Parameter von einer aktuellen Ausführungszeit des echtzeitfähigen Prozessorkerns abhängen. Insbesondere beschreibt der Parameter, ob der echtzeitfähige Prozessorkern die vorgegebene Ausführungszeit einhalten kann. Beispielsweise kann eine Differenz der maximalen Ausführungszeit und der aktuellen Ausführungszeit als Parameter bestimmt werden. Wenn diese Differenz einen Schwellwert erreicht, wird zweckmäßigerweise entschieden, dem echtzeitfähigen Prozessorkern den Teilbereich zuzuordnen. Mit Hilfe des zugeordneten Teilbereichs kann der echtzeitfähige Prozessorkern Rechenoperationen insbesondere derart ausführen, dass die maximale Ausführungszeit nicht überschritten wird.Preferably, the parameter depends on a maximum execution time (Worst Case Execution Time, WCET) of the real-time capable processor core. In particular, this maximum execution time can be specified as a real-time condition for the real-time-capable processor core. Alternatively or additionally, the parameter may depend on a current execution time of the real time processor core. In particular, the parameter describes whether the real-time capable processor core can meet the given execution time. For example, a difference between the maximum execution time and the current execution time can be determined as a parameter. If this difference reaches a threshold value, it is expediently decided to assign the partial area to the real-time-capable processor core. With the help of the assigned subregion, the real-time-capable processor core can perform arithmetic operations in particular such that the maximum execution time is not exceeded.

Vorzugsweise hängt der Parameter von einer Anzahl von Cache-Verfehlungen (Cache Misses) ab. Als ein Cache Miss ist in diesem Zusammenhang zu verstehen, dass von dem echtzeitfähigen Prozessorkern eine Anfrage nach speziellen Daten an den gemeinsamen Puffer-Speicherbereich gestellt wird und dass diese speziellen Daten in dem gemeinsamen Puffer-Speicherbereich nicht vorrätig sind. Beispielsweise kann als Parameter die Anzahl von Cache Misses selbst bestimmt werden oder insbesondere eine Verfehlensrate (sog. Cache Miss Rate), welche insbesondere ein Quotient aus der Anzahl von Cache Misses und einer Anzahl von gesamten Anfragen des echtzeitfähigen Prozessorkerns an den gemeinsamen Puffer-Speicherbereich nach speziellen Daten ist. Im obigen Ausführungsbeispiel wäre in diesem Fall der erste Schwellwert ein oberer Schwellwert, bei dessen Erreichen oder Überschreiten dem echtzeitfähigen Prozessorkern - je nach Ausführungsform - ein Teilbereich zugeordnet bzw. ein zugeordneter Teilbereich vergrößert wird, und der zweite Schwellwert ein unterer Schwellwert, bei dessen Erreichen oder Unterschreiten - je nach Ausführungsform - dem echtzeitfähigen Prozessorkern der Teilbereich entzogen bzw. ein zugeordneter Teilbereich verkleinert wird.Preferably, the parameter depends on a number of cache misses. As a cache miss, it is to be understood in this context that a request for specific data is made to the shared buffer memory area by the real-time capable processor core and that this special data is not available in the common buffer memory area. For example, the number of cache misses themselves can be determined as a parameter or, in particular, a cache miss rate, which in particular is a quotient of the number of cache misses and a number of total requests of the real-time processor core to the common buffer memory area special data is. In the above embodiment, in this case, the first threshold value would be an upper threshold value at which reaching or exceeding the real-time processor core - depending on the embodiment - assigned a partial area or an associated portion is increased, and the second threshold value, a lower threshold, when it reaches or Depending on the embodiment, the partial area is removed from the real-time-capable processor core, or an assigned partial area is reduced.

Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät einer Druckmaschine, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen. Das Verfahren eignet sich besonders für Multicore-Prozessoreinheiten, welche in Steuerungen verwendet werden, beispielsweise in CNC-Steuerungen (Computerized Numerical Control), NC-Steuerungen (Numerical Control), Speicherprogrammierbaren Steuerungen (SPS) und/oder Motion-Logic-Steuerungen (MC - Motion Control). Das Verfahren eignet sich für eine weite Bandbreite von Applikationen, beispielsweise für Tunnelbohrmaschinen, Hydraulik-Stanzen/Pressen, allgemeine Automatisierungen, Semiconductor-Handling, Robotik usw. Besonders eignet sich das Verfahren für Steuerungen von Maschinen. Eine derartige Maschine kann insbesondere als eine Werkzeugmaschine, wie beispielsweise ein Schweißsystem, ein Schraubsystem, eine Drahtsäge oder eine Fräsmaschine, oder als eine Bahnbearbeitungsmaschine, wie z.B. eine Druckmaschine, eine Zeitungsdruckmaschine, eine Tiefdruck-, Siebdruckmaschine, eine Inline-Flexodruckmaschine oder eine Verpackungsmaschine ausgebildet sein. Eine derartige Maschine kann auch als eine (Band-) Anlage zur Herstellung eines Automobils oder zur Herstellung von Komponenten eines Automobils (z.B. Verbrennungsmotoren oder Steuergeräte) ausgebildet sein.An arithmetic unit according to the invention, e.g. a control unit of a printing press, is, in particular programmatically, adapted to perform a method according to the invention. The method is particularly suitable for multicore processor units used in controllers, for example in computerized numerical control (CNC), numerical control (NC), programmable logic controller (PLC) and / or motion logic controllers (MC - Motion Control). The process is suitable for a wide range of applications such as tunnel boring machines, hydraulic punching / pressing, general automation, semiconductor handling, robotics, etc. The process is particularly suitable for machine control. Such a machine may be used, in particular, as a machine tool, such as a welding system, a screw system, a wire saw, or a milling machine, or as a web processing machine, such as a machine tool. a printing press, a newspaper printing press, a gravure printing, screen printing machine, an inline flexographic printing machine or a packaging machine may be formed. Such a machine may also be designed as a (belt) plant for the manufacture of an automobile or for the manufacture of components of an automobile (for example internal combustion engines or control devices).

Auch die Implementierung des Verfahrens in Form eines Computerprogramms ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.Also, the implementation of the method in the form of a computer program is advantageous because this causes very low costs, especially if an executive controller is still used for other tasks and therefore already exists. Suitable data carriers for providing the computer program are in particular magnetic, optical and electrical memories, such as e.g. Hard drives, flash memory, EEPROMs, DVDs, etc. It is also possible to download a program via computer networks (Internet, intranet, etc.).

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and embodiments of the invention will become apparent from the description and the accompanying drawings.

Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.It is understood that the features mentioned above and those yet to be explained below can be used not only in the particular combination indicated, but also in other combinations or in isolation, without departing from the scope of the present invention.

Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.The invention is illustrated schematically by means of exemplary embodiments in the drawing and will be described in detail below with reference to the drawing.

Figurenliste list of figures

  • 1 zeigt schematisch eine bevorzugte Ausgestaltung einer Prozessoreinheit, die dazu eingerichtet ist, gemäß einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens betrieben zu werden. 1 schematically shows a preferred embodiment of a processor unit, which is adapted to be operated according to a preferred embodiment of a method according to the invention.
  • 2 zeigt schematisch eine Maschine mit einer Prozessoreinheit, die dazu eingerichtet ist, gemäß einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens betrieben zu werden. 2 schematically shows a machine with a processor unit, which is adapted to be operated according to a preferred embodiment of a method according to the invention.
  • 3 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm. 3 schematically shows a preferred embodiment of a method according to the invention as a block diagram.

Detaillierte Beschreibung der ZeichnungDetailed description of the drawing

In 1 ist eine Prozessoreinheit schematisch dargestellt und mit 100 bezeichnet, welche als eine Multicore-Prozessoreinheit mit vier Prozessorkernen 110, 120, 130 und 140 ausgebildet ist.In 1 is a processor unit shown schematically and with 100 designated as a multicore processor unit with four processor cores 110 . 120 . 130 and 140 is trained.

Jeder dieser vier Prozessorkerne 110, 120, 130 und 140 weist jeweils eine arithmetisch-logische Einheit (ALU) 111, 121, 131, 141 auf sowie jeweils einen L1-Cache-Speicher 112, 122, 132, 142 und jeweils einen L2-Cache-Speicher 113, 123, 133, 143. Diese L1- und L2-Cache-Speicher stellen lokale Puffer-Speicherbereiche dar, auf welche nur der jeweilige Prozessorkern zugreifen kann.Each of these four processor cores 110 . 120 . 130 and 140 each has an arithmetic logic unit (ALU) 111 . 121 . 131 . 141 on and one each L1 Cache memory 112 . 122 . 132 . 142 and one each L2 Cache memory 113 . 123 . 133 . 143 , These L1 - and L2 Cache memories represent local buffer storage areas that only the respective processor core can access.

Die Prozessoreinheit 100 weist weiterhin einen gemeinsamen Puffer-Speicherbereich 150 auf, auf welchen alle Prozessorkerne 110, 120, 130 und 140 zugreifen können. Dieser gemeinsamen Puffer-Speicherbereich 150 ist als ‚Last Level Cache‘ (LLC) ausgebildet.The processor unit 100 also has a common buffer memory area 150 on which all processor cores 110 . 120 . 130 and 140 can access. This shared buffer memory area 150 is designed as a Last Level Cache (LLC).

Weiterhin weist die Prozessoreinheit 100 einen Hauptspeicher 160 auf, beispielsweise einen DRAM (Dynamic Random Access Memory), welcher um ein Vielfaches größer ist als der LLC 150.Furthermore, the processor unit 100 a main memory 160 on, for example, a DRAM (Dynamic Random Access Memory), which is many times larger than the LLC 150 ,

Die vier Prozessorkerne 110, 120, 130 und 140 sind in diesem Beispiel jeweils als echtzeitfähige Prozessorkerne ausgebildet, welche jeweils Rechenoperationen (z.B. Prozesse oder Tasks) derart ausführen können, dass eine Echtzeitbedingung erfüllt ist und ein Ergebnis vor Ablauf einer maximalen Ausführungszeit (Worst Case Execution Time, WCET) vorliegt.The four processor cores 110 . 120 . 130 and 140 In this example, each of them is embodied as real-time-capable processor cores, which in each case can perform arithmetic operations (eg processes or tasks) in such a way that a real-time condition is fulfilled and a result is available before the expiration of a maximum execution time (WCET).

Die Prozessoreinheit 100 kann besonders bevorzugt in einer Steuereinheit bzw. Steuerung verwendet werden, wie es in 2 dargestellt ist. 2 zeigt dabei schematisch eine Maschine 200, beispielsweise eine Bahnbearbeitungsmaschine zum Herstellen von Werkstücken.The processor unit 100 can be particularly preferably used in a control unit or control, as in 2 is shown. 2 shows schematically a machine 200 For example, a web processing machine for producing workpieces.

Zum Steuern dieser Maschine 200 ist eine speicherprogrammierbare Steuerung (SPS) 210 vorgesehen, welche eine Multicore-Prozessoreinheit 100 aufweist, analog zu der in 1 dargestellten Prozessoreinheit 100.To control this machine 200 is a programmable logic controller (PLC) 210 which is a multicore processor unit 100 has, analogous to in 1 represented processor unit 100 ,

Die SPS 210 weist weiterhin eine Mensch-Maschinen-Schnittstelle 211 auf, welche beispielsweise als ein Touchscreen Display ausgebildet sein kann. Über diese Schnittstelle 211 können einem Benutzer Informationen ausgegeben werden und der Benutzer kann Eingaben vornehmen.The PLC 210 also has a human-machine interface 211 on, which may be formed, for example, as a touchscreen display. About this interface 211 Information can be output to a user and the user can make inputs.

Die SPS 210 ist dazu eingerichtet, Komponenten 220 der Maschine 200 anzusteuern, beispielsweise Motoren zum Antreiben eines Förderbandes und robotergeführte Werkzeuge zum Bearbeiten von auf dem Förderband transportierten Werkstücken.The PLC 210 is set up to components 220 the machine 200 To control, for example, motors for driving a conveyor belt and robot-guided tools for processing transported on the conveyor belt workpieces.

Für ein koordiniertes Ansteuern dieser einzelnen Maschinenkomponenten 220 und um eine präzise Bearbeitung der Werkstücke zu ermöglichen, werden entsprechende Rechenoperationen in den Prozessorkernen 110, 120, 130 und 140 der Prozessoreinheit 100 in Echtzeit ausgeführt, also derart, dass die Echtzeitbedingung erfüllt ist.For coordinated activation of these individual machine components 220 and to allow precise machining of the workpieces, corresponding arithmetic operations in the processor cores 110 . 120 . 130 and 140 the processor unit 100 executed in real time, so that the real-time condition is met.

Die Prozessoreinheit 100 ist dabei, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens auszuführen, welche in 3 schematisch als ein Blockdiaramm dargestellt ist.The processor unit 100 In this case, in particular in terms of programming technology, it is set up to carry out a preferred embodiment of a method according to the invention, which in 3 is shown schematically as a Blockdiaramm.

Im Folgenden wird rein beispielhaft der Fall betrachtet, dass von dem Prozessorkern 110 echtzeitfähige Rechenoperationen ausgeführt werden, im Zuge derer z.B. Ansteuerbefehle zum Bewegen eines robotergeführten Werkzeugs der Maschine 200 erstellt werden.The following is an example of the case considered by the processor core 110 Real-time-capable arithmetic operations are carried out in the course of which, for example, control commands for moving a robot-controlled tool of the machine 200 to be created.

Im Zuge dieser echtzeitfähigen Rechenoperationen führt der Prozessorkern 110 Zugriffe auf den gemeinsamen Puffer-Speicherbereich 150 der Prozessoreinheit 100, also auf den LLC, durch. Im Rahmen des Verfahrens wird dabei in Schritt 301 ein Parameter bestimmt, welcher von derartigen Zugriffen des Prozessorkerns 110 auf den gemeinsamen Puffer-Speicherbereich 150 abhängt.In the course of these real-time computations the processor core leads 110 Accesses to the shared buffer memory area 150 the processor unit 100 So, on the LLC, through. As part of the process is in step 301 a parameter determines which of such processor core accesses 110 to the common buffer memory area 150 depends.

Beispielsweise wird dabei in Schritt 301 eine Cache-Verfehlensrate (‚Cache Miss Rate‘) als dieser Parameter bestimmt. Als diese Cache-Verfehlensrate wird insbesondere ein Quotient aus einer Anzahl von Cache-Verfehlungen (‚Cache Misses‘) und einer Anzahl von Anfragen des Prozessorkerns 110 an den gemeinsamen Puffer-Speicherbereich 150 nach speziellen Daten bestimmt. Ein Cash Miss bezeichnet dabei eine Anfrage des Prozessorkerns 110 nach speziellen Daten an den gemeinsamen Puffer-Speicherbereich 150, wobei diese speziellen Daten in dem gemeinsamen Puffer-Speicherbereich 150 nicht vorrätig sind.For example, it will be in step 301 determines a cache miss rate as this parameter. Specifically, this cache miss rate becomes a quotient of a number of cache misses and a number of processor core requests 110 to the common buffer memory area 150 determined according to specific data. A cash miss refers to a request of the processor core 110 after special data to the common buffer memory area 150 where this special data is in the common buffer memory area 150 not in stock.

Wenn diese ‚Cache Miss Rate‘ zu hoch ist, besteht die Gefahr, dass der Prozessorkern 110 die echtzeitfähigen Rechenoperationen nicht gemäß der Echtzeitbedingung ausführen kann und ein Ergebnis nicht innerhalb der maximalen Ausführungszeit liefern kann. In Abhängigkeit von der ‚Cache Miss Rate‘ wird daher entschieden, ob ein Teilbereich des gemeinsamen Puffer-Speicherbereichs 150 exklusiv dem Prozessorkern 110 zugeordnet wird. Diese Zuordnung eines Teilbereichs wird beispielsweise im Zuge einer sog. Cache Allocation Technology (CAT) durchgeführt.If this, cache miss rate 'is too high, there is a risk that the processor core 110 the real-time computational operations can not execute according to the real-time condition and can not deliver a result within the maximum execution time. Therefore, depending on the 'cache miss rate', it is decided whether a portion of the shared buffer memory area 150 exclusive to the processor core 110 is assigned. This assignment of a subarea is carried out, for example, in the course of a so-called Cache Allocation Technology (CAT).

Zu diesem Zweck wird in Schritt 302 überprüft, ob der in Schritt 301 bestimmte Parameter, also die ‚Cache Miss Rate‘, einen Schwellwert erreicht, insbesondere ob die ‚Cache Miss Rate‘ einen Maximalwert von beispielsweise 45% überschreitet.For this purpose, in step 302 Check if the in step 301 certain parameters, ie, the cache miss rate, reaches a threshold, in particular whether the 'cache miss rate' exceeds a maximum value of, for example, 45%.

Wenn dies der Fall ist, wird in Schritt 303 entschieden, dem Prozessorkern 110 einen Teilbereich des gemeinsamen Puffer-Speicherbereichs 150 exklusiv zuzuordnen. Dabei wird insbesondere ebenfalls die Größe dieses Teilbereichs bestimmt. Diese Größe des Teilbereichs wird insbesondere in Abhängigkeit von einem Minimalwert und einem Maximalwert gewählt, welche von einem Benutzer über die Schnittstelle 211 eingegeben werden können. Dieser Minimal- bzw. Maximalwert geben dabei einen minimalen bzw. maximalen Teil des Puffer-Speicherbereichs 150 vor, welcher für die Zuordnung zu dem Prozessorkern 110 genutzt werden darf.If this is the case, in step 303 decided, the processor core 110 a subregion of the shared buffer memory area 150 exclusively assign. In particular, the size of this subarea is also determined. This size of the subarea is chosen in particular as a function of a minimum value and a maximum value which are output by a user via the interface 211 can be entered. This minimum or maximum value thereby give a minimum or maximum part of the buffer memory area 150 which is for assignment to the processor core 110 may be used.

Nach dieser Zuordnung kann in Schritt 304 nur der Prozessorkern 110 auf diesen Teilbereich zugreifen und keiner der übrigen Prozessorkerne 120, 130, 140. Somit kann insbesondere gewährleistet werden, dass die Echtzeitbedingung von dem Prozessorkern 110 eingehalten wird. Beispielsweise kann die Zuordnung dem Benutzer über die Schnittstelle 211 angezeigt werden.After this assignment can in step 304 only the processor core 110 access this subarea and none of the remaining processor cores 120 . 130 . 140 , Thus, in particular, it can be ensured that the real-time condition of the processor core 110 is complied with. For example, the assignment may be to the user via the interface 211 are displayed.

Insbesondere wird in Schritt 304 weiterhin die ‚Cache Miss Rate‘ als Parameter bestimmt und in Schritt 305 wird entschieden, ob die Größe des dem Prozessorkern 110 zugeordneten Teilbereichs des gemeinsamen Puffer-Speicherbereichs 150 verändert wird.In particular, in step 304 Continue to set the 'Cache Miss Rate' as a parameter and in step 305 it is decided if the size of the processor core 110 associated portion of the common buffer memory area 150 is changed.

Zu diesem Zweck wird in Schritt 305 überwacht, ob die in Schritt 304 bestimmte ‚Cache Miss Rate‘ weiter ansteigt oder sinkt. Wenn die ‚Cache Miss Rate‘ weiter ansteigt und einen zweiten Schwellwert von beispielsweise 50% überschreitet, wird der dem Prozessorkern 110 zugeordnete Teilbereich in Schritt 306 vergrößert, beispielsweise auf den vorgegebenen Maximalwert. Sinkt die ‚Cache Miss Rate‘ hingegen und unterschreitet einen dritten Schwellwert von z.B. 40%, wird der dem Prozessorkern 110 zugeordnete Teilbereich in Schritt 306 verkleinert, beispielsweise auf den vorgegebenen Minimalwert.For this purpose, in step 305 monitors if the in step 304 certain 'cache miss rate' continues to increase or decrease. If the cache miss rate continues to increase and exceeds a second threshold of, for example, 50%, the processor core becomes 110 associated subarea in step 306 increased, for example, to the predetermined maximum value. On the other hand, if the 'Cache Miss Rate' drops and falls below a third threshold of eg 40%, it will become the processor core 110 associated subarea in step 306 reduced, for example, to the predetermined minimum value.

Es kann beispielsweise auch ein weiterer Schwellwert von z.B. 35% vorgegeben sein, bei dessen Unterschreitung der Puffer-Speicherbereich 150 wieder komplett freigegeben wird. Wenn die ‚Cache Miss Rate‘ in Schritt 305 unter diesen vierten Schwellwert fällt, wird der dem Prozessorkern 110 zugeordnete Teilbereich in Schritt 306 freigegeben, so dass wieder alle Prozessorkerne 110, 120, 130, 140 auf den Teilbereich zugreifen können.By way of example, it is also possible to specify a further threshold value of, for example, 35%, when it falls below the buffer memory area 150 is completely released again. If the 'Cache Miss Rate' in step 305 falls below this fourth threshold, the processor core 110 associated subarea in step 306 released, so again all processor cores 110 . 120 . 130 . 140 to access the subarea.

Claims (10)

Verfahren zum Betreiben einer Prozessoreinheit (100), wobei die Prozessoreinheit (100) wenigstens zwei Prozessorkerne (110, 120, 130, 140) aufweist, wobei wenigstens einer dieser Prozessorkerne (110, 120, 130, 140) ein echtzeitfähiger Prozessorkern ist, und wobei die Prozessoreinheit (100) einen gemeinsamen Puffer-Speicherbereich (150) aufweist, auf welchen alle Prozessorkerne (110, 120, 130, 140) der Prozessoreinheit (100) zugreifen können, wobei ein Parameter bestimmt wird (301, 304), welcher von Zugriffen eines echtzeitfähigen Prozessorkerns (110) der Prozessoreinheit (100) auf den gemeinsamen Puffer-Speicherbereich (150) abhängt, wobei in Abhängigkeit von dem bestimmten Parameter entschieden wird (302, 305), ob ein Teilbereich des gemeinsamen Puffer-Speicherbereichs (150) exklusiv dem echtzeitfähigen Prozessorkern (110) zugeordnet wird, so dass nur der echtzeitfähige Prozessorkern (110) auf diesen Teilbereich zugreifen kann (303), und/oder ob die Größe eines dem echtzeitfähigen Prozessorkern (110) exklusiv zugeordneten Teilbereichs des gemeinsamen Puffer-Speicherbereichs (150) verändert wird (306).A method of operating a processor unit (100), wherein the processor unit (100) comprises at least two processor cores (110, 120, 130, 140), wherein at least one of these processor cores (110, 120, 130, 140) is a real-time processor core, and wherein the processor unit (100) has a shared buffer memory area (150) accessible to all processor cores (110, 120, 130, 140) of the processor unit (100), wherein a parameter is determined (301, 304) which of accesses a real-time-capable processor core (110) of the processor unit (100) depends on the common buffer memory area (150), it being decided depending on the particular parameter (302, 305), whether a portion of the common buffer memory area (150) exclusively real-time-capable processor core (110) is assigned, so that only the real-time processor core (110) can access this sub-area (303), and / or if the size of the real-time f ELIGIBLE processor core (110) exclusively associated partial area of the common buffer memory area (150) is changed (306). Verfahren nach Anspruch 1, wobei der dem echtzeitfähigen Prozessorkern (110) exklusiv zugeordnete Teilbereich des gemeinsamen Puffer-Speicherbereichs (150) vergrößert wird, wenn der Parameter einen ersten Schwellwert erreicht, und/oder verkleinert wird, wenn der Parameter einen zweiten Schwellwert erreicht.Method according to Claim 1 wherein the portion of the common buffer memory area (150) exclusively assigned to the real-time capable processor core (110) is increased when the parameter reaches a first threshold value and / or reduced when the parameter reaches a second threshold value. Verfahren nach Anspruch 1 oder 2, wobei der Parameter von in Echtzeit durchzuführenden Rechenoperationen des echtzeitfähigen Prozessorkerns (110) abhängt, im Zuge derer der echtzeitfähige Prozessorkern (110) auf den gemeinsamen Puffer-Speicherbereich (150) zugreift, und/oder von einer Echtzeitbedingung, gemäß welcher in Echtzeit durchzuführende Rechenoperationen von dem echtzeitfähigen Prozessorkerns (110) auszuführen sind.Method according to Claim 1 or 2 wherein the parameter depends on real-time arithmetic operations of the real time processor core (110) during which the real-time processor core (110) accesses the common buffer memory area (150), and / or a real-time condition according to which arithmetic operations to be performed in real time from the real-time processor core (110). Verfahren nach einem der vorstehenden Ansprüche, wobei der Parameter von einer maximalen Ausführungszeit des echtzeitfähigen Prozessorkerns (110) abhängt. The method of any one of the preceding claims, wherein the parameter depends on a maximum execution time of the real time processor core (110). Verfahren nach einem der vorstehenden Ansprüche, wobei der gemeinsame Puffer-Speicherbereich (150) ein Cache-Speicher der Prozessoreinheit ist (100), insbesondere ein Last-Level-Cache.Method according to one of the preceding claims, wherein the shared buffer memory area (150) is a cache memory of the processor unit (100), in particular a load-level cache. Verfahren nach Anspruch 5, wobei der Parameter von einer Anzahl von Cache-Verfehlungen abhängt.Method according to Claim 5 where the parameter depends on a number of cache misses. Verfahren nach Anspruch 5 oder 6, wobei eine Cache-Allozierungs-Technologie verwendet wird.Method according to Claim 5 or 6 using a cache allocation technology. Recheneinheit (100), die dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen.Arithmetic unit (100) adapted to perform a method according to any one of the preceding claims. Computerprogramm, das eine Recheneinheit (100) veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 7 durchzuführen, wenn es auf der Recheneinheit (100) ausgeführt wird.Computer program, which causes a computing unit (100), a method according to one of Claims 1 to 7 when executed on the arithmetic unit (100). Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 9.Machine-readable storage medium with a computer program stored thereon Claim 9 ,
DE102017216454.9A 2017-09-18 2017-09-18 A method of operating a processor unit having multiple processor cores and shared buffer memory area Pending DE102017216454A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102017216454.9A DE102017216454A1 (en) 2017-09-18 2017-09-18 A method of operating a processor unit having multiple processor cores and shared buffer memory area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017216454.9A DE102017216454A1 (en) 2017-09-18 2017-09-18 A method of operating a processor unit having multiple processor cores and shared buffer memory area

Publications (1)

Publication Number Publication Date
DE102017216454A1 true DE102017216454A1 (en) 2019-03-21

Family

ID=65526944

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017216454.9A Pending DE102017216454A1 (en) 2017-09-18 2017-09-18 A method of operating a processor unit having multiple processor cores and shared buffer memory area

Country Status (1)

Country Link
DE (1) DE102017216454A1 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Suh, G. E. et al.: Dynamic Partitioning of Shared Cache Memory. In: The Journal of Supercomputing, 28, 2004. pp. 7 - 26 *
Xing Fu et al.: Cache-Aware Utilization Control for Energy Efficiency in Multi-Core Real-Time Systems. In: Proceedings of the 23rd Euromico Conference on Real-Time Systems, 2011. pp. 102 - 111 *

Similar Documents

Publication Publication Date Title
DE102015004932B4 (en) Simulation device for several robots
DE102016010064B4 (en) Numerical control with machining condition adjustment function to reduce the occurrence of chatter or tool wear / breakage
DE102016014152B4 (en) Numerical control device
EP2829166B1 (en) Formation of equipment families on fitting lines
EP1989601A1 (en) System and method for analysing a production process
DE102018003245B4 (en) Numerical control device
DE102015007837A1 (en) Numerical control with multi-core processor
EP2189861A1 (en) Method for creating a part program
DE102014005557A1 (en) Numerical control device
EP3417373B1 (en) Method and device for operating a controller
DE102016008985A1 (en) Servo control system with learning controller with function to optimize learning memory allocation
EP3125056A1 (en) System and method for control and/or analysis of an industrial process
DE102016007651B4 (en) Numerical control with function for automatically selecting a storage destination for a machining program
DE102019007384A1 (en) Numerical control
DE102019007382A1 (en) Numerical control
DE102017130552B3 (en) Method of data processing and programmable logic controller
DE102018125090A1 (en) Data processing method and programmable logic controller
DE102017216454A1 (en) A method of operating a processor unit having multiple processor cores and shared buffer memory area
DE102019007392A1 (en) Numerical control system
DE60302103T2 (en) Control device for a machine
DE102018123563B4 (en) Method for inter-core communication in a multi-core processor
DE102016206490A1 (en) ELECTRONIC CONTROL UNIT
DE102016009443A1 (en) Numerical control for performing axis control of two parallel axes
DE102009046101B4 (en) A method for driving a consumable consuming machine tool component and computer program product and machine tool
EP3690573B1 (en) Control of a machine tool

Legal Events

Date Code Title Description
R163 Identified publications notified