DE102019219260A1 - Method for operating a computing unit - Google Patents

Method for operating a computing unit Download PDF

Info

Publication number
DE102019219260A1
DE102019219260A1 DE102019219260.2A DE102019219260A DE102019219260A1 DE 102019219260 A1 DE102019219260 A1 DE 102019219260A1 DE 102019219260 A DE102019219260 A DE 102019219260A DE 102019219260 A1 DE102019219260 A1 DE 102019219260A1
Authority
DE
Germany
Prior art keywords
resource
processor core
processes
processor
assigned
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
DE102019219260.2A
Other languages
German (de)
Inventor
Arne Hamann
Michael Pressler
Dakshina Narahari Dasari
Falk Rehm
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 DE102019219260.2A priority Critical patent/DE102019219260A1/en
Priority to CN202011428562.8A priority patent/CN112948069A/en
Publication of DE102019219260A1 publication Critical patent/DE102019219260A1/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben einer Recheneinheit (100) mit einer Prozessoreinheit mit wenigstens einem Prozessorkern (110, 120), wobei den Prozessorkernen (110; 120) der Prozessoreinheit jeweils auszuführende Prozesse (111, 112, 113, 114; 121, 122, 123) zugewiesen werden, wobei Prozessen (111, 112, 113, 114; 121, 122, 123), die einem Prozessorkern (110; 120) der Prozessoreinheit zugewiesen sind, jeweils vorbestimmte Mengen einer ersten Ressourcen und einer zweiten Ressource des Prozessorkerns (110; 120) zugewiesen werden, wobei diese Prozesse (111, 112, 113, 114; 121, 122, 123) auf dem Prozessorkern (110; 120) unter Verbrauch der jeweils zugewiesenen Mengen der ersten Ressource und der zweiten Ressource ausgeführt werden (202, 205), wobei die Ausführung einzelner Prozesse (111, 112, 113, 114; 121, 122, 123) jeweils bei Eintreten eines vorbestimmten Ereignisses beendet wird, wobei, wenn die Ausführung eines Prozesses (111, 112, 113, 114; 121, 122, 123) bei Eintreten des vorbestimmten Ereignisses beendet wird und dieser Prozess (111, 112, 113, 114; 121, 122, 123) nicht vollständig die ihm zugewiesenen Mengen der ersten Ressource und/oder der zweiten Ressource verbraucht hat, die entsprechenden nicht verbrauchten Mengen der ersten Ressource und/oder der zweiten Ressource jeweils als dynamisch freigestellte Ressourcen (141, 142; 151, 152) des Prozessorkerns (110; 120) freigestellt werden, wobei, wenn allen Prozessen (111, 112, 113, 114; 121, 122, 123) jeweils keine Menge der ersten Ressource und/oder der zweiten Ressource mehr zugewiesen ist, wenigstens einem der Prozesse (111, 112, 113, 114; 121, 122, 123) jeweils eine bestimmte Menge der dynamisch freigestellten Ressourcen (141, 142; 151, 152) des Prozessorkerns (110; 120) zugewiesen wird und dieser wenigstens eine der Prozesse (111, 112, 113, 114; 121, 122, 123) auf dem Prozessorkern (110; 120) unter Verbrauch der zugewiesenen dynamisch freigestellten Ressourcen des Prozessorkerns ausgeführt wird.The invention relates to a method for operating a computing unit (100) with a processor unit with at least one processor core (110, 120), the processor cores (110; 120) of the processor unit each having processes (111, 112, 113, 114; 121, 122) to be executed , 123), processes (111, 112, 113, 114; 121, 122, 123) assigned to a processor core (110; 120) of the processor unit being assigned predetermined amounts of a first resource and a second resource of the processor core ( 110; 120), these processes (111, 112, 113, 114; 121, 122, 123) being executed on the processor core (110; 120) using the respectively allocated amounts of the first resource and the second resource (202 , 205), the execution of individual processes (111, 112, 113, 114; 121, 122, 123) being terminated when a predetermined event occurs, and when the execution of a process (111, 112, 113, 114; 121 , 122, 123) upon entry n of the predetermined event is ended and this process (111, 112, 113, 114; 121, 122, 123) has not completely used up the allocated quantities of the first resource and / or the second resource, the corresponding unused quantities of the first resource and / or the second resource in each case as dynamically released resources (141, 142; 151, 152) of the processor core (110; 120) are released, wherein, if all processes (111, 112, 113, 114; 121, 122, 123) are no longer assigned a quantity of the first resource and / or the second resource, at least one the processes (111, 112, 113, 114; 121, 122, 123) are each assigned a certain amount of the dynamically released resources (141, 142; 151, 152) of the processor core (110; 120) and at least one of the processes ( 111, 112, 113, 114; 121, 122, 123) is executed on the processor core (110; 120) using the allocated dynamically released resources of the processor core.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.The present invention relates to a method for operating a computing unit as well as a computing unit and a computer program for its implementation.

Stand der TechnikState of the art

Für die effektive Abarbeitung von Prozessen durch eine Prozessoreinheit in einer Recheneinheit ist die Verwaltung und Verteilung der Ressourcen der Recheneinheit von Bedeutung, beispielsweise von Ressourcen in Form von Rechenkapazität und Speicherbandbreite. Bei der Rechenkapazität kann es sich um eine zur Verfügung stehende Rechenleistung der Rechen- bzw. Prozessoreinheit oder um eine Zeitdauer handeln, welche zur Ausführung eines Prozesses bereitgestellt wird. Die Speicherbandbreite betrifft insbesondere den Zugriff auf Speichereinheiten der Recheneinheit, z.B. Cache- oder RAM-Speicher, und ferner insbesondere eine Geschwindigkeit bzw. Datentransferrate, mit welcher Daten, etwa einzelne Bits oder Bytes, von oder zu dieser Speichereinheit übertragen werden können.For the effective execution of processes by a processor unit in a computing unit, the management and distribution of the computing unit's resources is important, for example resources in the form of computing capacity and memory bandwidth. The computing capacity can be an available computing power of the computing or processor unit or a period of time which is made available for the execution of a process. The memory bandwidth relates in particular to the access to memory units of the processing unit, e.g. cache or RAM memory, and also in particular to a speed or data transfer rate at which data, such as individual bits or bytes, can be transferred from or to this memory unit.

Offenbarung der ErfindungDisclosure of the invention

Erfindungsgemäß werden ein Verfahren zum Betreiben einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for operating a computing unit as well as a computing unit and a computer program for carrying it out are proposed with the features of the independent claims. Advantageous refinements are the subject matter of the subclaims and the description below.

Die Recheneinheit umfasst eine Prozessoreinheit (Prozessor-Systemteil, PS) mit wenigstens einem Prozessorkern. Insbesondere umfasst die Prozessoreinheit einen Multicore-Prozessor mit mehreren (wenigstens zwei) Prozessorkernen. Ein Prozessorkern umfasst insbesondere eine arithmetisch-logische Einheit (ALU), welche das eigentliche elektronische Rechenwerk zur Ausführung von Tasks, Programmen, Rechenbefehlen, etc. darstellt, und weiterhin insbesondere einen lokalen Speicher bzw. Pufferspeicher (Cache-Speicher). Neben der ALU können auch weitere Verarbeitungseinheiten in den einzelnen Prozessorkernen vorgesehen sein, beispielsweise eine Gleitkommaeinheit (engl. Floating Point Unit, FPU), eine SIMD-Einheit (Single Instruction Multiple Data), usw. Ferner umfasst die Recheneinheit insbesondere einen globalen Hauptspeicher, beispielsweise einen RAM-Speicher (Random Access Memory).The computing unit comprises a processor unit (processor system part, PS) with at least one processor core. In particular, the processor unit comprises a multicore processor with several (at least two) processor cores. A processor core includes, in particular, an arithmetic-logic unit (ALU), which represents the actual electronic arithmetic unit for executing tasks, programs, arithmetic commands, etc., and also in particular a local memory or buffer memory (cache memory). In addition to the ALU, further processing units can also be provided in the individual processor cores, for example a floating point unit (FPU), a SIMD unit (single instruction multiple data), etc. a RAM (Random Access Memory).

Den Prozessorkernen der Prozessoreinheit werden jeweils auszuführende Prozesse zugewiesen. Diese Zuordnung erfolgt insbesondere eindeutig, d.h. ein Prozess wird genau einem spezifischen Prozessorkern zugeordnet.Processes to be executed are assigned to the processor cores of the processor unit. This assignment is particularly clear, i.e. a process is assigned to exactly one specific processor core.

Prozessen, die einem Prozessorkern der Prozessoreinheit zugewiesen sind, werden jeweils vorbestimmte Mengen einer ersten Ressource und einer zweiten Ressource des Prozessorkerns zugewiesen. Diese zugewiesenen Ressourcen stellen insbesondere maximal zu verbrauchende Ressourcen dar, d.h. wenn die einzelnen Prozesse die ihnen zugewiesene Ressourcen verbraucht haben, werden sie zweckmäßigerweise beendet.Processes that are assigned to a processor core of the processor unit are each assigned predetermined amounts of a first resource and a second resource of the processor core. In particular, these assigned resources represent the maximum resources to be consumed, i.e. when the individual processes have used up the resources assigned to them, they are expediently terminated.

Die Prozesse werden auf dem Prozessorkern unter Verbrauch der jeweils zugewiesenen Mengen der ersten Ressource und der zweiten Ressource ausgeführt. Zweckmäßigerweise können die einzelnen Prozesse dabei nach vorgebbaren Ausführungskriterien bzw. gemäß einer vorgebbaren Ausführungsreihenfolge aufgeführt werden, beispielsweise in Abhängigkeit von einer Priorität der einzelnen Prozesse.The processes are executed on the processor core using the respectively allocated amounts of the first resource and the second resource. The individual processes can expediently be listed according to specifiable execution criteria or according to a specifiable execution sequence, for example as a function of a priority of the individual processes.

Die Ausführung einzelner Prozesse wird jeweils bei Eintreten eines vorbestimmten Ereignisses beendet, beispielsweise wenn ein Prozess die zugewiesenen Ressourcen aufgebraucht hat oder vollständig ausgeführt wurde. Beispielsweise können sich die einzelnen Prozesse dabei selbst beenden oder auch durch eine übergeordnete Instanz, beispielsweise ein Betriebssystem, beendet werden.The execution of individual processes is terminated when a predetermined event occurs, for example when a process has used up the allocated resources or has been completely executed. For example, the individual processes can terminate themselves or can also be terminated by a higher-level entity, for example an operating system.

