Dynamic time partitioning of compute-communication chains

By dynamically partitioning the computing-communication chain, the scheduling controller dynamically allocates resources and optimizes the time partitioning scheme, solving the problems of low resource utilization and latency in existing technologies, improving system responsiveness and resource utilization, and ensuring that critical tasks are completed on time.

CN120641874APending Publication Date: 2025-09-12YINWANG INTELLIGENT TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380091798.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-26
Publication Date
2025-09-12

AI Technical Summary

Technical Problem

In computing resource management, existing technologies make it difficult to reduce the average end-to-end latency while ensuring the maximum end-to-end latency of key computing chains. In addition, traditional static time partitioning leads to low system resource utilization, affecting system responsiveness and efficiency.

Method used

Dynamic time partitioning of the computing-communication chain is adopted, resources are dynamically allocated through the scheduling controller to ensure the priority execution and flexible scheduling of the critical chain, dynamically reclaim unused resources, and optimize the time partitioning scheme to improve resource utilization.

Benefits of technology

It has achieved the goal of reducing the average delay of the critical chain without affecting safety and timing guarantees, improving system responsiveness and resource utilization, ensuring that critical tasks can be completed on time even in the worst case, and reducing the risk of system failure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120641874A_ABST
    Figure CN120641874A_ABST
Patent Text Reader

Abstract

A scheduling controller for receiving a scheduling indication of a current time partition (TPi, j) of a task and causing the task to execute on the computing resource at a start time. The scheduling controller determines that the task has been completed and, in response, determines whether there is a remaining time in the allocated time period. In the case that there is remaining time in the allocated time period, it is determined whether a next time partition (TPi, j + 1) in the chain indicates that time can be received, and if it is indicated that time can be received, it is indicated that the next time partition (TPi, j + 1) is marked as ready for scheduling. The scheduling controller determines whether there is a time partition belonging to a key chain indicating that it is ready, and if so, calls the scheduler belonging to the time partition of the key chain through the computing resources of the current time partition.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to the field of computing resource management and task scheduling in operating systems, and more particularly to a scheduling controller and a method for use therein, e.g., by dynamic time partitioning of computing-communication chains. Background Art

[0002] Typically, computing resource management through efficient task scheduling helps optimize performance and resource utilization. In modern computing environments, a large number of computing chains coexist and run on the same platform. These chains consist of a series of interconnected tasks or processes that together facilitate the operation of various applications and functions. However, during the execution of these tasks or processes, these computing chains will be subject to interference, which may be caused by the concurrent execution of other applications or processes on the central processing unit (CPU). The presence of interference will introduce a certain degree of unpredictability in the timing and execution of these computing chains, resulting in jitter in end-to-end latency. End-to-end latency is the total time taken from the start to the completion of a computing chain. Introducing jitter will have an adverse impact on the performance of the system, resulting in potential delays and timing anomalies.

[0003] Traditional approaches to mitigating the impact of interference and controlling jitter in critical computation chains utilize time partitioning techniques. Time partitioning is used to allocate computational resources and time periods for task execution, dictating the computational resources used for a specific task and the allocated time period with a start and end time. In other words, time partitioning involves assigning specific time intervals to the execution of critical chains, ensuring that they receive the necessary resources to meet their timing requirements. Furthermore, setting maximum end-to-end latency for these critical chains is crucial for ensuring safety performance and preventing overflows and potential system failures. However, an inherent challenge lies in the dynamic nature of some computation chains, particularly data-dependent ones. Because the execution time of these data-dependent chains can vary depending on the input data, configuring these chains solely for worst-case scenarios can degrade average system performance. Consequently, a trade-off arises between optimizing the system for worst-case scenarios to ensure safety and striving for faster average chain performance to enhance the system's responsiveness to changing environmental conditions. Furthermore, while static time partitioning can guarantee timing properties, it can also lead to significant idle time due to factors such as the data-dependent runtime of the functions, resulting in reduced system utilization. This results in longer reaction times to sensor or data inputs, affecting the system's responsiveness and overall efficiency, which is undesirable. Therefore, there is a dual technical problem: how to ensure the maximum end-to-end latency of critical chains and reduce the average end-to-end latency of these chains, and how to reduce the average latency by speeding up the chain execution as efficiently as possible.

[0004] Therefore, based on the above discussion, there is a need to overcome the above-mentioned shortcomings associated with traditional scheduling systems. Summary of the Invention

[0005] The present invention provides a scheduling controller and a method for use with the scheduling controller, for example, by dynamic time partitioning of compute-communication chains. The present invention provides a solution to the existing problem of improving system resource utilization, specifically the dual technical problems of ensuring maximum end-to-end latency for critical chains and reducing the average end-to-end latency of these chains, and reducing the average latency by accelerating chain execution as efficiently as possible. The present invention aims to provide a solution that at least partially overcomes the problems encountered in the prior art and provides an improved scheduling controller and an improved method for use with the scheduling controller, which utilizes dynamic time partitioning of compute-communication chains to efficiently free up more computing resources by implementing an optimized time partitioning scheme. A compute-communication chain generally refers to a series of interconnected tasks or processes involving both computational and communication operations. Such chains are ubiquitous in various computing scenarios, including real-time, distributed, and embedded systems. Unlike traditional fixed time partitioning schemes, dynamic time partitioning provides greater flexibility and responsiveness in allocating resources to the chain, thereby addressing the challenges posed by system interference and execution time variations.

