COMPUTER-IMPLEMENTED TASK PLANNING PROCEDURE

DE602023009672T2Active Publication Date: 2025-12-17AIRBUS (SAS)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602023009672
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-02-01
Publication Date
2025-12-17
Estimated Expiration
2043-02-01

AI Technical Summary

Technical Problem

Existing task scheduling methods in heterogeneous computational environments with different computing units, such as CPUs, FPGAs, and ICs, fail to optimize overall computation time and energy consumption efficiently, particularly in high-load cryptographic functions.

Method used

A computer-implemented task scheduling method that associates task quality classes with computing time limits and utility values, using decision variables to allocate tasks optimally among available hardware components, solving a maximization problem to maximize utility while adhering to time constraints, and employing a bipartite matching algorithm to determine efficient task scheduling.

Benefits of technology

Improves task throughput and reduces energy consumption by effectively utilizing the computing power of diverse hardware components, especially in cryptographic functions, enhancing performance and security.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The invention relates to a computer-implemented task scheduling method. The invention further relates to a task scheduling device, a data processing device, an air vehicle, a computer program, and a computer-readable data carrier.

[0002] A computer may have a set of different computing units, i.e., central processing units (CPUs), field-programmable gate arrays (FPGAs) or integrated circuits (ICs), or a combination of the aforementioned, that all can realize, for example, the same cryptographic functions, e.g., signing a piece of data, verifying a signature or secure key exchange. In certain situations, the computer may receive a high number of requests to execute such functions.

[0003] Multicore processing considers the task of distributing computational tasks on multiple cores. The key questions here are when and on which core to start a computing thread, task or subtask, such that a specific utility (e.g., the overall computation time, energy) is optimized. Hardware acceleration deals with the design of specialized hardware that realizes a sub-function required to execute a specific task. The goals here are to identify the functions that would benefit most from hardware acceleration and to implement and integrate them efficiently into the overall computing architecture.

[0004] It is knowm from patent publication US2018 095571 a multicore processor in which the requirements of the tasks to be executed are matched with the capabilities of the computing units so that the energy consumption is minimized.

[0005] The object of the invention is to provide an improved task scheduling method, in particular for a heterogeneous computational environment with different computing units.

[0006] To achieve this object, the invention provides a computer-implemented task scheduling method according to claim 1. A task scheduling device, a data processing device, an air vehicle, a computer program, and a computer-readable data carrier are subject-matter of the parallel claim.

[0007] Advantageous embodiments of the invention are subject-matter of the dependent claims.

[0008] In one aspect, the invention provides a computer-implemented task scheduling method for use in a data processing device with a plurality of computational hardware components and for scheduling a set R[t] of computational tasks at a given time t ∈ T act , T act being a set of discrete time intervals each of length Δt, among a set A[t] of said computational hardware components that are available at the given time t ∈ T act and configured for executing any one of the computational tasks, each computational task being associated with a corresponding task quality class c ∈ C, C being a set of task quality classes, each task quality class c ∈ C and each computational hardware component being associated with a corresponding processing time value T proc in terms of Δt, the associated processing time value T proc being indicative of a duration for processing any one computational task of the corresponding class c ∈ C by means of the corresponding computational hardware component, each task quality class c ∈ C and each computational hardware component being further associated with a corresponding utility value U proc , the associated utility value U proc being indicative of a cost or added value that is induced by processing any one computational task of the corresponding class c ∈ C by means of the corresponding computational hardware component, the method comprising: a) associating each task quality class c ∈ C with a corresponding computing time limit value D limit in terms of Δt; b) at the given time t ∈ T act , defining for each computational task r ∈ R[t] and each hardware component a ∈ A[t], a corresponding decision variable x ra [t] ∈ {0, 1}, wherein x ra = 1, if said computational task r ∈ R[t] is allocated to computational hardware component a ∈ A[t], and x ra = 0 otherwise, under the constraint that each task r ∈ R[t] is allocatable to at most one computational hardware component a ∈ A[t] and each computational hardware component a ∈ A[t] is to assigned at most one computational task r ∈ R[t]; c) at the given time t ∈ T act , whereas c r ∈ C being the associated task quality class c of r ∈ R[t], determining decision variable data x[t] by solving a maximization problem including the associated utility value U proc of c r ∈ C and a ∈ A[t], for all r ∈ R[t] and a ∈ A[t], under the condition: ∑ a ∈ A t x ra t T c r a + 1 − ∑ a ∈ A t x ra t D c r + 1 ≤ D c r , for all r ∈ R t , with x[t] ∈ F[t], F[t] being the set of all decision variable data satisfying the constraint in step b) at the given time t ∈ T act , T cra being the associated processing time T proc of c r ∈ C and a ∈ A[t], and D cr being the associated computing time limit value D limit of c r ∈ C; and d) at the given time t ∈ T act , scheduling the set R[t] of computational tasks among the set A[t] of computational hardware components based on the determined decision variable data x[t].