Wenn die Ausführung eines Prozesses bei Eintreten des vorbestimmten Ereignisses beendet wird und dieser Prozess nicht vollständig die ihm zugewiesenen Mengen der ersten Ressource und/oder der zweiten Ressource verbraucht hat, werden die entsprechenden nicht verbrauchten Mengen der ersten Ressource und/oder der zweiten Ressource jeweils als dynamisch freigestellte Ressourcen des Prozessorkerns freigestellt. Diese nicht verbrauchten Mengen sind danach also nicht mehr dem entsprechenden Prozess zugewiesen. Unter dynamisch freigestellt sei dabei zu verstehen, dass die entsprechenden Ressourcen während der Laufzeit des Prozessorkerns freigestellt werden und dass somit dynamisch während der Laufzeit bestimmt wird, welche Mengen an Ressourcen freigestellt werden.If the execution of a process is terminated when the predetermined event occurs and this process has not completely consumed the quantities of the first resource and / or the second resource allocated to it, the corresponding unused quantities of the first resource and / or the second resource are each reported as dynamically released resources of the processor core released. These unused quantities are then no longer assigned to the corresponding process. In this context, dynamically released is to be understood as meaning that the corresponding resources are released during the runtime of the processor core and that it is thus determined dynamically during the runtime which amounts of resources are released.

Wenn allen Prozessen des Prozessorkerns jeweils keine Menge der ersten Ressource und/oder der zweiten Ressource mehr zugewiesen ist, wird wenigstens einem der Prozesse jeweils eine bestimmte Menge der dynamisch freigestellten Ressourcen des Prozessorkerns zugewiesen. Dieser wenigstens eine der Prozesse wird auf dem Prozessorkern unter Verbrauch der zugewiesenen dynamisch freigestellten Ressourcen des Prozessorkerns ausgeführt. Wenn also allen Prozessen keine Ressourcen mehr zugewiesen sind, weil die einzelnen Prozesse ihre zugewiesenen Ressourcen vollständig verbraucht oder freigestellt haben, werden die noch übrigen dynamisch freigestellten Ressourcen neu vergeben bzw. neu zugewiesen.If all processes of the processor core are no longer assigned a quantity of the first resource and / or the second resource, at least one of the processes is assigned a specific quantity of the dynamically released resources of the processor core. This at least one of the processes is executed on the processor core using the allocated dynamically released resources of the processor core. If no more resources are assigned to any of the processes because the individual processes have completely used up or released their assigned resources, the remaining ones will be dynamically released resources reassigned or reassigned.

Wenn somit ein Prozess beendet wird, der nicht vollständig die ihm zugewiesenen Ressourcen verbraucht hat, werden dessen übrige Ressourcen für eine anderweitige Verwendung bzw. für den Verbrauch durch andere Prozesse freigegeben. Wenn zugewiesene Ressourcen nicht vollständig verbraucht werden, verfallen diese somit nicht bzw. bleiben nicht ungenutzt, sondern können bei Bedarf anderweitig verwendet bzw. verbraucht werden. Das vorliegende Verfahren ermöglicht eine dynamische Verwaltung bzw. Verteilung von Ressourcen eines Prozessorkerns auf einzelne auf dem Kern auszuführende Prozesse. Ferner ermöglicht das Verfahren eine dynamische Neu- bzw. Umverteilung von Ressourcen während der Laufzeit der Recheneinheit bzw. des jeweiligen Prozessorkerns. Insbesondere kann verhindert werden, dass einzelne Prozesse Ressourcen „blockieren“, z.B., wenn Prozesse nicht oder nicht mehr aufgeführt werden und ihnen zugewiesene Ressourcen dabei ungenutzt bleiben. Insbesondere wird durch das vorliegende Verfahren eine gemeinsame Verwaltung von verschiedenen Ressourcen des Prozessorkerns bereitgestellt. Zweckmäßigerweise kann den einzelnen ausführenden Prozessen stets ausreichend Ressourcen zur Verfügung gestellt werden.If a process is terminated that has not completely used up the resources allocated to it, its remaining resources are released for other use or for consumption by other processes. If allocated resources are not completely used, they do not expire or remain unused, but can be used or consumed elsewhere if necessary. The present method enables a dynamic management or distribution of resources of a processor core to individual processes to be executed on the core. Furthermore, the method enables a dynamic reallocation or redistribution of resources during the runtime of the processing unit or the respective processor core. In particular, it can be prevented that individual processes "block" resources, e.g. if processes are not listed or are no longer listed and the resources assigned to them remain unused. In particular, the present method provides a common management of various resources of the processor core. Appropriately enough resources can always be made available to the individual executing processes.

Insbesondere wird durch das vorliegende Verfahren eine effektive Abarbeitung der einzelnen Prozesse ermöglicht. Es kann zweckmäßigerweise verhindert werden, dass sich einzelne Prozesse bei ihrer Ausführung oder bei Zugriff auf Ressourcen gegenseitig blockieren. Wenn Prozesse beispielsweise Echtzeitkriterien erfüllen sollen und dabei die Abarbeitung dieser Prozesse bis zu einem vorgegebenen Zeitpunkt garantiert werden soll, kann durch die Ressourcenverwaltung im Rahmen des vorliegenden Verfahrens erreicht werden, dass diesen Prozessen ausreichend Ressourcen zur Verfügung gestellt wird und die vorgegebene Echtzeitkriterien erfüllt werden, wenn zu diesem Zweck insbesondere Master bzw. Busmaster entsprechend kontrolliert werden.In particular, the present method enables the individual processes to be carried out effectively. It can expediently be prevented that individual processes block each other when they are executed or when resources are accessed. If processes are to meet real-time criteria, for example, and the processing of these processes is to be guaranteed up to a predetermined point in time, the resource management in the context of the present method can ensure that sufficient resources are made available to these processes and the predetermined real-time criteria are met if for this purpose, the master or bus master in particular must be checked accordingly.

Zweckmäßigerweise wird für alle Prozessorkerne der Prozessoreinheit auf entsprechende Weise die Zuweisung der ersten und zweiten Ressource zu den jeweiligen auszuführenden Prozessen sowie das dynamische Freistellen und Neu-Zuweisen der nicht verbrauchten Ressourcen durchgeführt. Für jeden Prozessorkern ergeben sich somit zweckmäßigerweise jeweils kernspezifische bzw. prozessorkernspezifische freigestellte Ressourcen.Appropriately, for all processor cores of the processor unit, the allocation of the first and second resources to the respective processes to be carried out and the dynamic release and reassignment of the unused resources are carried out. For each processor core there are expediently core-specific or processor core-specific released resources.

Insbesondere werden die erste und zweite Ressource des Prozessorkerns gesondert behandelt, d.h. die nicht verbrauchte, freigestellte erste Ressource einerseits und die nicht verbrauchte, freigestellte zweite Ressource andererseits werden individuell und unabhängig voneinander neu verteilt bzw. neu zugewiesen. Es ist insbesondere auch möglich, nur die erste oder nur die zweite Ressource freizustellen und neu zuzuweisen. Insbesondere kann auch für unterschiedliche Prozessorkerne jeweils individuell entschieden werden, ob nur eine oder beide Ressourcen freigestellt und neu zugewiesen werden.In particular, the first and second resources of the processor core are treated separately, i.e. the unused, released first resource on the one hand and the unused, released second resource on the other hand are individually and independently newly distributed or reassigned. In particular, it is also possible to release and reassign only the first or only the second resource. In particular, it can also be decided individually for different processor cores whether only one or both resources are released and reassigned.

Beispielsweise kann für jeden Prozessorkern jeweils ein Ressourcen-Manager vorgesehen sein, welcher für den jeweiligen Prozessorkern die Zuweisung, Freistellung und Neu-Zuweisung der Ressourcen dieses Prozessorkerns durchführt. Beispielweise kann dieser Ressourcen-Manager als Software realisiert sein, welche von dem jeweiligen Prozessorkern ausgeführt wird. Ebenso kann ein derartiger Ressourcen-Manager beispielsweise auch als Software in einer übergeordneten Instanz ausgeführt werden, beispielsweise in einem Betriebssystem der Recheneinheit, einem Hypervisor, einer Middleware oder einer Laufzeitumgebung. Ferner kann ein derartiger Ressourcen-Manager insbesondere auch als ein eigenes Hardwareelement vorgesehen sein.For example, a resource manager can be provided for each processor core, which executes the allocation, release and reallocation of the resources of this processor core for the respective processor core. For example, this resource manager can be implemented as software that is executed by the respective processor core. Such a resource manager can also be implemented, for example, as software in a higher-level instance, for example in an operating system of the processing unit, a hypervisor, middleware or a runtime environment. Furthermore, such a resource manager can in particular also be provided as a separate hardware element.

Die Gesamtheit der dynamisch freigestellten Ressourcen des Prozessorkerns wird im Folgenden als dynamischer Ressourcenpool bezeichnet (oder auch „Slack-Pool“ oder „Slack“). Nicht verbrauchten Ressourcen von Prozessen werden somit in den dynamischen Ressourcenpool gespendet, aus welchen bei Bedarf andere Prozesse bedient werden können. Die Gesamtheit der dynamisch freigestellten ersten Ressource stellt zweckmäßigerweise einen ersten dynamischen Ressourcenpool (dynamischer „Slack“) dar und die Gesamtheit der dynamisch freigestellten zweiten Ressource zweckmäßigerweise einen zweiten dynamischen Ressourcenpool. Insbesondere ist pro Prozessorkern jeweils wenigstens ein lokaler, kernspezifischer bzw. dynamischer Ressourcenpool vorgesehen.The totality of the dynamically released resources of the processor core is referred to below as the dynamic resource pool (or also “slack pool” or “slack”). Resources not used by processes are thus donated to the dynamic resource pool, from which other processes can be served if necessary. The entirety of the dynamically released first resource expediently represents a first dynamic resource pool (dynamic “slack”) and the entirety of the dynamically released second resource expediently represents a second dynamic resource pool. In particular, at least one local, core-specific or dynamic resource pool is provided for each processor core.