[0006] One or more objects of the present invention are achieved by the technical solutions provided in the accompanying independent claims. Advantageous implementations of the present invention are further defined in the dependent claims.

[0007] In one aspect, the present invention provides a scheduling controller. The scheduling controller is configured to receive a scheduling indication for a current time partition (TPi, j) of a task. The time partition indicates a computing resource and an allocated time period, the allocated time period having a start time and an end time, for executing the task on the computing resource. The scheduling controller is further configured to cause the task to be executed on the computing resource at the start time. The scheduling controller is further configured to determine whether the task has been completed and, in response, to determine whether there is any remaining time in the allocated time period. Furthermore, if there is any remaining time in the allocated time period, the scheduling controller is configured to determine whether the next time partition (TPi, j+1) in the chain is indicated as being able to receive time, and if so, to indicate that the next time partition (TPi, j+1) is ready for scheduling. The scheduling controller is further configured to determine whether there is a time partition belonging to a critical chain that is indicated as being ready, and if so, to call the scheduler of the TP belonging to the critical chain through the computing resource of the current time partition.

[0008] The scheduling controller ensures that task execution remains within specified end-to-end latency limits. Predicting the limits is crucial for real-time systems, where tasks must complete within known timeframes to meet timing requirements and avoid unpredictable delays. By dynamically allocating time and prioritizing critical chains, the scheduling controller accelerates the execution of tasks that rely heavily on communication. Optimizing critical chain execution can reduce their end-to-end latency and improve their performance. Advantageously, optimized critical chain execution enables devices such as automobiles and robots to respond more quickly to changes in the external environment. Faster responsiveness is crucial for real-time applications, where timely responses to environmental stimuli are crucial for safe and efficient operation. The scheduling controller can over-allocate time for different critical tasks, providing a safety margin. Over-allocation safety system design ensures that critical tasks have sufficient time to complete even in worst-case scenarios, reducing the risk of missed deadlines and system failures. Furthermore, to address potential underutilization caused by over-allocation, the scheduling controller dynamically reclaims any unused computing resources. The adaptive resource reclamation provided by the scheduling controller optimizes resource allocation while maintaining sufficient time allotment for critical tasks. The disclosed scheduling controller has applications in automotive, industrial automation, robotics, and cloud computing. It optimizes the computation-communication chain, helping to achieve high performance in safety-critical systems without compromising safety and timing. Benefits include improved responsiveness, reduced latency, and efficient resource utilization.

[0009] In one implementation, the scheduling controller is further configured to determine whether there is any remaining time in the allocated time period by determining whether there is another task to be executed in the current time partition, wherein if there is no other task to be executed in the current time partition, it is determined that there is remaining time.

[0010] By accurately identifying the available time in the current time partition, the scheduling controller can promptly initiate the execution of another task in the current time partition. The responsiveness of promptly initiating the execution of another task in the current time partition is crucial in real-time systems, enabling timely responses to changing conditions or events in the environment.

[0011] In another implementation, the scheduling controller is further configured to determine that there is another task to be executed in the current time partition, and in response, determine that there is no remaining time, and call the scheduler of the current time partition (TPi,j).

[0012] The scheduling controller can determine the presence of another task and, therefore, the remaining time in the current time partition, thereby achieving optimized task scheduling. These tasks are efficiently allocated computing resources, and time is not wasted executing tasks that cannot be accommodated in the current time partition. Furthermore, by invoking the scheduler for the current time partition, the scheduling controller reduces contention for computing resources, resulting in smoother task execution and less likelihood of delays or interference.

[0013] In another implementation, the scheduling controller is also used to: if it is determined that there is no time partition indicated as ready belonging to the critical chain, then determine whether there is a time partition indicated as ready that does not belong to any critical chain; if so, call the scheduler of the time partition through the computing resources of the current time partition.

[0014] Advantageously, the scheduling controller can identify ready time partitions and prioritize them, ensuring that tasks do not wait unnecessarily in the queue. Tasks with available time partitions are scheduled for execution in a timely manner, thereby reducing waiting time and improving task throughput.

[0015] In another implementation, if it is determined that there is no time partition indicated as ready, the scheduling controller is further configured to call the scheduler for the best effort task using computing resources of the current time partition.

[0016] By invoking the scheduler for best-effort tasks, the scheduling system ensures that computing resources remain active and participate in task execution. Continuous processing of best-effort tasks helps avoid idle resources and improves overall system efficiency.

[0017] In another implementation, the scheduling controller is further configured to determine that the next time partition (TPi,j+1) in the chain is indicated as being able to receive time by determining that the next time partition (TPi,j+1) is not limited to execution at a specific instance.

[0018] The scheduling controller can determine whether the next time partition is not restricted to execution at a specific instance (e.g., start time, computing resources, etc.), which helps to achieve flexible time partitioning. Time partitions that are not strictly bound to specific instances can adapt to changing task requirements and scheduling constraints, thereby enabling more flexible task execution.