[0009] Preferably, step c) further comprises: c1) at the given time t ∈ T act , solving the maximization problem according to: max x t ∑ r ∈ R t ∑ a ∈ A t x ra t U c r a , with U cra being the associated utility value U proc of c r ∈ C and a ∈ A[t].

[0010] Preferably, step c) further comprises: c2) at the given time t ∈ T act , solving a bipartite matching problem as maximization problem.

[0011] Preferably, step c) further comprises: c3) at the given time t ∈ T act , solving the bipartite matching problem according to: max x t ∑ r ∈ R t ∑ a ∈ A t x ra t U c r a − V c r t T c r a − D c r − 1 , with U cra being the associated utility value U proc of c r ∈ C and a ∈ A[t], T cra being the associated processing time T proc of c r ∈ C and a ∈ A[t], D cr being the associated computing time limit value D limit of c r ∈ C, and V cr [t] being a virtual queue variable of c r ∈ C in terms of per Δt.

[0012] Preferably, step c) further comprises: c4) at the given time t ∈ T act , iteratively computing for each class c r ∈ C the associated virtual queue variable V cr [t] in terms of per Δt according to: V c r t = max x t V c r t − Δ t − λ D c r − ∑ a ∈ A t x ra t − Δ t T c r a − 1 − ∑ a ∈ A t x ra D c r + 1 , 0 , wherein λ ≥ 0 corresponds to a tuning parameter of the iteration.

[0013] Preferably, the associated computing time limit value D limit corresponds to an average duration for processing any one computational task of the corresponding class c ∈ C by means of each of the computational hardware components in the data processing device.

[0014] Preferably, the associated utility value U proc corresponds to an associated priority value P proc indicative of a priority that has every computational task of the corresponding class c ∈ C on the corresponding computational hardware component.

[0015] Preferably, the associated utility value U proc corresponds to an associated priority value P proc indicative of a priority that has every computational task of the corresponding class c ∈ C on each of the computational hardware components in the data processing device.

[0016] Preferably, each computational task includes a cryptographic computation function.

[0017] In another aspect, the invention provides a task scheduling device comprising means for carrying out the method of any of the preceding embodiments.

[0018] In another aspect, the invention provides a data processing device, comprising the task scheduling device and a plurality of computational hardware components.

[0019] Preferably, the plurality of computational hardware components include one or more of a CPU, a GPU, a FPGA, an IC, and / or the like.

[0020] Preferably, at least two of the plurality of computational hardware components have for at least one task quality class c ∈ C differing corresponding processing time values T proc and / or differing corresponding processing time values U proc .

[0021] In another aspect, the invention provides an air vehicle, in particular an aircraft, comprising the task scheduling device and / or the data processing device.

[0022] In another aspect, the invention provides a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method of any of the preceding embodiments.

[0023] In another aspect, the invention provides a computer-readable data carrier having stored thereon the computer program.

[0024] Embodiments of the invention preferably have the following advantages and effects: Compared to traditional multicore processors, hardware accelerators (FPGAs or ICs) can have several advantages: they can significantly improve performance and energy consumption for specific tasks. They have the potential to implement a pipelining structure, which allows a higher task throughput. Also, they can provide a trusted implementation of a cryptographic routine, as they are not corrupted as easily as software. On the other hand, data transfer to accelerators often forms a bottleneck that may slow down their use, neglecting or even countering the benefit of hardware implementation. An advantage of preferred embodiments of the invention is to make use of the available computing power by taking into account the properties of the different implementation options of CPU, FPGA and IC. By assigning the tasks to the correct piece of hardware at the correct point in time, the overall task throughput and / or energy consumption can be reduced.