Gemäß einer besonders bevorzugten Ausführungsform ist die erste Ressource eine Rechenkapazität bzw. Laufzeit des Prozessorkerns und die zweite Ressource eine Speicherbandbreite des Prozessorkerns. Als Rechenkapazität wird einzelnen Prozessen jeweils insbesondere ein bestimmter Prozentsatz an Rechenleistung bzw. eine bestimmte Zeitdauer zur Ausführung des jeweiligen Prozessorkerns zugewiesen. Als Speicherbandbreite wird einzelnen Prozessen jeweils insbesondere eine bestimmte Anzahl an Zugriffen auf eine Speichereinheit zugewiesen. Ferner ist es auch denkbar, dass als Speicherbandbreite jeweils Zugriffe auf eine Speichereinheit mit einer bestimmten Geschwindigkeit bzw. Datentransferrate zugewiesen werden. Bei dieser Speichereinheit kann es sich insbesondere um den Cache-Speicher des jeweiligen zugewiesenen Prozessorkerns oder insbesondere auch um den RAM-Speicher der Recheneinheit handeln. Durch das vorliegende Verfahren wird somit besonderes zweckmäßig eine gemeinsame Verwaltung der Rechenkapazität und der Speicherbandbreite eines Prozessorkerns ermöglicht. Insbesondere kann ein Ablauf bzw. eine Ablaufreihenfolge der einzelnen auszuführenden Prozesse in Abhängigkeit von einem Zusammenspiel oder einer Kombination der beiden verwalteten Ressourcen Rechenkapazität bzw. Laufzeit und Speicherbandbreite geregelt werden. Zweckmäßigerweise kann den einzelnen ausführenden Prozessen stets ausreichend Rechenkapazität und Speicherbandreite zur Verfügung gestellt werden.According to a particularly preferred embodiment, the first resource is a computing capacity or runtime of the processor core and the second resource is a memory bandwidth of the processor core. In particular, a certain percentage of computing power or a certain period of time for executing the respective processor core is allocated to individual processes as computing capacity. In particular, a specific number of accesses to a memory unit is allocated to individual processes as the memory bandwidth. Furthermore, it is also conceivable that accesses to a memory unit with a specific speed or data transfer rate are assigned as the memory bandwidth. This memory unit can in particular be the cache memory of the respective assigned processor core or, in particular, also the Act RAM memory of the processing unit. The present method thus makes it possible to jointly manage the computing capacity and the memory bandwidth of a processor core in a particularly expedient manner. In particular, a sequence or sequence of the individual processes to be carried out can be regulated as a function of an interaction or a combination of the two managed resources, computing capacity or running time and memory bandwidth. The individual executing processes can expediently always be provided with sufficient computing capacity and memory bandwidth.

Gemäß einer vorteilhaften Ausführungsform werden Ressourcen nicht nur dynamisch während der Laufzeit freigestellt, sondern ferner auch statisch zu Beginn der Laufzeit. Wenn den Prozessen, die dem Prozessorkern der Prozessoreinheit zugewiesen sind, jeweils die vorbestimmten Mengen der ersten Ressource und der zweiten Ressource des Prozessorkerns zugewiesen werden, werden vorteilhafterweise Mengen der ersten Ressource und/oder der zweiten Ressource, die keinem Prozess zugewiesen werden, als statisch freigestellte Ressourcen freigestellt. Wenn der Prozessorkern also nicht voll ausgelastet ist und nicht sämtliche Ressourcen des Prozessorkerns für Prozesse zugewiesen bzw. reserviert werden, werden die übrigen Ressourcen freigegeben und können während der Laufzeit bei Bedarf zweckmäßigerweise einzelnen Prozessen zugewiesen werden. Besonders zweckmäßig werden entsprechende nicht zugewiesene Mengen der Laufzeit als derartige statisch freigestellte Ressourcen freigestellt. Bezüglich der Speicherbandbreite kann insbesondere vorab eine Menge an Speicherbandbreite limitiert werden, welche keinem Prozess zugewiesen wird und als statisch freigestellte Ressource freigestellt wird. Insbesondere stellen diese statisch freigestellten Ressourcen einen statischen Ressourcenpool (statischer „Slack“) zusätzlich zu dem dynamischen Ressourcenpool dar, zweckmäßigerweise einen ersten statischen Ressourcenpool für die erste Ressource und einen zweiten statischen Ressourcenpool für die zweite Ressource.According to an advantageous embodiment, resources are not only released dynamically during the runtime, but also statically at the beginning of the runtime. If the processes that are assigned to the processor core of the processor unit are each assigned the predetermined amounts of the first resource and the second resource of the processor core, amounts of the first resource and / or the second resource that are not assigned to any process are advantageously statically released Resources released. If the processor core is not fully utilized and not all of the processor core's resources are allocated or reserved for processes, the remaining resources are released and can expediently be allocated to individual processes during runtime, if necessary. It is particularly expedient for corresponding unallocated amounts of the running time to be released as such statically released resources. With regard to the memory bandwidth, an amount of memory bandwidth that is not allocated to any process and is released as a statically released resource can be limited in advance. In particular, these statically released resources represent a static resource pool (static “slack”) in addition to the dynamic resource pool, expediently a first static resource pool for the first resource and a second static resource pool for the second resource.

Wenn eine dynamisch freigestellte Ressource des Prozessorkerns vollständig verbraucht wurde, wenn also die erste und/oder zweite Ressource des Prozessorkerns vollständig verwendet wurde, wird vorteilhafterweise wenigstens einem der Prozesse jeweils eine bestimmte Menge der statisch freigestellten Ressourcen zugewiesen. Dieser wenigstens eine der Prozesse wird vorzugsweise auf dem Prozessorkern unter Verbrauch der zugewiesenen statisch freigestellten Ressourcen des Prozessorkerns ausgeführt.When a dynamically released resource of the processor core has been completely used up, that is to say when the first and / or second resource of the processor core has been completely used, a certain amount of the statically released resources is advantageously assigned to at least one of the processes. This at least one of the processes is preferably executed on the processor core using the allocated statically released resources of the processor core.

Der statische Ressourcenpool eröffnet zweckmäßigerweise eine zusätzliche Möglichkeit bzw. einen weiteren Freiheitsgrad, um während der Laufzeit Prozessen Ressourcen bereitzustellen, wenn die übrigen Ressourcen bereits verbraucht wurden. Insbesondere können die statisch freigestellten Ressourcen während der Laufzeit als Backup zurückgehalten und zweckmäßigerweise erst dann verwendet werden, wenn sämtliche anderen Ressourcen bereits verbraucht sind. Insbesondere kann anhand eines vorgegebenen Auswahlkriteriums entschieden werden, welcher bzw. welche Prozesse auf welche Menge der statisch freigestellten Ressourcen zugreifen dürfen. Beispielsweise kann als derartiges Auswahlkriterium eine Priorität der einzelnen Prozesse bewertet werden.The static resource pool expediently opens up an additional possibility or a further degree of freedom in order to provide resources to processes during runtime when the remaining resources have already been used up. In particular, the statically released resources can be retained as a backup during the runtime and expediently only used when all other resources have already been used up. In particular, a predetermined selection criterion can be used to decide which or which processes are allowed to access which amount of the statically released resources. For example, a priority of the individual processes can be evaluated as such a selection criterion.

Gemäß einer bevorzugten Ausführungsform, wenn die Prozessoreinheit mehrere Prozessorkerne aufweist, können Ressourcen auch global bzw. prozessorspezifisch statisch freigestellt werden. Wenn den Prozessorkernen der Prozessoreinheit jeweils auszuführende Prozesse zugewiesen werden, wird vorzugsweise eine bestimmte Menge der ersten Ressource und/oder der zweiten Ressource der Prozessoreinheit als gemeinsam nutzbare, prozessorspezifische statisch freigestellte Ressourcen freigestellt. Diese gemeinsam nutzbaren Ressourcen stellen somit einen globalen bzw. prozessorspezifischen statischen Ressourcenpool dar, auf welchen die einzelnen Prozessorkerne während der Laufzeit bei Bedarf gemeinsam zugreifen können. Insbesondere stellen entsprechend statisch freigestellte erste Ressourcen einen ersten globalen, statischen Ressourcenpool (globaler, statischer „Slack“) dar und statisch freigestellte zweite Ressourcen einen zweiten globalen, statischen Ressourcenpool.According to a preferred embodiment, if the processor unit has several processor cores, resources can also be statically released globally or processor-specifically. If processes to be carried out are assigned to the processor cores of the processor unit, a certain amount of the first resource and / or the second resource of the processor unit is preferably released as commonly usable, processor-specific, statically released resources. These jointly usable resources thus represent a global or processor-specific static resource pool to which the individual processor cores can jointly access during the runtime if required. In particular, correspondingly statically released first resources represent a first global, static resource pool (global, static “slack”) and statically released second resources represent a second global, static resource pool.

Wenn die dynamisch freigestellten Ressourcen des Prozessorkerns vollständig verbraucht wurden und wenn ferner jeweils die erste Ressource und/oder die zweite Ressource der übrigen Prozessorkerne der Prozessoreinheit ebenfalls vollständig verbraucht wurden, wird vorzugsweise wenigstens einem Prozess, der einem Prozessorkern der Prozessoreinheit zugewiesen ist, eine bestimmte Menge der prozessorspezifischen statisch freigestellten Ressourcen zugewiesen. Dieser wenigstens eine Prozess wird vorteilhafterweise auf dem jeweiligen Prozessorkern unter Verbrauch der zugewiesenen Menge prozessorspezifischer statisch freigestellter Ressourcen ausgeführt.If the dynamically released resources of the processor core have been completely used up and if the first resource and / or the second resource of the remaining processor cores of the processor unit have also been completely used up, at least one process that is assigned to a processor core of the processor unit is preferably a certain amount assigned to the processor-specific statically released resources. This at least one process is advantageously carried out on the respective processor core using the allocated amount of processor-specific, statically released resources.