[0019] In another implementation, the scheduling controller is also used to allocate a time period to the next time partition, wherein the start time of the allocated time period of the next time partition is before the end time of the allocated time period of the current time partition (TPi,j).

[0020] By allocating time periods to the next time partition based on the current time partition, optimized time partitioning can be achieved. By starting the next time partition before the end time of the current partition, the scheduling system can minimize potential idle time between consecutive tasks, thereby improving resource utilization and overall efficiency. The scheduling controller's method of allocating time periods with overlapping start and end times ensures smooth transitions between consecutive time partitions. This reduces scheduling overhead and potential delays between task switches, thereby promoting continuous task execution.

[0021] In another aspect, the present invention provides a method for a scheduling controller. The method includes receiving a scheduling indication for a current time partition (TPi, j) of a task, wherein the time partition indicates a computing resource and an allocated time period, the allocated time period having a start time and an end time, for executing the task on the computing resource. The method also includes causing the task to be executed on the computing resource at the start time. The method also includes determining that the task has been completed and, in response, determining whether there is any remaining time in the allocated time period. In addition, if it is determined that there is any remaining time in the allocated time period, the method includes determining that the next time partition (TPi, j+1) in the chain is indicated as being able to receive time, and if so, indicating that the next time partition (TPi, j+1) is ready for scheduling. The method also includes determining whether there is a time partition belonging to a critical chain that is indicated as being ready, and if so, calling the scheduler of the TP belonging to the critical chain through the computing resource of the current time partition.

[0022] The method achieves all the advantages and technical effects of the scheduling controller of the present invention.

[0023] It should be understood that all the above implementations can be combined together.

[0024] It should be noted that all devices, elements, circuits, units and modules described in this application can be implemented in software elements or hardware elements or any type of combination thereof. All steps performed by the various entities described in this application and the functions to be performed by the various entities described are intended to refer to the corresponding entities for performing the corresponding steps and functions. Even if in the description of the following specific embodiments, the specific functions or steps to be performed by the external entity are not reflected in the description of the specific detailed elements of the entity that performs the specific steps or functions, it should be clear to the technician that these methods and functions can be implemented in the corresponding software or hardware elements, or in any combination of such elements. It will be understood that the features of the present invention are easy to combine in various combinations without departing from the scope of the present invention as defined by the appended claims.

[0025] Other aspects, advantages, features and objects of the present invention will become apparent from the accompanying drawings and detailed description of illustrative implementations when read in conjunction with the following appended claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] The foregoing summary of the invention and the following detailed description of illustrative embodiments may be better understood when read in conjunction with the accompanying drawings. For purposes of illustrating the present invention, exemplary configurations of the invention are shown in the accompanying drawings. However, the present invention is not limited to the specific methods and means disclosed herein. Furthermore, those skilled in the art will appreciate that the drawings are not drawn to scale. Where possible, identical elements are represented by identical numerals.

[0027] The following describes the embodiments of the present invention by way of example only and in conjunction with the following drawings.

[0028] Figure 1 A block diagram of a scheduling system including a scheduling system controller provided in an embodiment of the present invention;

[0029] Figure 2 Flowcharts of methods for scheduling controllers provided for different embodiments of the present invention;

[0030] Figure 3A and Figure 3B A diagram illustrating the working mechanism of a scheduling system provided by an embodiment of the present invention;

[0031] Figure 4 An example diagram of dynamic time partitioning of a computing-communication chain is provided for another embodiment of the present invention.

[0032] In the accompanying drawings, underlined numbers are used to indicate the item in which the underlined number appears or the item adjacent to the underlined number. Non-underlined numbers are associated with the item identified by the line linking the non-underlined number to the item. When a number is not underlined but has an associated arrow, the non-underlined number identifies the general item to which the arrow points. DETAILED DESCRIPTION

[0033] The following detailed description describes embodiments of the invention and ways in which these embodiments may be implemented. Although some embodiments of the invention have been disclosed, those skilled in the art will recognize that other embodiments may be implemented to implement or practice the invention.

[0034] Figure 1 This is a block diagram of a scheduling controller provided by an embodiment of the present invention. Figure 1 , a block diagram of a scheduling system 100 implemented for dynamic time partitioning of a computing-communication chain is shown. The scheduling system 100 includes a scheduling server 110 connected to computing resources 112 through a communication network 114.

[0035] The scheduling server 110 corresponds to a system including a computer or device that implements dynamic time partitioning of a computing-communication chain. The scheduling server 110 is used to dynamically allocate time partitions for computing and communication tasks in a parallel computing environment. Examples of implementations of the scheduling server include parallel processing clusters, cloud-based scheduling services, real-time operating systems (RTOS), distributed computing platforms, parallel database management systems, edge computing devices, autonomous systems, telecommunications networks, simulation modeling systems, high-performance computing facilities, etc. The scheduling server 110 includes a scheduling controller 102, a scheduler 104, a memory 106, and a network interface card 108.

[0036] The scheduling controller 102 corresponds to a processor for executing program instructions of the scheduling system 100. Implementation examples of the scheduling controller 102 may include, but are not limited to, a central data processing device, a microprocessor, a microcontroller, a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set computing (RISC) processor, a very long instruction word (VLIW) processor, a state machine, and other processors or control circuits.