[0025] Preferred embodiments of the invention may comprise a computational block that interacts with all associated CPUs, FPGAs and ICs to identify their computation status, a decision routine to decide on which device the next task will be executed, and an interface to transfer the task to the related piece of hardware.

[0026] Preferred embodiments of the invention may be considered in a task scheduler for cryptographic functions. Preferred embodiments can be used in the field of "post-quantum" (i.e., quantum safe) cryptography, but can as well be extended to classical cryptography. As such, preferred embodiments of the invention may be related to the field of hardware-software codesign, hardware acceleration and multi-core computing, but in the field of cryptography. Preferably, embodiments of the invention are applicable to any product that has a hardware acceleration for cryptographic functions. Preferred embodiments of the invention target cryptographic functions in the electronic bay of an aircraft or in the cloud of a ground station counterpart. They could be implemented, e.g., in an aircraft data platform.

[0027] Embodiments of the invention are now explained in more detail with reference to the accompanying drawings of which Fig. 1shows an embodiment of a data processing device; Fig. 2shows an embodiment of a computer-implemented task scheduling method; Fig. 3shows an embodiment of an aeronautic system; Fig. 4shows a server of the system of Fig. 3, Fig. 5shows a process of symmetric key exchange; Fig. 6shows a process of signature generation and verification; Fig. 7shows a process with a task scheduling device; and Fig. 8shows another process with the task scheduling device.

[0028] Fig. 1 shows an embodiment of a data processing device 10.

[0029] The data processing device 10 includes a plurality of computational hardware components 12. The computational hardware components 12 are processing units and may include one or more of a central processing unit 28 (CPU), a graphics processing unit (GPU), a field-programmable gate array 30 (FPGA), an integrated circuit 32 (IC), and / or any other kind of processing unit.

[0030] Each computational hardware component 12 is configured for executing a computational task 14. The computational task 14 can include, for example, a cryptographic computation function.

[0031] Each computational tasks 14 can be assigned a task quality class c ∈ C, C being a set of task quality classes. Each task quality class c ∈ C and each computational hardware component 12 is associated with a corresponding processing time value T proc in terms of a discrete time interval of length Δt. The associated processing time value T proc is indicative of a duration for processing any one computational task 14 of the corresponding class c ∈ C by means of the corresponding computational hardware component 12.

[0032] Each task quality class c ∈ C and each computational hardware component 12 is further associated with a corresponding utility value U proc . The associated utility value U proc may be indicative of a cost or added value that is induced by processing any one computational task 14 of the corresponding class c ∈ C by means of the corresponding computational hardware component 12. For example, U proc = -E may indicate that assigning any one computational task 14 of the corresponding class c ∈ C to the corresponding computational hardware component 12 induces an energy cost of E > 0. Likewise, a value U proc = 1 may indicate that assigning any one computational task 14 of the corresponding class c ∈ C to the corresponding computational hardware component 12 adds a value of finishing off one computational task 14.

[0033] Alternatively or additionally, the associated utility value U proc may correspond to an associated priority value P proc indicative of a priority that has every computational task 14 of the corresponding class c ∈ C on the corresponding computational hardware component 12.

[0034] Alternatively or additionally, the associated utility value U proc may correspond to an associated priority value P proc indicative of a priority that has every computational task 14 of the corresponding class c ∈ C on each of the computational hardware components 12 in the data processing device 10.

[0035] In the present example, the data processing device 10 is configured as a heterogeneous environment in the sense that the corresponding processing time value T proc for one computational task 14 of a given task quality class c ∈ C may differ between the computational hardware components 12 and / or the corresponding utility value U proc for one computational task 14 of a given task quality class c ∈ C may differ between the computational hardware components 12.

[0036] The data processing device 10 further includes a task scheduling device 16. The task scheduling device 16 is configured for scheduling a set R[t] of computational tasks 14 at a given time t ∈ T act , T act being a set of the discrete time intervals Δt, among a set A[t] of said computational hardware components 12 each available at the given time t ∈ T act . In Fig. 1, t = 5Δt as example.

[0037] Since the associated processing time value T proc and / or the associated utility value U proc for a computational task r ∈ R[t], with c r ∈ C being the associated task quality class c of r ∈ R[t], may differ between the available computational hardware components a ∈ A[t], the question is how to schedule the set R[t] of computational tasks 14 at the given time t ∈ T act among the set A[t] of computational hardware components 12.

[0038] Fig. 2 shows an embodiment of a computer-implemented task scheduling method.