Somit verbrauchen zunächst alle Prozessorkerne ihre eigenen Ressourcen, bevor Zugriff auf die prozessorspezifischen statisch freigestellten Ressourcen freigegeben wird. Insbesondere verbrauchen die einzelnen Prozessorkerne somit zunächst die Ressourcen in ihren eigenen kernspezifischen, dynamischen Ressourcenpools. Erst wenn sämtliche dieser kernspezifischen Pools erschöpft sind, darf auf den globalen, statischen Ressourcenpool zugegriffen werden. Somit kann beispielsweise verhindert werden, dass Speicherzugriffe einzelner Kerne ausgebremst werden.Thus, all processor cores initially consume their own resources before access to the processor-specific statically released resources is released. In particular, the individual processor cores thus initially consume the resources in their own core-specific, dynamic resource pools. The global, static resource pool can only be accessed when all of these core-specific pools are exhausted become. In this way, it can be prevented, for example, that memory accesses from individual cores are slowed down.

Bevorzugt wird in Abhängigkeit von einem vorgegebenen Auswahlkriterium bestimmt, welchem oder welchen der Prozesse jeweils wie viel bzw. welche Menge der dynamisch freigestellten Ressourcen des Prozessorkerns zugewiesen wird. Die Neu-Zuweisung der Ressourcen aus dem kernspezifischen Ressourcenpools erfolgt somit nach einem vorgegebenen Auswahlkriterium. Insbesondere kann ein entsprechendes Auswahlkriterium auch für die Zuweisung der statisch freigestellten Ressourcen bzw. der prozessorspezifischen statisch freigestellten Ressourcen verwendet werden.It is preferably determined as a function of a predefined selection criterion which or which of the processes is assigned how much or what amount of the dynamically released resources of the processor core. The reassignment of the resources from the core-specific resource pool thus takes place according to a predetermined selection criterion. In particular, a corresponding selection criterion can also be used for the assignment of the statically released resources or the processor-specific statically released resources.

Bevorzugt wird als das vorgegebene Auswahlkriterium eine Priorität der einzelnen dem Prozessorkern zugewiesenen Prozesse bewertet. Prozessen mit höherer Priorität werden zweckmäßigerweise zuerst und ferner insbesondere mehr der dynamisch freigestellten Ressourcen zugewiesen als Prozessen mit niedriger Priorität. Beispielsweise kann somit erreicht werden, dass echtzeitkritische Prozesse entsprechende Echtzeitkriterien erfüllen können.A priority of the individual processes assigned to the processor core is preferably evaluated as the predefined selection criterion. Processes with a higher priority are expediently assigned first and furthermore in particular more of the dynamically released resources than processes with a lower priority. For example, it can thus be achieved that real-time-critical processes can meet corresponding real-time criteria.

Alternativ oder zusätzlich kann bevorzugt ein Rundlaufverfahren (engl. „Round Robin“) als vorgegebenes Auswahlkriterium durchgeführt werden, beispielsweise ein faires oder gewichtetes Rundlaufverfahren. Insbesondere wird dabei allen Prozessen, welche auf die dynamisch freigestellten Ressourcen zugreifen möchten, nacheinander Zugriff gewährt, insbesondere in der Reihenfolge, in welcher sie einen entsprechenden Zugriffswunsch ausgegeben haben (FIFO-Prinzip, „First In, First Out“).Alternatively or additionally, a round robin process can preferably be carried out as a predefined selection criterion, for example a fair or weighted round robin process. In particular, all processes that want to access the dynamically released resources are granted access one after the other, in particular in the order in which they issued a corresponding access request (FIFO principle, “First In, First Out”).

Alternativ oder zusätzlich kann als vorgegebenes Auswahlkriterium bevorzugt berücksichtigt werden, welche nicht verbrauchte Menge der ersten Ressource und/oder der zweiten Ressource der einzelnen Prozesse jeweils als dynamisch freigestellte Ressourcen des Prozessorkerns freigestellt wurden. Prozesse, von welchen eine große Menge an Ressourcen freigestellt wurde, können insbesondere priorisiert behandelt werden.Alternatively or additionally, as a predetermined selection criterion, which unused amount of the first resource and / or the second resource of the individual processes was released as dynamically released resources of the processor core can preferably be taken into account. Processes from which a large amount of resources have been released can, in particular, be treated with priority.

Es sei angemerkt, dass alternativ oder zusätzlich zweckmäßigerweise noch weitere Auswahlkriterien berücksichtigt werden können, z.B. können Prozesse per Zufallsprinzip ausgewählt werden oder es kann beispielsweise eine Reihenfolge fest vorbestimmt werden, gemäß welcher Prozesse auf den dynamischen Ressourcenpool zugreifen dürfen.It should be noted that, alternatively or in addition, further selection criteria can expediently be taken into account, e.g. processes can be selected at random or, for example, an order can be fixed in advance according to which processes are allowed to access the dynamic resource pool.

Vorzugsweise wird die Ausführung eines Prozesses beendet, wenn als vorbestimmtes Ereignis der Prozess die ihm zugewiesen Menge der ersten oder der zweiten Ressource vollständig verbraucht hat. Insbesondere wird in diesem Fall die übrige, nicht verbrauchte Menge der jeweils anderen Ressource freigestellt.The execution of a process is preferably terminated when, as a predetermined event, the process has completely consumed the quantity of the first or the second resource allocated to it. In particular, in this case the remaining, unused amount of the respective other resource is released.

Alternativ oder zusätzlich wird die Ausführung vorzugsweise beendet, wenn ein anderer Prozess mit einer höheren Priorität ausgeführt werden soll und/oder wenn der Prozess vollständig ausgeführt wurde, also insbesondere vollständig abgearbeitet wurde.As an alternative or in addition, the execution is preferably terminated if another process is to be executed with a higher priority and / or if the process has been completely executed, that is, in particular, has been completely processed.

Alternativ oder zusätzlich wird die Ausführung bevorzugt beendet, wenn ein vorgegebenes Zeitintervall abgelaufen ist. Beispielsweise kann es sich um fest vorgegebene oder prozessspezifische Zeitintervalle handeln, für wie lange einzelne Prozesse maximal ausgeführt werden dürfen. Insbesondere kann es sich ferner insbesondere um ein sog. Regulierungsintervall handeln, gemäß welchem Zuweisen, Freistellen und Neu-Zuweisen von Ressourcen zyklisch wiederholt wird.Alternatively or additionally, the execution is preferably terminated when a predefined time interval has expired. For example, it can be a question of fixed or process-specific time intervals for how long individual processes may be carried out at the most. In particular, it can also be a so-called regulation interval, according to which the allocation, release and reassignment of resources is repeated cyclically.

Vorteilhafterweise wird nach Ablauf eines vorgegebenen Zeitintervalls bzw. Regulierungsintervalls die Ausführung aller Prozesse auf dem Prozessorkern beendet und die zugewiesenen Mengen der ersten Ressource und der zweiten Ressource sowie die dynamisch freigestellten Ressourcen des Prozessorkerns werden zurückgesetzt. Zweckmäßigerweise wird die Zuweisung von Ressourcen und das anschließende Ausführen, Freistellen und Neu-Zuweisen in dem Prozessorkern in zyklischen Intervallen bzw. Regulierungsintervallen wiederholt. Nach Ablauf eines vorgegebenen Zeitintervalls werden zweckmäßigerweise erneut den einzelnen Prozessen des Prozessorkerns jeweils vorbestimmte Mengen der ersten und zweiten Ressource zugewiesen und es wird erneut mit der Ausführung der Prozesse begonnen. Insbesondere kann für alle Prozessorkerne ein identisches, synchrones Regulierungsintervall gewählt werden oder es kann auch für unterschiedliche Prozessorkerne jeweils ein kernspezifisches Regulierungsintervall gewählt werden. Ebenso ist es auch denkbar, dass für verschiedene Prozesse innerhalb eines Prozessorkerns jeweils prozessspezifische Regulierungsintervalle gewählt werden.Advantageously, after a predetermined time interval or regulation interval has elapsed, the execution of all processes on the processor core is ended and the allocated quantities of the first resource and the second resource as well as the dynamically released resources of the processor core are reset. The allocation of resources and the subsequent execution, release and reassignment in the processor core are expediently repeated at cyclic intervals or regulation intervals. After a predetermined time interval has expired, the individual processes of the processor core are expediently again assigned predetermined quantities of the first and second resources, and the execution of the processes is started again. In particular, an identical, synchronous regulation interval can be selected for all processor cores, or a core-specific regulation interval can also be selected for different processor cores. It is also conceivable that process-specific regulation intervals are selected for different processes within a processor core.

Vorzugsweise umfassen die auszuführenden Prozesse jeweils einen oder mehrere Tasks oder einen Container mit wenigstens einem Task. Ein derartiger Container umfasst neben einem oder mehreren auszuführenden Tasks ferner Konfigurationsdaten, welche zur Ausführung dieser Tasks benötigt werden. The processes to be carried out preferably each comprise one or more tasks or a container with at least one task. In addition to one or more tasks to be carried out, such a container also includes configuration data which are required to carry out these tasks.

Insbesondere stellt ein derartiger Task eine logische Hülle dar, um die Konfigurationsdaten gemeinsam zu verwalten. Insbesondere kapselt ein derartiger Container eine Gruppe von Tasks, wobei jeder Task zweckmäßigerweise nur einem Container zugewiesen werden kann. Jeder Container hat zweckmäßigerweise ein zugewiesenes Laufzeit- und Speicherbrandbreitenbudget, welche periodisch erneuert werden. Die Periode für die Erneuerung dieser Budgets kann für verschiedene Container unterschiedlich sein. Ferner kann jeder Container mit einer Priorität versehen sein und einem Ablaufplan bzw. Scheduling-Algorithmus, welcher bestimmt, wie die Tasks innerhalb des Containers abgearbeitet werden. Beispiele für die Abarbeitung sind das FIFO-Prinzip, das Rundlaufverfahren („Round Robin“) sowie eine prioritätsbasierte oder tabellarisch vorgegebene Abarbeitung. Ein Prozessorkern kann einen oder mehrere Container aufnehmen. Zweckmäßigerweise ist die Zuordnung eines Containers zu einem Prozessorkern eindeutig. Die Zuordnung kann sich während der Laufzeit auch ändern, jedoch zweckmäßigerweise unter der Bedingung, dass ein Container immer einem spezifischen Prozessorkern zugeordnet ist. Die Zuordnung von Tasks zu Containern kann zweckmäßigerweise ebenfalls zur Laufzeit geändert werden.In particular, such a task represents a logical shell in order to jointly manage the configuration data. In particular, such a container encapsulates a group of tasks, with each task expediently only being able to be assigned to one container. Every container has expediently an allocated runtime and storage bandwidth budget, which are periodically renewed. The period for the renewal of these budgets can be different for different containers. Furthermore, each container can be given a priority and a schedule or scheduling algorithm which determines how the tasks are processed within the container. Examples for the processing are the FIFO principle, the round robin procedure as well as priority-based or tabular processing. A processor core can accommodate one or more containers. The assignment of a container to a processor core is expediently clear. The assignment can also change during runtime, but expediently under the condition that a container is always assigned to a specific processor core. The assignment of tasks to containers can expediently also be changed at runtime.