[0037] Scheduler 104 corresponds to the component or module within scheduling server 110 responsible for allocating and executing scheduled tasks on computing resources 112. In one implementation, scheduler 104 is configured within computing resources 112 to allocate and execute scheduled tasks on computing resources 112. Scheduler 104 includes a scheduling algorithm for allocating scheduled tasks to computing resources 112 over a period of time. Scheduling algorithms are developed to implement scheduling policies. Scheduling policies correspond to a specific set of rules within a scheduling algorithm, such as thread priorities in priority-based scheduling algorithms, ordered order of time partitions in time-partitioned scheduling algorithms, and nice values ​​in the Linux CFS scheduler.

[0038] In some examples, memory 106 may be described as a computer-readable storage medium. Memory 106 may be described as volatile memory. Examples of volatile memory include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), and other forms of volatile memory known in the art. Memory 106 includes a set of program instructions for execution by scheduling controller 102.

[0039] The network interface card 108 is used to connect the scheduling server 110 to the communication network 114 to communicate with the computing resources 112. Examples of implementations of the network interface card 108 may include, but are not limited to, a network interface card (NIC) and a wireless network card.

[0040] Computing resources 112 are a computer device or a group of computer devices capable of performing computational and processing tasks within scheduling system 100. Computing resources 112 can be implemented as individual computing units or as larger systems, such as servers, clusters, distributed computing nodes, or cloud computing instances. Computing resources 112 can be part of a local computing environment or geographically distributed across a network.

[0041] In operation, the scheduling controller 102 is configured to receive a scheduling indication for a current time partition (TPi,j) of a task. A time partition represents a computing resource and an allocated time period, each having a start time and an end time, for executing a task on the computing resource 112. In one example, TPi,j refers to a time partition running on CPU i in time slot j. A task is a unit of work or computing that needs to be performed in the scheduling system 100. These tasks can be individual computing operations, data processing operations, or any other discrete unit of work that can be executed independently or in parallel with other tasks. In one embodiment, the scheduling controller 102 can receive a scheduling indication from the computing resource 112.

[0042] In addition, when the scheduling controller 102 receives the scheduling indication, the scheduling controller 102 is configured to cause the task to be executed on the computing resource 112 at the start time. The scheduling controller 102 is also configured to determine whether the task has been completed. If the task has been completed, the scheduling controller 102 further determines whether there is time remaining in the allocated time period. In one embodiment, to determine whether there is time remaining in the allocated time period, the scheduling controller 102 is configured to determine whether there is another task to be executed in the current time partition. Therefore, if there are no other tasks to be executed in the current time partition, it is determined that there is time remaining in the allocated time period. In such an embodiment, if it is determined that there is another task to be executed in the current time partition, the scheduling controller 102 is configured to determine that there is no time remaining and call the scheduler 104 of the current time partition (TPi, j).

[0043] Furthermore, if the scheduling controller 102 has determined that there is time remaining in the allocated time period, the scheduling controller 102 is configured to determine whether the next time partition (TPi,j+1) in the chain is indicated as being able to receive time. In one example, TPi,j+1 refers to the time partition running on CPU i in time slot j+1. In one embodiment, the chain refers to a collection of nodes connected by communication links, which are acyclic and form a directed acyclic graph (DAG). The chain can have multiple inputs and one output. In such an embodiment, the communication link can include data transmission between nodes, input to a node (e.g., from a sensor), and output from a node (e.g., to an actuator). Communication can be service-oriented (e.g., DDS) or asynchronous / synchronous function calls, shared memory, etc. Furthermore, a node corresponds to a collection of tasks / subjects (e.g., operating system processes, threads) that execute a function. A node can be a single function / thread or multiple functions / threads. These functions can be from the same function domain or from different function domains. In another embodiment, to determine that the next time partition (TPi, j+1) in the chain is indicated as being able to receive the time, the scheduling controller 102 is configured to determine that the next time partition (TPi, j+1) is not limited to executing at a specific instance. In such an embodiment, the specific instance indicates a specific start time.

[0044] In addition, if it is determined that the next time partition (TPi, j+1) in the chain is indicated as being able to receive time, the scheduling controller 102 is used to indicate that the next time partition (TPi, j+1) is ready for scheduling. In one embodiment, when the next time partition (TPi, j+1) is ready for scheduling, the scheduling controller 102 is further used to allocate a time period for the next time partition (TPi, j+1). The time period is allocated to the next time partition (TPi, j+1) in such a manner that the start time of the allocated time period of the next time partition (TPi, j+1) is before the end time of the allocated time period of the current time partition (TPi, j). In such an embodiment, the end time of the allocated time period of the next time partition (TPi, j+1) is maintained. In such an embodiment, the end time of the allocated time period of the next time partition (TPi, j+1) is set to the allocated start time of the time period of the next time partition plus the allocated duration.