[0039] In a step S11, the method includes: Associating each task quality class c ∈ C with a corresponding computing time limit value D limit in terms of Δt.

[0040] The corresponding computing time limit value D limit preferably is a positive number. D limit may correspond to an average duration for processing any one computational task 14 of the corresponding class c ∈ C by means of each of the computational hardware components 12 in the data processing device 10. D limit may, for example, indicate that it is acceptable to process any one computational task 14 of the corresponding class c ∈ C by means of a computational hardware component 12 when T proc ≤ D limit . D limit can also be regarded as a target value which is set externally. A high value of D limit may allow to process more computational tasks 14 of different corresponding classes c ∈ C by means of a given computational hardware component 12, whereas a low value D limit limits the computational tasks 14 which are allowed to be processed by a given computational hardware component 12, to less corresponding classes c ∈ C.

[0041] In a step S12, the method includes: At the given time t ∈ T act , defining for each computational task r ∈ R[t] and each hardware component a ∈ A[t], a corresponding decision variable x ra [t] ∈ {0, 1}, wherein x ra = 1, if said computational task r ∈ R[t] is allocated to computational hardware component a ∈ A[t], and x ra = 0 otherwise, under the constraint that each task r ∈ R[t] is allocatable to at most one computational hardware component a ∈ A[t] and each computational hardware component a ∈ A[t] is to assigned at most one computational task r ∈ R[t].

[0042] In a step S13, the method includes: At the given time t ∈ T act , whereas c r ∈ C being the associated task quality class c of r ∈ R[t], determining decision variable data x[t] by solving a maximization problem including the associated utility value U proc of c r ∈ C and a ∈ A[t], for all r ∈ R[t] and a ∈ A[t], under the condition: ∑ a ∈ A t x ra t T c r a + 1 − ∑ a ∈ A t x ra t D c r + 1 ≤ D c r , for all r ∈ R t , with x[t] ∈ F[t], F[t] being the set of all decision variable data satisfying the constraint in step S12 at the given time t ∈ T act , T cra being the associated processing time T proc of c r ∈ C and a ∈ A[t], and D cr being the associated computing time limit value D limit of c r ∈ C.

[0043] The trivial solution of x ra [t] = 0 for all a ∈ A[t] is excluded by contradiction D cr + 1 ≤ D cr for a given r ∈ R[t]. This guarantees that at least one computational task r ∈ R[t] is allocated, even if each computational task r ∈ R[t] induced a cost.

[0044] In a step S14, the method may include as a first possible solution: At the given time t ∈ T act , solving the maximization problem according to: max x t ∑ r ∈ R t ∑ a ∈ A t x ra t U c r a , with U cra being the associated utility value U proc of c r ∈ C and a ∈ A[t].

[0045] In a step S15, the method may include as a second possible solution: At the given time t ∈ T act , solving the maximization problem according to: max x t ∑ r ∈ R t ∑ a ∈ A t x ra t U c r a − V c r t T c r a − D c r − 1 , with U cra being the associated utility value U proc of c r ∈ C and a ∈ A[t], T cra being the associated processing time T proc of c r ∈ C and a ∈ A[t], D cr being the associated computing time limit value D limit of c r ∈ C, and V cr [t] being a virtual queue variable of c r ∈ C in terms of per Δt.

[0046] In this form, the maximization problem represents a bipartite matching or assignment problem. The bipartite matching or assignment problem is a combinatorial optimization problem that may be solved, for example, by the Hungarian algorithm.

[0047] In step S15, V cr [t] is iteratively computed for each class c r ∈ C according to: V c r t = max x t V c r t − Δ t − λ D c r − ∑ a ∈ A t x ra t − Δ t T c r a − 1 − ∑ a ∈ A t x ra D c r + 1 , 0 , wherein λ ≥ 0 corresponds to a tuning parameter of the iteration. The virtual queue variable V cr [t] is set to be a non-negative value. As a possible starting value V cr [0] = 0 may be selected.

[0048] In a step S16, the method includes: At the given time t ∈ T act , scheduling the set R[t] of computational tasks 14 among the set A[t] of computational hardware components 12 based on the determined decision variable data x[t].