Wenn derartige Container zusammen mit weiteren Prozessen in der Recheneinheit ausgeführt werden und gemeinsamen auf die Ressourcen der Recheneinheit zugreifen, besteht die Gefahr, dass es zu Verzögerungen bei der Ausführung der Container kommen kann. Das vorliegende Verfahren ermöglicht eine effektive Ressourcenverteilung insbesondere auch bei der Ausführung von Containern, so dass allen auszuführenden Prozessen, auch Containern, ausreichend Ressourcen zur Verfügung gestellt werden kann. Durch das vorliegende Verfahren wird der effektive Einsatz von Containern ermöglicht.If such containers are executed together with other processes in the processing unit and jointly access the resources of the processing unit, there is a risk that there may be delays in the execution of the container. The present method enables an effective distribution of resources, especially when executing containers, so that sufficient resources can be made available to all processes to be executed, including containers. The present method enables the effective use of containers.

Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing unit according to the invention, for example a control unit of a motor vehicle, is set up, in particular in terms of programming, to carry out a method according to the invention.

Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte 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.The implementation of a method according to the invention in the form of a computer program or computer program product with program code for performing all method steps is advantageous, since this causes particularly low costs, in particular if an executing control device is also used for other tasks and is therefore available anyway. Suitable data carriers for providing the computer program are, in particular, magnetic, optical and electrical memories, such as hard drives, flash memories, EEPROMs, DVDs, etc. A program can also be downloaded 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 emerge from the description and the accompanying drawing.

Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is shown schematically in the drawing using exemplary embodiments and is described below with reference to the drawing.

FigurenlisteFigure list

  • 1 zeigt schematisch eine bevorzugte Ausgestaltung einer erfindungsgemäßen Recheneinheit, die dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen. 1 shows schematically a preferred embodiment of a computing unit according to the invention, which is set up to carry out a preferred embodiment of a method according to the invention.
  • 2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm. 2 shows schematically a preferred embodiment of a method according to the invention as a block diagram.

Ausführungsform(en) der ErfindungEmbodiment (s) of the invention

In 1 ist eine Recheneinheit, hier beispielsweise eines Fahrzeugs, beispielsweise ein Fahrassistenzsteuergerät, schematisch dargestellt und mit 100 bezeichnet.In 1 a computing unit, here for example a vehicle, for example a driver assistance control device, is shown schematically and denoted by 100.

Das Steuergerät 100 weist eine Prozessoreinheit mit zwei Prozessorkernen 110 und 120 auf. Den einzelnen Prozessorkernen können jeweils verschiede Prozesse zur Ausführung zugewiesen werden. Im gezeigten Beispiel sind dem ersten Prozessoren 110 vier Prozesse 111, 112, 113, 114 zugewiesen und dem zweiten Prozessoren 120 beispielsweise drei Prozesse 121, 122, 123. Es versteht sich, dass die Prozessoreinheit auch eine größere Anzahl an Prozessorkernen aufweisen kann und dass ferner jeweils auch eine größere Anzahl an Prozessen auf den einzelnen Prozessorkernen ausgeführt werden kann.The control unit 100 has a processor unit with two processor cores 110 and 120 on. Different processes can be assigned to the individual processor cores for execution. In the example shown, the first processors are 110 four processes 111 , 112 , 113 , 114 assigned and the second processors 120 for example three processes 121 , 122 , 123 . It goes without saying that the processor unit can also have a larger number of processor cores and that a larger number of processes can also be executed on the individual processor cores.

Die Prozesse 111, 112, 113, 114, 121, 122, 123 können jeweils einzelne aufzuführende Task sein oder vorzugsweis auch jeweils Container mit wenigstens einer Task. Neben den jeweiligen Tasks umfasst ein derartiger Container insbesondere Konfigurationsdaten, welche zur Ausführung dieser Tasks benötigt werden. Insbesondere ist jedem Container ein Ablaufplan bzw. Algorithmus zugewiesen, gemäß welchem die Tasks des Containers abgearbeitet werden, z.B. FIFO, Round-Robin, prioritätsbasiert usw. Insbesondere ist jedem Prozess auch eine Priorität zugewiesen.The processes 111 , 112 , 113 , 114 , 121 , 122 , 123 each can be individual tasks to be performed or preferably also containers with at least one task. In addition to the respective tasks, such a container includes, in particular, configuration data which are required to carry out these tasks. In particular, each container is assigned a schedule or algorithm according to which the tasks of the container are processed, for example FIFO, round robin, priority-based, etc. In particular, each process is also assigned a priority.

Die Recheneinheit ist, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen und im Zuge dessen zu verwalten, wieviel Ressourcen der Prozessoreinheit den einzelnen Prozessen zur Verfügung gestellt werden.The computing unit is set up, in particular in terms of programming, to carry out a preferred embodiment of a method according to the invention and in the course of this to manage how many resources of the processor unit are made available to the individual processes.

Zu diesem Zweck sind ein erster Ressourcen-Manager 131 für den ersten Prozessorkern 110 und ein zweiter Ressourcen-Manager 132 für den zweiten Prozessorkern 120 vorgesehen. Diese Ressourcen-Manager 131, 132 verwalten jeweils die einzelnen auf dem jeweiligen Prozessorkern 110 bzw. 120 zugewiesenen Prozesse 111, 112, 113, 114 bzw. 121, 122, 123 sowie ferner Ressourcen des jeweiligen Prozessorkerns 110, 120 in Form von Rechenkapazität und Speicherbandbreite.For this purpose are a first resource manager 131 for the first processor core 110 and a second resource manager 132 for the second processor core 120 intended. These resource managers 131 , 132 manage each each on the respective processor core 110 or. 120 assigned processes 111 , 112 , 113 , 114 or. 121 , 122 , 123 and also resources of the respective processor core 110 , 120 in the form of computing capacity and memory bandwidth.

Insbesondere überprüfen die Ressourcen-Manager 131, 132 jeweils, welchen der Prozesse jeweils wieviel Ressourcen zugewiesen sind, und bestimmen ferner, ob während der Laufzeit zugewiesene Ressourcen entzogen bzw. freigestellt und neu-zugewiesen werden, wie weiter unten in Bezug auf 2 erläutert wird.In particular, check the resource manager 131 , 132 In each case, which of the processes are assigned how many resources, and also determine whether resources assigned during runtime are withdrawn or released and reassigned, as further below with regard to FIG 2 is explained.

Mit dem Bezugszeichen 141 sei eine dynamisch während der Laufzeit freigestellte Rechenkapazität des ersten Prozessorkerns 110 charakterisiert und mit dem Bezugszeichen 142 eine dynamisch während der Laufzeit freigestellte Speicherbandbreite des Prozessorkerns 110. Diese freigestellten Ressourcen stellen somit jeweils einen lokalen, kernspezifischen, dynamischen Ressourcenpool 141 und 142 (dynamischer „Slack“) des Prozessorkerns 110 für die Rechenkapazität bzw. für die Speicherbandbreite dar.With the reference number 141 be a computing capacity of the first processor core that is released dynamically during runtime 110 characterized and with the reference number 142 a memory bandwidth of the processor core that is dynamically released during runtime 110 . These released resources thus each represent a local, core-specific, dynamic resource pool 141 and 142 (dynamic "slack") of the processor core 110 for the computing capacity or for the memory bandwidth.

Entsprechend ist auch für den zweiten Prozessorkern 120 ein erster lokaler, kernspezifischer, dynamischer Ressourcenpool 151 für die Rechenkapazität und zweiter lokaler, kernspezifischer, dynamischer Ressourcenpool 152 für die Speicherbandbreite vorgesehen.The same applies to the second processor core 120 a first local, core-specific, dynamic resource pool 151 for the computing capacity and a second local, core-specific, dynamic resource pool 152 intended for the memory bandwidth.

Insbesondere sind diese einzelnen Ressourcenpools 141, 142, 151, 152 jeweils als konzeptionelle Einteilungen bzw. Software-Konstrukte zu verstehen und nicht notwendigerweise als physisch vorgesehene, tatsächlich in Hardware realisierte Elemente.In particular, these are individual resource pools 141 , 142 , 151 , 152 to be understood as conceptual divisions or software constructs and not necessarily as physically intended elements actually implemented in hardware.

Ferner können Ressourcen nicht nur dynamisch während der Laufzeit freigestellt werden, sondern auch statisch zu Beginn der Laufzeit. Zu diesem Zweck ist ein Speicherbandbreiten-Manager 133 vorgesehen, welcher prozessorkernübergreifend statisch freigestellte Speicherbandbreite verwaltet, wie weiter unten in Bezug auf 2 erläutert werden soll.Furthermore, resources can be released not only dynamically during the runtime, but also statically at the beginning of the runtime. For this purpose there is a memory bandwidth manager 133 provided, which manages statically released memory bandwidth across processor cores, as further below in relation to 2 should be explained.

Insbesondere überwacht dieser globale Speicherbandbreiten-Manager 133 ferner die zugewiesene Speicherbandbreite für jeden Prozessorkern 110, 120 und hat zweckmäßigerweise als einzige Instanz Zugriff auf alle Prozessorkerne 110, 120 und deren Ressourcen-Manager 131, 132. Beispielsweise kann der Speicherbandbreiten-Manager 133 alle Speicherbandbreiten „Slack“ Pools überwachen.In particular, this global memory bandwidth manager monitors 133 also the allocated memory bandwidth for each processor core 110 , 120 and expediently has access to all processor cores as the only instance 110 , 120 and their resource manager 131 , 132 . For example, the memory bandwidth manager 133 Monitor all memory bandwidths "Slack" pools.