[0045] In addition, the scheduling controller 102 is used to determine whether there are time partitions belonging to a critical chain that are indicated as ready. In one embodiment, a critical chain can refer to a specific chain classified as critical by the system integrator, such as a chain that implements automatic emergency braking. The scheduling system 100 can have multiple critical chains. Critical chains can have different criticalities, which are defined / managed by the system integrator. In such an embodiment, the system integrator corresponds to a human role or tool, placing all functions, nodes, and software on a software or hardware platform to form an integrated system. The system integrator also checks / defines the scheduling strategy of the scheduler 104.

[0046] Furthermore, if it is determined that there is a time partition belonging to the critical chain that is indicated as ready, the scheduling controller 102 is configured to call the scheduler 104 of the time partition belonging to the critical chain through the computing resources 112 of the current time partition.

[0047] In one embodiment, if it is determined that there are no time partitions belonging to a critical chain indicated as ready, the scheduling controller 102 is configured to determine whether there are time partitions that are not part of any critical chain and are indicated as ready. Furthermore, if there are time partitions that are not part of any critical chain and are indicated as ready, the scheduling controller 102 is configured to call the scheduler 104 for such time partitions via the computing resource 112 of the current time partition. In such an embodiment, if it is determined that there are no time partitions that are not part of any critical chain and are indicated as ready, the scheduling controller 102 is configured to call the scheduler 104 for the best-effort task via the computing resource 112 of the current time partition. Best-effort time partitioning is performed by the scheduler 104, and the best-effort task is assigned to the computing resource 112. Best-effort time partitioning refers to a time partition that gives time to the computing resource 112 when no other tasks are using the computing resource 112.

[0048] The scheduling system 100 incorporates multiple mechanisms to improve scheduling efficiency and responsiveness. First, the scheduling system 100 includes an automated process for identifying critical tasks and their individual elements that can be pre-scheduled based on critical chain definitions. The identification of critical tasks enables the scheduling system 100 to prioritize critical tasks and optimize their execution timelines. Furthermore, the scheduling system 100 implements a dynamic mechanism to identify idle time slots within the schedule and select appropriate time partitions from the critical chain to receive the idle time slots. Selecting an appropriate time partition from the critical chain to receive the idle time slots allows for flexible scheduling adjustments and ensures that critical tasks receive the necessary resources to meet timing requirements. Furthermore, the scheduling system 100 employs a dynamic mechanism to identify idle time slots and assign them to any time partition that is part of an active time partitioning scheme. The allocation of any time partition that is part of an active time partitioning scheme enhances the scheduling system's ability to adapt to changing workload conditions and efficiently allocate idle time slots, thereby improving overall task execution. Furthermore, the scheduling system 100 includes a mechanism to dynamically identify idle time slots and assign them to any best-effort time partition, regardless of criticality. The mechanism of allocating idle time to any best-effort time partition optimizes resource utilization and enhances the responsiveness of the system, thereby helping best-effort tasks benefit from available idle time and improving the overall performance of the system.

[0049] Figure 2 Flowchart of the method for scheduling a controller provided by an embodiment of the present invention. Figure 2 , a method 200 for executing program instructions in the dispatch controller 102 is shown. The method 200 includes steps 202 to 212.

[0050] In step 202, method 200 includes receiving a scheduling indication of a current time partition (TPi,j) of a task. A time partition indicates a computing resource and an allocated time period, having a start time and an end time, for executing the task on computing resource 112. In one example, TPi,j refers to a time partition running on CPU i in time slot j.

[0051] In step 204, method 200 includes causing the task to be executed on computing resource 112 at the start time. Furthermore, in step 206, method 200 includes determining whether the task has been completed. If the task has been completed, scheduling controller 102 further determines whether there is time remaining in the allocated time period. In one embodiment, to determine whether there is time remaining in the allocated time period, method 200 includes determining whether there is another task to be executed in the current time partition. Therefore, if there are no other tasks to be executed in the current time partition, then it is determined that there is time remaining in the allocated time period.

[0052] In step 208, method 200 includes determining whether the next time partition (TPi, j+1) in the chain is indicated as being able to receive time, and if so, indicating that the next time partition (TPi, j+1) is ready for scheduling. In one embodiment, if the next time partition (TPi, j+1) is ready for scheduling, the scheduling controller 102 is further configured to allocate a time period for the next time partition (TPi, j+1). The time period is allocated to the next time partition (TPi, j+1) in such a manner that the start time of the allocated time period of the next time partition (TPi, j+1) is before the end time of the allocated time period of the current time partition (TPi, j). In such an embodiment, the end time of the allocated time period of the next time partition (TPi, j+1) is maintained. In such an embodiment, the end time of the allocated time period of the next time partition (TPi, j+1) is set to the allocated start time of the time period of the next time partition plus the allocated duration.

[0053] In step 210 , the method 200 includes determining whether there is a time partition belonging to the critical chain indicated as ready. In addition, in step 212 , the method 200 includes calling the scheduler 104 of the time partition belonging to the critical chain via the computing resource 112 of the current time partition.