[0049] The invention also comprises the task scheduling device 16 comprising means for carrying out the task scheduling method. The invention further comprises the data processing device 10, comprising such task scheduling device 16 and the plurality of computational hardware components 12. The invention further comprises an air vehicle, in particular an aircraft 18, comprising the task scheduling device 16 and / or the data processing device 10. The invention further comprises a computer program (not shown) comprising instructions which, when the program is executed by a computer, cause the computer to carry out the task scheduling method. The invention further comprises a computer-readable data carrier (not shown) having stored thereon the computer program.

[0050] Preferred embodiments of the invention can be summarized as follows: Communication links are becoming an integral part of aeronautic systems. An example that is implemented or envisioned in multiple contexts (commercial airspace as well as urban airspace) is the data upload to a cloud, as shown in Fig. 3. Here, multiple aircrafts 18, or in general air vehicles (AVs), upload telemetry or status updates 20 to a cloud server 22. On this server 22, data is processed and either fetched by end users 24 via an interaction 26 or re-distributed to the AVs. To avoid misuse, the communication links need to be secured cryptographically, to provide confidentiality, integrity and / or authentication. To do so, a public key infrastructure (PKI) based on asymmetric cryptography is often used. PKIs involve different procedures for key exchange and signature generation / verification. These procedures require the execution of computational tasks that may run on general purpose CPUs 28 or on specific hardware, such as FPGAs 30 or ICs 32. In some places, for example in the cloud 22, a high number of connections are established, which leads to a high number of times that the cryptographic functions need to be executed. To deal with this load efficiently, a multi-core and multi-accelerator setup is targeted.

[0051] The targeted system comprises a set of hardware components 12 as shown in Fig. 4, namely one or multiple CPUs 28, one or multiple FPGAs 30 and / or one or multiple ICs 32. Each component 12 is reachable via a communication interface 34, e.g. a bus system, that can be used to transfer data and commands to it. Also, each component 12 has associated a piece of memory 36 to which it writes its output or status. The memory 36 may be either physically or logically associated with it. Finally, there is a scheduler 16, i.e., a control routine that distributes cryptographic tasks 14 to the different components 12.

[0052] It is assumed that each of the hardware components 12 has an implementation for a subset of the following cryptographic functions: keygen - creates a pair of public and secret key, sign - signs a specific piece of data, verify - verifies the signature of a signed piece of data, encaps - encapsulates a shared secret for a key exchange mechanism, decaps - decapsulates a shared secret for a key exchange mechanism.

[0053] The functions can be combined to perform tasks 14 related to PKIs, e.g., symmetric key exchange, certificate generation and verification, etc. For example, the process of symmetric key exchange happens in the fashion shown in Fig. 5, while signature generation and verification happens as shown in Fig. 6, with pk being a public key, sk a secret key, m a message, sig a signature, and c a ciphertext in these figures.

[0054] The scheduler 16 can interact with the hardware components 12, e.g., via a bus, and can issue the execution of different commands 14. The results are then fed back into the memory 36 associated with the component 12, as shown in Fig. 7.

[0055] Depending on the exact command, the INPUT and OUTPUT parts change: CommandINPUTOUTPUTkeygen- / -Public KeySecret KeyReturn CodeencapsPublic KeyCiphertextShared SecretReturn CodedecapsCiphertextShare SecretSecret KeyReturn CodesignMessageSignatureSecret KeyReturn CodeverifyMessageReturn CodeSignaturePublic Key

[0056] Note that in particular realizations, additional parameters might be fed in or out, such as the length of the exchanged data fields. Also, in specific realizations, both input and output may contain an extra ID field that identifies the communication peer to which the command is associated.

[0057] When a thread 38 on the computer tries to execute a command, it passes the command 14 and input to the scheduler 16 as shown in Fig. 8. The scheduler 16 treats the command 14 and input as "request", that it holds in an internal data structure. All requests are processed in an order that is determined by an internal scheduling routine 40. The routine 40 decides which of the requests is passed to the cryptographic function next, and to which CPU 28, FPGA 30 or IC 32 exactly it is passed. For example, the scheduling routine 40 can implement a first-in first-out queue, a priority queueing system or similar. Once a request has been processed by the cryptographic function, the output is fed back to the originating thread 38, which continues its intended operation.

[0058] Among all possible scheduling routines, two specific scheduling classes shall be mentioned in particular, namely strict priority scheduling and a utility optimizing scheduler with virtual queues.