Die Ressourcen-Manager 131, 132 sind jeweils insbesondere als Software vorgesehen, welche beispielsweise jeweils von dem entsprechenden Prozessorkern 110 bzw.120 oder auch von einer übergeordneten Instanz (z.B. Betriebssystem, Hypervisor, Middleware, Laufzeitumgebung) ausgeführt werden kann. Ebenso ist eine Realisierung der Ressourcen-Manager 131, 132 als jeweils eigenes oder auch als gemeinsames Hardwareelement denkbar. Entsprechend kann auch der globale Speicherbandbreiten-Manager 133 als von einer übergeordneten Instanz ausführbare Software oder als Hardwareelement ausgebildet sein.The resource manager 131 , 132 are each provided in particular as software, which is, for example, each from the corresponding processor core 110 or 120 or by a higher-level instance (e.g. operating system, hypervisor, middleware, runtime environment). Likewise is a realization of the resource manager 131 , 132 conceivable as a separate hardware element or as a common hardware element. The global memory bandwidth manager can also do the same 133 be designed as software executable by a higher-level entity or as a hardware element.

2 zeigt nun schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm. 2 now shows schematically a preferred embodiment of a method according to the invention as a block diagram.

In Schritt 201 werden die Prozesse bzw. Container 111, 112, 113 und 114 dem ersten Prozessorkern 110 zugewiesen und die Prozesse bzw. Container 121, 122, 123 dem zweiten Prozessorkern 120. Ferner wird den einzelnen Prozessen 111, 112, 113, 114, 121, 122, 123 von den Ressourcen-Managern 131, 132 jeweils eine vorbestimmte Menge an Rechenkapazität und Speicherbandbreite des jeweiligen Prozessorkerns 110 bzw. 120 zugewiesen.In step 201 are the processes or containers 111 , 112 , 113 and 114 the first processor core 110 assigned and the processes or containers 121 , 122 , 123 the second processor core 120 . Furthermore, the individual processes 111 , 112 , 113 , 114 , 121 , 122 , 123 from the resource managers 131 , 132 a predetermined amount of computing capacity and memory bandwidth of the respective processor core 110 or. 120 assigned.

Ferner wird eine bestimmte Menge an Speicherbandbreite der Prozessoreinheit als gemeinsam nutzbare, prozessorspezifische statisch freigestellte Ressource freigestellt. Diese statisch freigestellte Speicherbandbreite stellt einen globalen, statischen Ressourcenpool (statischer „Slack“) dar und wird zweckmäßigerweise von dem Speicherbandbreiten-Manager 133 verwaltet.Furthermore, a certain amount of memory bandwidth of the processor unit is released as a shared, processor-specific, statically released resource. This statically released memory bandwidth represents a global, static resource pool (static “slack”) and is expediently managed by the memory bandwidth manager 133 managed.

In Schritt 202 startet die Laufzeit der Recheneinheit und die einzelnen Prozesse bzw. Container werden auf den Prozessorkernen 110, 120 unter Verbrauch der jeweils zugewiesenen Rechenkapazität und Speicherbandbreite ausgeführt. Insbesondere werden die einzelnen Prozesse pro Prozessorkern 110, 120 jeweils prioritätsbasiert sowie ferner in Abhängigkeit von zugewiesenen Ressourcen abgearbeitet.In step 202 starts the runtime of the processing unit and the individual processes or containers are on the processor cores 110 , 120 using the allocated computing capacity and memory bandwidth. In particular, the individual processes per processor core 110 , 120 each priority-based and also processed depending on allocated resources.

Nachfolgend wird beispielhaft die Ausführung der Prozesse des ersten Prozessorkerns 110 erläutert. Die Beschreibung gilt jedoch in entsprechender Weise auch für den zweiten Prozessorkern 120.The following is an example of the execution of the processes of the first processor core 110 explained. However, the description also applies in a corresponding manner to the second processor core 120 .

Zunächst wird in Schritt 203 bewertet, ob den einzelnen Prozessen des Prozessorkerns 110 noch Rechenkapazität und Speicherbandbreite zugewiesenen ist oder ob sie ihre zugewiesenen Ressourcen schon vollständig verbraucht haben. Sofern letzteres noch nicht der Fall ist, wird in Schritt 204 bestimmt, welcher Prozess auf dem Prozessorkern 110 als nächstes ausgeführt wird. Zu diesem Zweck wird bewertet, welcher Prozess die höchste Priorität hat und ferner die ihm zugewiesenen Ressourcen noch nicht vollständig verbraucht hat.First is in step 203 assesses whether the individual processes of the processor core 110 is still allocated computing capacity and memory bandwidth or whether you have already completely used up your allocated resources. If the latter is not yet the case, step 204 determines what process is on the processor core 110 will run next. For this purpose, it is assessed which process has the highest priority and which has not yet completely used up the resources allocated to it.

Der entsprechend ausgewählte Prozess, beispielsweise der Prozess 112, wird in Schritt 205 ausgeführt, bis in Schritt 206 ein vorbestimmtes Ereignis eintritt. Beispielsweise wird der Prozessl12 so lange ausgeführt, bis dieser die ihm zugewiesene Menge an Rechenkapazität vollständig verbraucht hat. In diesem Fall wird die nicht verbrauchte Menge an Speicherbandbreite als dynamisch freigestellte Ressource freigestellt und beispielsweise dem Ressourcenpool 142 gespendet.The process selected accordingly, for example the process 112 , will be in step 205 run up in step 206 a predetermined event occurs. For example, the process 12 is carried out until it has completely used up the amount of computing capacity allocated to it. In this case, the unused amount of memory bandwidth is released as a dynamically released resource and, for example, the resource pool 142 donated.

Der Prozess 112 kann auch dann beendet werden, wenn er die ihm zugewiesene Menge an Speicherkapazität vollständig verbraucht hat. Insbesondere wird dann die nicht verbrauchte Menge an Rechenkapazität freigestellt und dem Ressourcenpool 141 gespendet.The process 112 can also be terminated if it has completely used up the amount of storage capacity allocated to it. In particular, the unused amount of computing capacity is then released and added to the resource pool 141 donated.

Ebenso kann der Prozess 112 beendet werden, wenn ein anderer Prozess mit einer höheren Priorität ausgeführt werden soll, beispielsweise der Prozess 111, oder wenn der Prozess 112 vollständig ausgeführt bzw. komplett abgearbeitet wurde. In diesem Fall können beispielswese sowohl die nicht verbrauchte Rechenkapazität als auch die nicht verbrauchte Speicherbandbreite freigestellt und dem jeweiligen Pool 141 bzw. 142 gespendet werden.Likewise, the process can 112 terminated if another process with a higher priority is to be executed, for example the process 111 , or if the process 112 has been completely executed or completely processed. In this case, for example, both the unused computing capacity and the unused memory bandwidth can be released and allocated to the respective pool 141 or. 142 to be donated.

Ferner kann der Prozess 112 nach Ablauf eines vorgegebenen Zeitintervalls bzw. Regulierungsintervalls beendet werden. In diesem Fall werden insbesondere keine Ressourcen freigestellt, sondern es werden die zugewiesenen Mengen der Ressource und die freigestellten Ressourcen zurückgesetzt.Furthermore, the process 112 be terminated after a specified time interval or regulation interval has elapsed. In this case, in particular, no resources are released, but the allocated quantities of the resource and the released resources are reset.

Solange dieses Regulierungsintervall jedoch nicht abgelaufen ist, wird nach dem Ende des Prozesses 112 erneuet gemäß Schritt 203 bewertet, ob den Prozessen noch Ressourcen zugewiesen sind.However, as long as this regulation interval has not expired, the process will end 112 renewed according to step 203 evaluates whether resources are still assigned to the processes.

Wenn nun in Schritt 203 keinem Prozess des Prozessorkerns 110 mehr Rechenkapazität und Speicherbandbreite zugewiesenen ist, wird in Schritt 207 überprüft, ob noch dynamisch freigestellte Ressourcen 141, 142 verfügbar sind. Wenn dem so ist, werden die die dynamisch freigestellten Ressourcen 141, 142 von dem Ressourcen-Manager 131 neu zugewiesen.If now in step 203 no process of the processor core 110 more computing capacity and memory bandwidth is allocated in step 207 checks whether there are still dynamically released resources 141 , 142 Are available. If so, they will be the dynamically released resources 141 , 142 from the resource manager 131 reassigned.

Zu diesem Zweck bestimmt der Ressourcen-Manager 131 in Schritt 208, welchem oder welchen der Prozesse 111, 112, 113, 114 wie viel der dynamisch freigestellten Ressourcen 141,142 zugewiesen werden. Beispielsweise kann der Prozess mit der höchsten Priorität ausgewählt werden oder auch der Prozess, von welchen in der Vergangenheit am meisten Rechenkapazität und/oder Speicherbandbreite freigestellt wurde. Es kann auch ein faires oder gewichtetes Round-Robin-Verfahren (Rundlaufverfahren) o.ä. eingesetzt werden.For this purpose, the resource manager determines 131 in step 208 which or which of the processes 111 , 112 , 113 , 114 how much of the dynamically released resources 141,142 are allocated. For example, the process with the highest priority can be selected or the process from which the most computing capacity and / or memory bandwidth was released in the past. A fair or weighted round robin procedure (round trip procedure) or similar can also be used.

Der ausgewählte Prozess wird daraufhin in Schritt 209 ausgeführt, bis in Schritt 210 ein vorbestimmtes Ereignis eintritt. Beispielsweis kann dieser ausgewählte Prozess solange ausgeführt werden, bis er alle dynamisch freigestellten Ressourcen 141,142 aufgebraucht hat oder bis ein Prozess mit höherer Priorität ausgeführt werden soll.The selected process is then shown in step 209 run up in step 210 a predetermined event occurs. For example, this selected process can be executed until it has used up all dynamically released resources 141, 142 or until a process with a higher priority is to be executed.