[0054] Method 200 ensures that the end-to-end latency and jitter of task execution are within specified limits. Predictability within specified limits is crucial for real-time systems, where tasks must complete within known timeframes to meet timing requirements and avoid unpredictable delays. By dynamically allocating time and prioritizing critical chains, method 200 accelerates the execution of tasks that rely heavily on communication. Optimizing critical chain execution reduces overall execution time and improves critical chain performance. Advantageously, optimized critical chain execution enables devices such as automobiles and robots to respond more quickly to changes in the external environment. Faster responsiveness is crucial for real-time applications, where timely responses to environmental stimuli are crucial for safe and efficient operation. Method 200 can overprovision time for different critical tasks, providing a safety margin. Overprovisioning for safe system design ensures that critical tasks have sufficient time to complete, even in worst-case scenarios, thereby reducing the risk of missed deadlines and system failures. Furthermore, to address potential underutilization caused by overprovisioning, method 200 dynamically reclaims any unused computing resources. The adaptability provided by the dynamic resource reclamation of method 200 optimizes resource allocation while maintaining adequate time allotment for critical tasks.

[0055] Steps 202 to 212 are merely illustrative, and other alternatives may be provided in which one or more steps are added, one or more steps are deleted, or one or more steps are provided in a different order without departing from the scope of the claims herein.

[0056] A computer program including instructions for performing all steps of method 200 is provided. The computer program is executed on scheduling system 100. The computer program is implemented as an algorithm, embedded in software stored in a non-transitory computer-readable storage medium, the software having program instructions stored thereon, the program instructions being executable by one or more processors in a computer system to perform method 200. The non-transitory computer-readable storage module may include, but is not limited to, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above devices. Examples of computer-readable storage media include, but are not limited to, electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), read-only memory (ROM), hard disk drive (HDD), flash memory, secure digital (SD) card, solid-state drive (SSD), computer-readable storage medium, and / or CPU cache.

[0057] Figure 3A and Figure 3B This is a diagram illustrating the working mechanism of the scheduling system provided by an embodiment of the present invention. Figure 3A , a block diagram 300A illustrating the operation of the scheduling system 100 for dynamic time partitioning of compute-communication chains.

[0058] In operation 302, a system for deploying the dispatch controller 102 is implemented. System implementation corresponds to a phase in the development lifecycle of the dispatch system 100 during which the actual construction and deployment of the dispatch system 100 occurs. During system implementation, software, hardware, or technical solutions are developed, configured, and integrated to provide the required functionality. System implementation ensures that the dispatch system 100 performs its intended tasks and meets defined specifications and requirements.

[0059] In operation 304, system profiling is performed. System profiling is performed to gather detailed information and insights about the behavior, performance, and resource utilization of the computer system or software application implemented in operation 302. System profiling involves systematically collecting and analyzing data related to various system components, processes, and interactions to understand how the scheduling system 100 operates under different conditions.

[0060] In operation 306 , end-to-end timing requirements are provided by the system integrator. The end-to-end timing requirements refer to specific timing constraints and performance criteria for a specific communication link, which are transmitted or specified by the system integrator to the scheduling system 100 .

[0061] In operation 308, a critical chain is marked by the system integrator. The system integrator identifies and designates a particular chain of tasks or activities in the scheduling system 100 as a "critical" chain. A critical chain is considered to have a significant impact on the overall performance, timing, or functionality of the scheduling system 100.

[0062] In operation 310, a timing framework is introduced along with the scheduling system 100. The timing framework provides a systematic approach to various timing aspects, such as task scheduling, time partitioning, end-to-end latency, and jitter control. The timing framework sets the guidelines and mechanisms for coordinating the execution of tasks and managing critical chains to meet specified timing goals. The scheduling algorithm in the scheduler 104 is automatically generated based on the scheduling system's timing framework. The timing framework can be represented as a DAG annotated with timing attributes.

[0063] The program instructions of the scheduling controller 102 are executed in two phases, namely a development phase 320 and a runtime phase 322. The development phase 320 and the runtime phase 322 are executed in the scheduling system 100 with the assistance of the scheduling controller 102. The development phase 320 includes three operations 312, 314 and 316.

[0064] In operation 312 , the scheduling controller 102 identifies in which of the communication chains time lending / time partitioning may be applied.

[0065] Furthermore, in operation 314, the scheduling controller 102 identifies and marks nodes / tasks that can receive time earlier as recipients, i.e., nodes / tasks that can be scheduled earlier without violating their timing properties. Nodes / tasks may or may not belong to a critical chain. In one embodiment, for example, when a time partition must be executed over a supercycle, but the recipient can be executed earlier, the system integrator can also manually mark a partition in the time partitioning scheme as a recipient. Best-effort scheduling does not guarantee that the required time will be given within one or N supercycles.

[0066] In operation 316, a strategy is generated for the runtime algorithm to be executed in the runtime phase 322. The strategy consists of a number of time partitions, time slots in which the time partitions should be activated, assignment of nodes / tasks, and communication links with the time partitions.

[0067] refer to Figure 3B , a block diagram 300B illustrating operations at a runtime stage 322 of the scheduling controller 102 for dynamic time partitioning of a compute-communication chain is shown.

[0068] In operation 324 , the scheduling controller 102 is configured to check whether the time slot of the current time partition (TPi,j) ends.

[0069] If the result of operation 324 is yes, then in operation 326 , the scheduling controller 102 is operable to check whether the current iteration of the time partitioning scheme is complete (ie, the time from the start of the iteration is equal to the constant time length of the time partitioning scheme with all configured time partitions).

