DE102019219260A1 - Method for operating a computing unit - Google Patents
Method for operating a computing unit Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
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
Das Steuergerät
Die Prozesse
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
Insbesondere überprüfen die Ressourcen-Manager
Mit dem Bezugszeichen
Entsprechend ist auch für den zweiten Prozessorkern
Insbesondere sind diese einzelnen Ressourcenpools
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
Insbesondere überwacht dieser globale Speicherbandbreiten-Manager
Die Ressourcen-Manager
In Schritt
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
In Schritt
Nachfolgend wird beispielhaft die Ausführung der Prozesse des ersten Prozessorkerns
Zunächst wird in Schritt
Der entsprechend ausgewählte Prozess, beispielsweise der Prozess
Der Prozess
Ebenso kann der Prozess
Ferner kann der Prozess
Solange dieses Regulierungsintervall jedoch nicht abgelaufen ist, wird nach dem Ende des Prozesses
Wenn nun in Schritt
Zu diesem Zweck bestimmt der Ressourcen-Manager
Der ausgewählte Prozess wird daraufhin in Schritt
Wenn nun in Schritt
Zu diesem Zweck wird in Schritt
Insbesondere nur, wenn dies der Fall ist, also nur wenn alle Prozessorkerne
Für den Fall, dass alle Speicherbandbreitenbudgets der einzelnen Prozessorkerne
In Schritt
Der entsprechend ausgewählte Prozess wird in Schritt
Sollte hingegen in Schritt
Claims (14)
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)
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 |
-
2019
- 2019-12-10 DE DE102019219260.2A patent/DE102019219260A1/en active Pending
-
2020
- 2020-12-09 CN CN202011428562.8A patent/CN112948069A/en active Pending
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 | |
DE102010043569B4 (en) | Method and apparatus for scheduling tasks for controlling hardware devices | |
DE112013000486T5 (en) | Instruction uncertainty by instruction uncertainty for multi-threaded processors | |
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 | |
DE112020004661T5 (en) | Determining an optimal number of threads per core in a multi-core processor complex | |
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 | |
DE102020214951A1 (en) | Method for dynamically allocating memory bandwidth | |
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 | |
DE102006046717A1 (en) | Dynamically migrating channels | |
DE102019219260A1 (en) | Method for operating a computing unit | |
DE3650158T2 (en) | Special purpose processor for taking over many operating system functions in a large data processing system. | |
DE19983709B4 (en) | Scheduling resource requests in a computer system | |
DE102010003512A1 (en) | Shared central processing of data | |
DE102020205720A1 (en) | Computer-implemented method and device for planning resources | |
DE102011083468A1 (en) | Circuit arrangement for scheduling in a data processing | |
DE102004011201A1 (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 | |
EP3901780A1 (en) | Digital circuit and method for configuring at least one configurable hardware component | |
EP2126700B1 (en) | Control of the run time behavior of processes | |
DE60037972T2 (en) | Method and device for offering resources in an Internet device |