Wenn nun in Schritt 207 erkannt wird, dass auch die dynamisch freigestellten Ressourcen 141, 142 vollständig verbraucht wurden bzw. die dynamischen Ressourcenpools 141, 142 komplett geleert sind, kann gegebenenfalls auf die globalen, statisch freigestellten Ressourcen bzw. den globalen, statischen Ressourcenpool zugegriffen werden.If now in step 207 it is recognized that the dynamically released resources 141 , 142 have been completely consumed or the dynamic resource pools 141 , 142 are completely emptied, the global, statically released resources or the global, static resource pool can be accessed if necessary.

Zu diesem Zweck wird in Schritt 211 eine Anfrage an den globalen Speicherbandbreiten-Manager 133 übermittelt, welcher daraufhin zunächst überprüft, ob auch die Ressourcen des zweiten Prozessorkerns 120 vollständig verbraucht wurden, ob also die Prozesse 121, 122, 123 ihre zugewiesenen Ressourcen und die dynamisch freigestellten Ressourcen 151, 152 komplett verbraucht haben.To do this, step in 211 a request to the global memory bandwidth manager 133 transmitted, which then first checks whether the resources of the second processor core 120 were completely consumed, so whether the processes 121 , 122 , 123 their allocated resources and the dynamically released resources 151 , 152 have completely consumed.

Insbesondere nur, wenn dies der Fall ist, also nur wenn alle Prozessorkerne 110, 120 all ihre Ressourcen aufgebraucht haben, wird in Schritt 212 die statisch freigegebene Speicherbandbreite von dem Speicherbandbreiten-Manager 133 zugewiesen. Insbesondere kann somit verhindert werden, dass ein Prozessorkern den anderen durch einen Speicherzugriff ausbremst.In particular only if this is the case, i.e. only if all processor cores 110 , 120 will have used up all of their resources in step 212 the statically released memory bandwidth from the memory bandwidth manager 133 assigned. In particular, one processor core can thus be prevented from slowing down the other through a memory access.

Für den Fall, dass alle Speicherbandbreitenbudgets der einzelnen Prozessorkerne 110, 120 aufgebraucht sind, aber noch Zeit im Regulierungsintervall zur Verfügung steht, kann der globale Speicherbandbreiten-Manager 133 erlauben, den statischen Speicher „Slack“ des Systems bzw. der Prozessoreinheit zu verwenden. Solange jedoch ein Kern noch freies Speicherbandbreitenbudget besitzt, wird dies insbesondere nicht erlaubt, da er sonst durch die Speicherzugriffe anderer Kerne ausgebremst werden könnte.In the event that all memory bandwidth budgets of the individual processor cores 110 , 120 are used up, but there is still time available in the regulation interval, the global memory bandwidth manager can 133 allow to use the static memory "Slack" of the system or the processor unit. However, as long as a core still has free memory bandwidth budget, this is in particular not allowed, since otherwise it could be slowed down by the memory accesses of other cores.

In Schritt 212 bestimmt der Speicherbandbreiten-Manager 133, welcher oder welche der Prozesse 111, 112, 113, 114, 121, 122, 123 auf die statisch freigestellte Speicherbandbreite zugreifen darf bzw. dürfen. Insbesondere kann der Speicherbandbreiten-Manager 133 die zu Schritt 208 beschriebenen Methoden einsetzen.In step 212 determined by the memory bandwidth manager 133 which or which of the processes 111 , 112 , 113 , 114 , 121 , 122 , 123 may or may access the statically released memory bandwidth. In particular, the memory bandwidth manager 133 the to step 208 Use the methods described.

Der entsprechend ausgewählte Prozess wird in Schritt 213 ausgeführt, bis in Schritt 214 ein vorbestimmtes Ereignis eintritt, beispielsweise bis sämtliche Speicherbandbreite des statischen Pools verbraucht wurde.The process selected accordingly is shown in step 213 run up in step 214 a predetermined event occurs, for example until all memory bandwidth of the static pool has been used up.

Sollte hingegen in Schritt 211 bestimmt werden, dass die Ressourcen des zweiten Prozessorkerns 120 noch nicht vollständig verbraucht wurden, wird der erste Prozessorkern gemäß Schritt 215 angehalten und es wird abgewartet, bis das Regulierungsintervall abgelaufen ist. Nach Ablauf des Regulierungsintervalls werden insbesondere sämtliche zugewiesenen Mengen der Ressource und die freigestellten Ressourcen zurückgesetzt und es wird erneut mit Schritt 201 begonnen.Should, however, in step 211 be determined that the resources of the second processor core 120 have not yet been completely used up, the first processor core according to step 215 stopped and it waits until the regulation interval has expired. After the adjustment interval has expired, in particular all allocated quantities of the resource and the released resources are reset and step is repeated 201 began.

Claims (14)