[0070] If the result of operation 326 is yes, then in operation 328 , the scheduling controller 102 is operable to start a new iteration of the time partitioning scheme and mark all data independent receiver time partitions as ready.

[0071] If the result of operation 326 is no, the scheduling controller 102 selects 104 the next time partition according to the time partitioning scheme. In other words, the scheduling controller 102 is configured to call the scheduler from TPi,j+1 via the computing resource 112 of TPi,j+1.

[0072] If the result of operation 324 is negative, then in operation 334, the scheduling controller 102 is configured to check whether TPi,j is idle. Specifically, it checks whether all jobs in the current TPi,j have been completed, as indicated by the idle predicate. The idle predicate can be implemented to indicate that there are no running / runnable jobs in the current time partition, or that all assigned jobs in the current time partition are not runnable.

[0073] If the result of operation 334 is no, then in operation 336 , the scheduling controller 102 is used to continue the current time partition TPi,j and call the scheduler 104 of the current time partition TPi,j through the computing resource 112 of the current time partition TPi,j.

[0074] If the result of operation 334 is yes, then in operation 338, the scheduling controller 102 is configured to perform time loan bookkeeping and, if TPi,j belongs to the critical chain and TPi,j+1 can be scheduled earlier (i.e., it is marked as a recipient), mark TPi,j+1 as ready for earlier scheduling. In addition, if TPi,j is subject to time loan / time partitioning, the scheduling controller 102 is configured to set the ready flag to false, otherwise TPi,j may be in the current time partition scheme again in the future. The time partition may have received a time acceleration before the scheduled time. Therefore, the scheduling controller 102 is configured to clear the ready flag so that the main body of the communication chain will not be reactivated by the idle scheduler.

[0075] After operation 338, in operation 340, the scheduling controller 102 is configured to call the idle scheduler. The idle scheduler allocates the unallocated computing resources of TPi,j to other TPs from the global pool. If the TP's ready flag is true, or the TP is a permanent member of the global pool (e.g., a TP without any priority constraints and only needs to receive limited processing time), the TP will be in the global pool.

[0076] After operation 340 , in operation 342 , the scheduling controller 102 is configured to check whether there is a time partition in the global pool whose ready flag in the critical chain is set.

[0077] If the result of operation 340 is yes, then in operation 344 , the scheduling controller 102 is operable to start the TP belonging to the critical chain via the computing resource 112 of TPi,j.

[0078] If the result of operation 340 is no, then in operation 346 , the scheduling controller 102 is configured to check whether there is a TP with a ready flag in the global pool.

[0079] If the result of operation 346 is yes, then in operation 348 , the scheduling controller 102 is operable to call the scheduler 104 via the computing resource 112 of TPi,j and start the TP in the global pool.

[0080] If the result of operation 346 is negative, then in operation 350 , the scheduling controller 102 is configured to call the scheduler 104 for the best effort task via the computing resource 112 of TPi,j.

[0081] In one implementation, in operations 342 to 350 , if there are multiple TPs, any scheduling strategy may be applied, such as first-in-first-out, last-in-first-out, priority scheduling, etc.

[0082] The scheduling controller 102 divides the time partitions into dimensions based on the worst-case execution time (WCET) to ensure the maximum end-to-end (E2E) latency guarantee. In addition, the scheduling controller 102 dynamically allocates idle time to prepared nodes in the critical chain, thereby speeding up the execution speed of the chain and reducing the average E2E latency. The working mechanism of the scheduling controller 102 can speed up the chain so that the vehicle, robot or system can respond faster to new sensor data. In addition, as the speed of the chain increases, the computing resources 112 can be used for best-effort tasks, thereby improving the responsiveness of the system. Therefore, the combination of time partition size optimization, idle allocation and resource management enhances the real-time capability of the system, reduces latency, and ensures optimal utilization of computing resources, thereby improving the responsiveness of critical applications.

[0083] Figure 4 An example diagram of dynamic time partitioning for a computing-communication chain is provided for another embodiment of the present invention. Figure 4 , shows an exemplary diagram 400 of dynamic time partitioning of a compute-communication chain in the scheduling system 100.

[0084] Static table 402 shows time partitions for multiple tasks. These tasks include LidarROS, LidarAgent, and Chassis, which are assigned time partitions in static table 402. Furthermore, dynamic time partition table 404 shows a communication chain instance 410, which includes multiple tasks, including Perception, Front Fusion, Hawkeye Tracking, Prediction, MOP, and Ctrl. By dynamically allocating time partitions to the multiple tasks in communication chain instance 410, idle time 416 of computing resources is available for running best-effort tasks.

[0085] Furthermore, it is shown that standard time partitioning reserves resource (e.g., processor) time based on the worst-case execution time 414 of the tasks in the communication chain instance 410. However, dynamic time partitioning reserves resource (e.g., processor) time based on the actual execution time 412 of the tasks in the communication chain instance 410. The actual execution time 412 of the tasks is significantly less than the worst-case execution time 414 of the tasks in the communication chain instance 410, so dynamic time partitioning is able to start the next task in the dynamic time partition table 404 earlier, thereby speeding up the communication chain instance 410.