[0059] Consider that time is grouped into discrete intervals t ∈ {1,2,3, ...} and assume that at each interval, A[t] = {1,2,3, ...} is the set of available function instances (the FPGAs, ICs or CPUs that would accept a command) and R[t] = {1,2,3, ... } is the set of pending requests (the pending commands). Each request is part of a quality class c r ∈ C. For each request r ∈ R[t] and instance a ∈ A[t], the time required to transfer the associated command and data, execute the function and return the output is given by T ra . Each class and instance has associated a utility value U ca that determines either the "cost" or "added value" that is induced by assigning a task of class c to it. For example, U ca := -E ca would indicate that assigning a task of class c to instance a induces an energy cost of E ca . Likewise, a value U ca := 1 would induce that assigning a task of class c to instance a adds the value of finishing off one task. At each time instance t, there is a decision variable x ra E {0,1}, which is one if request r is allocated to instance a and zero otherwise. To be valid, the decision vector x must satisfy a set of constraints, namely that each request can be assigned to at most one function instance and that each function instance cannot have more than one request assigned. For the sake of brevity, these constraints are written as x ∈ F, where F is the set of valid ("feasible") allocations. The two schedulers then work in the following manner: 1) Strict priority scheduler: Here, the utility is a strict priority value per class, i.e., U ca = P c ∀a, and the goal is to optimize the mathematical problem max x ∑ r ∈ R t ∑ a ∈ A t x ra P c r s.t. x ∈ F, which is solved by sequentially assigning the requests with highest priority first to their function of choice, then the ones with the second highest priority to the remaining ones, and so forth. 2) Virtual Queue scheduler: Here, the goal is to maximize the long-term average of the problem max x ∑ r ∈ R t ∑ a ∈ A t x ra U c r a s . t . ∑ a ∈ A t x ra T c r a + 1 − ∑ a ∈ A t x ra D c r + 1 ≤ D c r ∀ r , x ∈ F . This is done by associating a virtual queue variable V c per class. After each allocation, the queue variables are updated by V cr := max{V cr - λ(D cr - Σ a∈A[t] x ra T cra - (1 - Σ a∈A[t] x ra )(D cr + 1)), 0}, for a given λ ≥ 0 that may be used to fine-tune the scheduler. In each time instant, the scheduler then solves the problem max x ∑ r ∈ R t ∑ a ∈ A t x ra U c r a − V c r T c r a − D c r − 1 s.t. x ∈ F. This problem is a bipartite matching problem that may be solved with known methods, e.g., with the Hungarian method. List of reference signs:

[0060] 10data processing device 12computational hardware component 14computational task 16task scheduling device 18aircraft 20telemetry or status update 22server 24end user 26interaction 28CPU 30FPGA 32IC 34interface 36memory 38thread 40routine tgiven time R[t]set of computational tasks A[t]set of computational hardware components T act set of discrete time intervals each of length Δt Cset of task quality classes T proc processing time value U proc utility value D limit computing time limit x ra decision variable xdecision variable data V c virtual queue variable λtuning parameter P proc priority value

Claims

1. A computer-implemented task scheduling method for use in a data processing device (10) with a plurality of computational hardware components (12) and for scheduling a set R[t] of computational tasks (14) at a given time t ∈ Tact, Tact being a set of discrete time intervals each of length Δt, among a set A[t] of said computational hardware components (12) that are available at the given time t ∈ Tact and configured for executing any one of the computational tasks (14), each computational task (14) being associated with a corresponding task quality class c ∈ C, C being a set of task quality classes, each task quality class c ∈ C and each computational hardware component (12) being associated with a corresponding processing time value Tproc in terms of Δt, the associated processing time value Tproc being indicative of a duration for processing any one computational task (14) of the corresponding class c ∈ C by means of the corresponding computational hardware component (12), each task quality class c ∈ C and each computational hardware component (12) being further associated with a corresponding utility value Uproc, the associated utility value Uproc being indicative of a cost or added value that is induced by processing any one computational task (14) of the corresponding class c ∈ C by means of the corresponding computational hardware component (12), the method comprising: a) associating each task quality class c ∈ C with a corresponding computing time limit value Dlimit in terms of Δt; b) at the given time t ∈ Tact, defining for each computational task r ∈ R[t] and each hardware component a ∈ A[t], a corresponding decision variable xra[t] ∈ {0, 1}, wherein xra = 1, if said computational task r ∈ R[t] is allocated to computational hardware component a ∈ A[t], and xra = 0 otherwise, under the constraint that each task r ∈ R[t] is allocatable to at most one computational hardware component a ∈ A[t] and each computational hardware component a ∈ A[t] is to assigned at most one computational task r ∈ R[t]; c) at the given time t ∈ Tact, whereas cr ∈ C being the associated task quality class c of r ∈ R[t], determining decision variable data x[t] by solving a maximization problem including the associated utility value Uproc of cr ∈ C and a ∈ A[t], for all r ∈ R[t] and a ∈ A[t], under the condition: ∑ a ∈ A t x ra t T c r a + 1 − ∑ a ∈ A t x ra t D c r + 1 ≤ D c r , for all r ∈ R t , with x[t] ∈ F[t], F[t] being the set of all decision variable data satisfying the constraint in step b) at the given time t ∈ Tact, Tcra being the associated processing time Tproc of cr ∈ C and a ∈ A[t], and Dcr being the associated computing time limit value Dlimit of cr ∈ C; and d) at the given time t ∈ Tact, scheduling the set R[t] of computational tasks (14) among the set A[t] of computational hardware components (12) based on the determined decision variable data x[t].