Verfahren zum Betreiben einer Recheneinheit (100) mit einer Prozessoreinheit mit wenigstens einem Prozessorkern (110, 120), wobei den Prozessorkernen (110; 120) der Prozessoreinheit jeweils auszuführende Prozesse (111, 112, 113, 114; 121, 122, 123) zugewiesen werden (201), wobei Prozessen (111, 112, 113, 114; 121, 122, 123), die einem Prozessorkern (110; 120) der Prozessoreinheit zugewiesen sind, jeweils vorbestimmte Mengen einer ersten Ressource und einer zweiten Ressource des Prozessorkerns (110; 120) zugewiesen werden (201), wobei diese Prozesse (111, 112, 113, 114; 121, 122, 123) auf dem Prozessorkern (110; 120) unter Verbrauch der jeweils zugewiesenen Mengen der ersten Ressource und der zweiten Ressource ausgeführt werden (202, 205), wobei die Ausführung einzelner Prozesse (111, 112, 113, 114; 121, 122, 123) jeweils bei Eintreten eines vorbestimmten Ereignisses beendet wird (206), wobei, wenn die Ausführung eines Prozesses (111, 112, 113, 114; 121, 122, 123) bei Eintreten des vorbestimmten Ereignisses beendet wird und dieser Prozess (111, 112, 113, 114; 121, 122, 123) nicht vollständig die ihm zugewiesenen Mengen der ersten Ressource und/oder der zweiten Ressource verbraucht hat, die entsprechenden nicht verbrauchten Mengen der ersten Ressource bzw. der zweiten Ressource jeweils als dynamisch freigestellte Ressourcen (141, 142; 151, 152) des Prozessorkerns (110; 120) freigestellt werden (206), wobei, wenn allen Prozessen (111, 112, 113, 114; 121, 122, 123) jeweils keine Menge der ersten Ressource und/oder der zweiten Ressource mehr zugewiesen ist, wenigstens einem der Prozesse (111, 112, 113, 114; 121, 122, 123) jeweils eine bestimmte Menge der dynamisch freigestellten Ressourcen (141, 142; 151, 152) des Prozessorkerns (110; 120) zugewiesen wird (208) und dieser wenigstens eine der Prozesse (111, 112, 113, 114; 121, 122, 123) auf dem Prozessorkern (110; 120) unter Verbrauch der zugewiesenen dynamisch freigestellten Ressourcen des Prozessorkerns ausgeführt wird (209).Method for operating a computing unit (100) with a processor unit with at least one processor core (110, 120), wherein processes (111, 112, 113, 114; 121, 122, 123) to be executed are assigned (201) to the processor cores (110; 120) of the processor unit, wherein processes (111, 112, 113, 114; 121, 122, 123) assigned to a processor core (110; 120) of the processor unit are each assigned predetermined amounts of a first resource and a second resource of the processor core (110; 120) (201), these processes (111, 112, 113, 114; 121, 122, 123) being executed (202, 205) on the processor core (110; 120) using up the respectively allocated amounts of the first resource and the second resource, the execution individual processes (111, 112, 113, 114; 121, 122, 123) are terminated when a predetermined event occurs (206), wherein, if the execution of a process (111, 112, 113, 114; 121, 122, 123) is terminated when the predetermined event occurs and this process (111, 112, 113, 114; 121, 122, 123) does not complete the has consumed the quantities of the first resource and / or the second resource allocated to it, the corresponding unused quantities of the first resource or the second resource, respectively, as dynamically released resources (141, 142; 151, 152) of the processor core (110; 120) become (206), wherein, if all processes (111, 112, 113, 114; 121, 122, 123) are no longer assigned a quantity of the first resource and / or the second resource, at least one of the processes (111, 112, 113, 114; 121 , 122, 123) each a certain amount of the dynamically released resources (141, 142; 151, 152) of the processor core (110; 120) is assigned (208) and at least one of the processes (111, 112, 113, 114; 121) , 122, 123) is executed on the processor core (110; 120) using the allocated dynamically released resources of the processor core (209). Verfahren nach Anspruch 1, wobei, wenn den Prozessen (111, 112, 113, 114; 121, 122, 123), die dem Prozessorkern (110; 120) der Prozessoreinheit zugewiesen sind, jeweils die vorbestimmten Mengen der ersten Ressource und der zweiten Ressource des Prozessorkerns (110; 120) zugewiesen werden, Mengen der ersten Ressource und/oder der zweiten Ressource, die keinem Prozess zugewiesen werden, als statisch freigestellte Ressourcen freigestellt werden (201).Procedure according to Claim 1 , wherein when the processes (111, 112, 113, 114; 121, 122, 123) assigned to the processor core (110; 120) of the processor unit, the predetermined amounts of the first resource and the second resource of the processor core (110 ; 120), quantities of the first resource and / or the second resource that are not assigned to a process are released as statically released resources (201). Verfahren nach Anspruch 2, wobei, wenn die dynamisch freigestellten Ressourcen des Prozessorkerns (110; 120) vollständig verbraucht wurden, wenigstens einem der Prozesse (111, 112, 113, 114; 121, 122, 123) jeweils eine bestimmte Menge der statisch freigestellten Ressourcen zugewiesen wird (212) und dieser wenigstens eine der Prozesse (111, 112, 113, 114; 121, 122, 123) auf dem Prozessorkern (110; 120) unter Verbrauch der zugewiesenen statisch freigestellten Ressourcen des Prozessorkerns ausgeführt wird (213).Procedure according to Claim 2 wherein, when the dynamically released resources of the processor core (110; 120) have been completely used up, at least one of the processes (111, 112, 113, 114; 121, 122, 123) is assigned a specific amount of the statically released resources (212 ) and this at least one of the processes (111, 112, 113, 114; 121, 122, 123) is executed on the processor core (110; 120) using the allocated statically released resources of the processor core (213). Verfahren nach einem der vorstehenden Ansprüche, wobei, wenn den Prozessorkernen (110; 120) der Prozessoreinheit jeweils auszuführende Prozesse (111, 112, 113, 114; 121, 122, 123) zugewiesen werden, eine bestimmte Menge der ersten Ressource und/oder der zweiten Ressource der Prozessoreinheit als gemeinsam nutzbare, prozessorspezifische statisch freigestellte Ressourcen freigestellt wird (201).Method according to one of the preceding claims, wherein when the processor cores (110; 120) of the processor unit are assigned processes (111, 112, 113, 114; 121, 122, 123) to be executed, a specific amount of the first resource and / or the second resource of the processor unit is released as commonly usable, processor-specific statically released resources (201). Verfahren nach Anspruch 4, wobei, wenn die dynamisch freigestellten Ressourcen des Prozessorkerns (110; 120) vollständig verbraucht wurden und wenn ferner jeweils die erste Ressource und/oder die zweite Ressource der übrigen Prozessorkerne (110; 120) der Prozessoreinheit ebenfalls vollständig verbraucht wurden, wenigstens einem Prozess (111, 112, 113, 114; 121, 122, 123), der einem Prozessorkern (110; 120) der Prozessoreinheit zugewiesen ist, eine bestimmte Menge der prozessorspezifischen statisch freigestellten Ressourcen zugewiesen wird (212) und dieser wenigstens eine Prozess (111, 112, 113, 114; 121, 122, 123) auf dem jeweiligen Prozessorkern (110; 120) unter Verbrauch der zugewiesenen Menge prozessorspezifischer statisch freigestellter Ressourcen ausgeführt wird (213).Procedure according to Claim 4 wherein, if the dynamically released resources of the processor core (110; 120) have been completely used up and if furthermore the first resource and / or the second resource of the remaining processor cores (110; 120) of the processor unit have also been completely used up, at least one process ( 111, 112, 113, 114; 121, 122, 123), which is assigned to a processor core (110; 120) of the processor unit, a certain amount of the processor-specific statically released resources is assigned (212) and this at least one process (111, 112 , 113, 114; 121, 122, 123) is executed on the respective processor core (110; 120) using the allocated amount of processor-specific, statically released resources (213). Verfahren nach einem der vorstehenden Ansprüche, wobei in Abhängigkeit von einem vorgegebenen Auswahlkriterium bestimmt wird, welchem oder welchen der Prozesse (111, 112, 113, 114; 121, 122, 123) jeweils wie viel der dynamisch freigestellten Ressourcen des Prozessorkerns zugewiesen wird (204).Method according to one of the preceding claims, wherein it is determined as a function of a predetermined selection criterion which or which of the Processes (111, 112, 113, 114; 121, 122, 123) each how much of the dynamically released resources of the processor core is allocated (204). Verfahren nach Anspruch 6, wobei als das vorgegebenen Auswahlkriterium eine Priorität der einzelnen dem Prozessorkern (110; 120) zugewiesenen Prozesse (111, 112, 113, 114; 121, 122, 123) bewertet wird und/oder ein Rundlaufverfahren durchgeführt wird und/oder berücksichtigt wird, welche nicht verbrauchte Menge der ersten Ressource und/oder der zweiten Ressource der einzelnen Prozesse (111, 112, 113, 114; 121, 122, 123) jeweils als dynamisch freigestellte Ressourcen des Prozessorkerns freigestellt wurden.Procedure according to Claim 6 , wherein a priority of the individual processes (111, 112, 113, 114; 121, 122, 123) assigned to the processor core (110; 120) is evaluated as the predetermined selection criterion and / or a round-robin process is carried out and / or which Unused amount of the first resource and / or the second resource of the individual processes (111, 112, 113, 114; 121, 122, 123) were each released as dynamically released resources of the processor core. Verfahren nach einem der vorstehenden Ansprüche, wobei die Ausführung eines Prozesses (111, 112, 113, 114; 121, 122, 123) beendet wird, wenn als vorbestimmtes Ereignis der Prozess (111, 112, 113, 114; 121, 122, 123) die ihm zugewiesen Menge der ersten Ressource und/oder der zweiten Ressource vollständig verbraucht hat (206) und/oder ein anderer Prozess (111, 112, 113, 114; 121, 122, 123) mit einer höheren Priorität ausgeführt werden soll (206) und/oder der Prozess (111, 112, 113, 114; 121, 122, 123) vollständig ausgeführt wurde (206) und/oder ein vorgegebenes Zeitintervall abgelaufen ist (206).Method according to one of the preceding claims, wherein the execution of a process (111, 112, 113, 114; 121, 122, 123) is terminated if as a predetermined event the process (111, 112, 113, 114; 121, 122, 123) has completely consumed (206) and / or the amount of the first resource and / or the second resource allocated to it another process (111, 112, 113, 114; 121, 122, 123) is to be executed with a higher priority (206) and / or the process (111, 112, 113, 114; 121, 122, 123) has been completed (206) and / or a predetermined time interval has elapsed (206). Verfahren nach einem der vorstehenden Ansprüche, wobei nach Ablauf eines vorgegebenen Zeitintervalls die Ausführung aller Prozesse (111, 112, 113, 114; 121, 122, 123) auf dem Prozessorkern (110; 120) beendet wird und die zugewiesenen Mengen der ersten Ressource und der zweiten Ressource und die dynamisch freigestellten Ressourcen des Prozessorkerns (110; 120) zurückgesetzt werden (215).Method according to one of the preceding claims, wherein after a predetermined time interval the execution of all processes (111, 112, 113, 114; 121, 122, 123) on the processor core (110; 120) is ended and the allocated quantities of the first resource and the second resource and the dynamically released resources of the processor core (110; 120) are reset (215). Verfahren nach einem der vorstehenden Ansprüche, wobei die auszuführenden Prozesse (111, 112, 113, 114; 121, 122, 123) jeweils einen oder mehrere Tasks oder einen Container mit wenigstens einer Task umfassen.Method according to one of the preceding claims, wherein the processes (111, 112, 113, 114; 121, 122, 123) to be carried out each comprise one or more tasks or a container with at least one task. Verfahren nach einem der vorstehenden Ansprüche, wobei die erste Ressource eine Rechenkapazität des Prozessorkerns (110; 120) ist und wobei die zweite Ressource eine Speicherbandbreite des Prozessorkerns (110; 120) ist.Method according to one of the preceding claims, wherein the first resource is a computing capacity of the processor core (110; 120) and wherein the second resource is a memory bandwidth of the processor core (110; 120). Recheneinheit (100), die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.Computing unit (100) which is set up to carry out all method steps of a method according to one of the preceding claims. Computerprogramm, das eine Recheneinheit (100) dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 11 durchzuführen, wenn es auf der Recheneinheit (100) ausgeführt wird.Computer program that causes a computing unit (100) to perform all method steps of a method according to one of the Claims 1 to 11 to be carried out when it is executed on the computing unit (100). Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 13.Machine-readable storage medium with a computer program stored thereon Claim 13 .
DE102019219260.2A 2019-12-10 2019-12-10 Method for operating a computing unit Pending DE102019219260A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102019219260.2A DE102019219260A1 (en) 2019-12-10 2019-12-10 Method for operating a computing unit
CN202011428562.8A CN112948069A (en) 2019-12-10 2020-12-09 Method for operating a computing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019219260.2A DE102019219260A1 (en) 2019-12-10 2019-12-10 Method for operating a computing unit

Publications (1)

Publication Number Publication Date
DE102019219260A1 true DE102019219260A1 (en) 2021-06-10

Family

ID=75962253

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019219260.2A Pending DE102019219260A1 (en) 2019-12-10 2019-12-10 Method for operating a computing unit

Country Status (2)

Country Link
CN (1) CN112948069A (en)
DE (1) DE102019219260A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579305B (en) * 2022-02-28 2023-09-15 北京百度网讯科技有限公司 Resource control method, device, equipment and medium for function calculation

Also Published As

Publication number Publication date
CN112948069A (en) 2021-06-11

Similar Documents

Publication Publication Date Title
DE112010005096T5 (en) Methods and apparatus for evaluating resource capacity in a system of virtual containers
EP1831786B1 (en) Method for distributing computing time in a computer system
DE60307532T2 (en) Parallel process execution method and multiprocessor computer
DE112011100094T5 (en) Method and system for abstracting a non-functional requirement based use of virtual machines
DE102010038466A1 (en) Common Electronic Control Unit and in this Implemented Forwarding Program
DE102010043569A1 (en) Method and apparatus for scheduling tasks for controlling hardware devices
DE112006001011T5 (en) Expandable scheduling of messages on time-triggered buses
DE102018104188A1 (en) Combined Rendering and Calculation Resource Allocation Management System
DE102016203808A1 (en) Reduce virtual machine preemption in a virtualized environment
DE60125540T2 (en) METHOD AND DEVICE FOR A DRAIN PLANNER TO IMPLEMENT A LOG AGAINST TIME ESTIMATES FOR APPLICATION TO A DEVICE NOT CREATING ANY INTERRUPTIONS
DE102007051803A1 (en) Method and device for data processing
DE102006046717B4 (en) Dynamically migrating channels
DE102013108924A1 (en) A method of allocating network resources in an operation network for a selected environment
DE102013022564B4 (en) Maintaining the bandwidth quality of service of a hardware resource via a hardware meter
DE102019219260A1 (en) Method for operating a computing unit
DE102016221526A1 (en) Apparatus and method for processing a plurality of tasks
DE19983709B4 (en) Scheduling resource requests in a computer system
DE102017130552B3 (en) Method of data processing and programmable logic controller
WO2011120814A1 (en) Divided central data processing
DE102004011201B4 (en) Method for managing and monitoring the operation of multiple distributed in at least one communication network integrated hardware and / or software systems and system for performing the method
DE102020214951A1 (en) Method for dynamically allocating memory bandwidth
DE202016107027U1 (en) Modulation of processor core operations
EP2126700B1 (en) Control of the run time behavior of processes
DE102020205720A1 (en) Computer-implemented method and device for planning resources
DE102013217616B4 (en) Managing resources within a computing environment