[0086] In addition, resource reservations for tasks with real-time requirements 406 are shown. Tasks with real-time requirements can be called at any time. Tasks with real-time requirements 406 can be prioritized using any of the scheduling strategies, such as first-in-first-out, last-in-first-out, and priority scheduling. Examples of tasks with real-time requirements 406 can include, but are not limited to, communication and lifecycle management tasks that affect critical chains, etc. In addition, resource reservations for best-effort tasks 408 are shown. Best-effort tasks 408 can be scheduled using non-real-time strategies (e.g., the Linux Completely Fair Scheduler (CFS)).

[0087] Without departing from the scope of the invention as defined by the appended claims, the embodiments of the present invention described above may be modified. Expressions such as "including", "comprising", "combining", "having", "being" used to describe and advocate the present invention should be considered to be interpreted in a non-exclusive manner, i.e., allowing items, parts or elements that are not clearly described to appear. References to the singular should also be interpreted as being related to the plural. The word "exemplary" used herein means "as an example, instance or illustration". Any embodiment described as "exemplary" is not necessarily interpreted as taking precedence over or being superior to other embodiments and / or not including features combined with other embodiments. The word "optionally" used herein means "provided in some embodiments and not provided in other embodiments". It should be understood that certain features of the present invention described in the context of a separate embodiment for the sake of clarity may also be provided in a single embodiment by combination. On the contrary, for the sake of brevity of description, the various features of the present invention described in the context of a single embodiment may also be provided individually or in any suitable combination or as any suitable other embodiment of the present invention.

Claims

1. A scheduling controller (102), characterized in that: Used for: receiving a scheduling indication of a current time partition (TPi,j) of a task, wherein the time partition indicates a computing resource (112) and an allocated time period, the allocated time period having a start time and an end time, for executing the task on the computing resource (112), causing said task to be executed on said computing resource (112) at said start time, Determine that the task has been completed, and in response, determine whether there is time remaining in the allocated time period, and if so, Determine whether the next time partition (TPi,j+1) in the chain is indicated as being able to receive time. If so, It indicates that the next time partition (TPi,j+1) is ready for scheduling; Determine if there is a time partition belonging to the critical chain that is indicated as ready, and if so, The scheduler of the time partition belonging to the critical chain is called by the computing resources of the current time partition (104).

2. The dispatch controller (102) according to claim 1, characterized in that The scheduling controller (102) is further configured to: Whether there is time remaining in the allocated time period is determined by determining whether there is another task to be executed in the current time partition, wherein it is determined that there is time remaining if there is no other task to be executed in the current time partition.

3. The dispatch controller (102) according to claim 2, characterized in that The scheduling controller (102) is further configured to determine that there is another task to be executed in the current time partition, and in response, determine that there is no remaining time, and call the scheduler (104) of the current time partition (TPi,j).

4. The dispatch controller (102) according to any one of the preceding claims, characterized in that The scheduling controller (102) is further configured to, if it is determined that there is no time partition indicated as ready belonging to a critical chain, determine whether there is a time partition indicated as ready that does not belong to any critical chain, and if so, The scheduler (104) of the time partition is called by the computing resource (112) of the current time partition.

5. The dispatch controller (102) according to claim 4, characterized in that The scheduling controller (102) is further configured to, if it is determined that there is no time partition indicated as being ready, The scheduler (104) is called for a best effort task by a computing resource (112) of the current time partition.

6. The dispatch controller (102) according to any one of the preceding claims, characterized in that The scheduling controller (102) is further configured to determine that the next time partition (TPi,j+1) in the chain is indicated as being able to receive time by determining that the next time partition (TPi,j+1) is not limited to execution at a specific instance.

7. The dispatch controller (102) according to claim 6, characterized in that The instance indicates a specific start time.

8. The dispatch controller (102) according to any one of the preceding claims, characterized in that The scheduling controller (102) is further configured to allocate a time period to the next time partition, wherein a start time of the allocated time period of the next time partition is before an end time of the allocated time period of the current time partition (TPi,j).

9. The dispatch controller (102) according to claim 8, characterized in that An end time of the allocated time period of the next time partition is maintained.

10. The dispatch controller (102) according to claim 9, characterized in that The end time of the allocated time period of the next time partition is set to the allocated start time of the time period of the next time partition plus the allocated duration.

11. A method (200) for scheduling a controller (102), characterized in that The method (200) comprises: receiving a scheduling indication of a current time partition (TPi,j) of a task, wherein the time partition indicates a computing resource (112) and an allocated time period, the allocated time period having a start time and an end time, for executing the task on the computing resource (112), causing said task to be executed on said computing resource (112) at said start time, Determine that the task has been completed, and in response, determine whether there is time remaining in the allocated time period, and if so, Determining whether the next time partition (TPi, j+1) in the chain is indicated as being able to receive time, and if so, indicating that the next time partition (TPi, j+1) is ready for scheduling; Determine if there is a time partition belonging to the critical chain that is indicated as ready, and if so, The scheduler (104) of the TP belonging to the critical chain is called by the computing resource (112) of the current time partition.

12. A computer program product, characterized in that The system comprises program instructions for performing the method (200) according to claim 11 when the program instructions are executed by one or more processors in the scheduling system (100).