2. The method according to claim 1, characterized in that step c) further comprises: c1) at the given time t ∈ Tact, solving the maximization problem according to: max x t ∑ r ∈ R t ∑ a ∈ A t x ra t U c r a , with Ucra being the associated utility value Uproc of cr ∈ C and a ∈ A[t].

3. The method according to any of the preceding claims, characterized in that step c) further comprises: c2) at the given time t ∈ Tact, solving a bipartite matching problem.

4. The method according to claim 3, characterized in that step c) further comprises: c3) at the given time t ∈ Tact, solving the bipartite matching problem according to: max x t ∑ r ∈ R t ∑ a ∈ A t x ra t U c r a − V c r t T c r a − D c r − 1 , with Ucra being the associated utility value Uproc of cr ∈ C and a ∈ A[t], Tcra being the associated processing time Tproc of cr ∈ C and a ∈ A[t], Dcr being the associated computing time limit value Dlimit of cr ∈ C, and Vcr[t] being a virtual queue variable of cr ∈ C in terms of per Δt.

5. The method according to claim 4, characterized in that step c) further comprises: c4) at the given time t ∈ Tact, iteratively computing for each class cr ∈ C the associated virtual queue variable Vcr[t] in terms of per Δt according to: V c r t = max x t V c r t − Δ t − λ D c r − ∑ a ∈ A t x ra t − Δ t T c r a − 1 − ∑ a ∈ A t x ra D c r + 1 , 0 , wherein λ ≥ 0 corresponds to a tuning parameter of the iteration.

6. The method according to any of the preceding claims, characterized in that the associated computing time limit value Dlimit corresponds to an average duration for processing any one computational task (14) of the corresponding class c ∈ C by means of each of the computational hardware components (12) in the data processing device (10).

7. The method according to any of the preceding claims, characterized in that the associated utility value Uproc corresponds to an associated priority value Pproc indicative of a priority that has every computational task (14) of the corresponding class c ∈ C on the corresponding computational hardware component (12) and / or in that the associated utility value Uproc corresponds to an associated priority value Pproc indicative of a priority that has every computational task (14) of the corresponding class c ∈ C on each of the computational hardware components (12) in the data processing device (10).

8. The method according to any of the preceding claims, characterized in that each computational task (14) includes a cryptographic computation function.

9. A task scheduling device (16) comprising means configured to carry out the method of any of the preceding claims.

10. A data processing device (10), comprising the task scheduling device (16) of claim 9 and a plurality of computational hardware components (12).

11. The data processing device (10) of claim 10, characterized in that the plurality of computational hardware components include one or more of a CPU (28), a GPU, a FPGA (30), an IC (32), and / or the like.

12. The data processing device (10) of claim 11, characterized in that at least two of the plurality of computational hardware components (12) have for at least one task quality class c ∈ C differing corresponding processing time values Tproc and / or differing corresponding processing time values Uproc.

13. An air vehicle, in particular an aircraft (18), comprising the task scheduling device (16) of claim 9 and / or the data processing device (10) of claim 10 or 11.

14. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method of any of the claims 1 to 8.

15. A computer-readable data carrier having stored thereon the computer program of claim 14.