Dynamic time partitioning for computation-communication chains

The scheduling controller employs dynamic time partitioning to address the challenge of ensuring maximum end-to-end latency for critical chains while reducing average latency, achieving improved system responsiveness and resource utilization.

WO2025065274A1PCT designated stage expired Publication Date: 2025-04-03YINWANG INTELLIGENT TECHNOLOGIES CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2023/121720
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-26
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

Existing scheduling systems face challenges in guaranteeing maximum end-to-end latency for critical computational chains while reducing average end-to-end latency, especially due to interferences and varying execution times in data-dependent chains.

Method used

The implementation of a scheduling controller that uses dynamic time partitioning for computation-communication chains, allowing for flexible resource allocation and prioritization of critical chains to ensure timely execution and reduce latency.

Benefits of technology

This approach effectively bounds end-to-end latency and jitter, enhances system responsiveness, and optimizes resource utilization by dynamically reallocating resources and prioritizing critical tasks, thereby improving the performance of safety-critical systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023121720_03042025_PF_FP_ABST
    Figure CN2023121720_03042025_PF_FP_ABST
Patent Text Reader

Abstract

A scheduling controller that receives a scheduling indication of a current time partition (TPij) for a task and causes the task to be executed at the start time on the computing resource. The scheduling controller determines that the task has finished and in response thereto determines whether there is time left in the allotted time period. In case where there is time left in the allotted time period, it is determined whether a next time partition (TPi, j+1) in a chain is indicated to be able to receive time, and if so indicate that the next time partition (TPi, j+1) is marked ready for scheduling. The scheduling controller determines if there is a time partition belonging to a critical chain indicated to be ready and if so, calls the scheduler of the time partition belonging to the critical chain with computing resource of the current time partition.
Need to check novelty before this filing date? Find Prior Art

Description

DYNAMIC TIME PARTITIONING FOR COMPUTATION-COMMUNICATION CHAINSTECHNICAL FIELD

[0001] The present disclosure generally relates to the field of computing resource management and task scheduling in an operating system and, more specifically, to a scheduling controller and a method for the scheduling controller, for example, by using dynamic time partitioning for computation-communication chains.BACKGROUND

[0002] Generally, computing resource management by efficient task scheduling is useful for optimizing performance and resource utilization. In modern computing environments, a multitude of computational chains coexist and run on the same platform. These chains encompass a series of interconnected tasks or processes that collectively contribute to the operation of various applications and functionalities. However, during their execution, these computational chains are subject to interferences, which can arise from the concurrent execution of other applications or processes on the central processing unit (CPU) . The presence of interferences introduces a degree of unpredictability in the timing and execution of these computational chains, leading to a jitter in the end-to-end latency. End-to-end latency is the total time taken from the initiation to the completion of a computational chain, and the introduction of the jitter can adversely impact the system's performance, resulting in potential delays and timing irregularities.

[0003] A classical approach to mitigate the impact of interferences and control the jitter of critical computational chains is through the utilization of time partitioning techniques. Time partitioning technique is used to allocate computing resources and time periods for executing tasks and indicates a computing resource and the allotted time period with a start time and an end time for a specific task. In other words, time partitioning involves allocating specific time intervals for the execution of critical chains, thereby ensuring that they receive the necessary resources to meet their timing requirements. Additionally, setting a maximum end-to-end latency for these critical chains is essential to guarantee safe performance, preventing overruns and potential system failures. However, one inherent challenge lies in the dynamic nature of some computational chains, particularly those that  are data dependent. As the execution time of these data-dependent chains can vary depending on the input data, configuring them solely for the worst-case scenario results in reduced average system performance. Consequently, a trade-off arises between optimizing the system for worst-case scenarios to meet safety guarantees and striving for faster average chain performance to enhance the system's responsiveness to changing environmental conditions. Further, static time partitioning guarantees timing properties but reduces system utilization due to the presence of many slacks caused by factors such as data-dependent runtime of functions. Thus, results in longer reaction times to sensor or data inputs, impacting the system's responsiveness and overall efficiency, which is not desirable. Thus, there exists two-fold technical problem of how to guarantee a maximum end-to-end latency for critical chains and reduce the average end-to-end latency for these chains, and further how to achieve the reduction in average latency by efficiently speeding up chain execution whenever possible.

[0004] Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional scheduling systems.SUMMARY

[0005] The present disclosure provides a scheduling controller and a method for the scheduling controller, for example, by using dynamic time partitioning for computation-communication chains. The present disclosure provides a solution to the existing problem of how to enhance system resource utilization, specifically the two-fold technical problem of how to guarantee a maximum end-to-end latency for critical chains and reduce the average end-to-end latency for these chains, and further how to achieve the reduction in average latency by efficiently speeding up chain execution whenever possible. An aim of the present disclosure is to provide a solution that overcomes at least partially the problem encountered in the prior art and provides an improved scheduling controller and an improved method for the scheduling controller that uses dynamic time partitioning for computation-communication chains for efficiently freeing up more computing resources through the implementation of an optimized time-partition scheme. The computation-communication chain typically refers to a sequence of interconnected tasks or processes that involve both computation and communication operations. Such chains are prevalent in various computing scenarios, including real-time systems, distributed systems, and  embedded systems. unlike traditional fixed time partitioning schemes, dynamic time partitioning provides more flexibility and responsiveness in allocating resources to the chains, thereby addressing the challenges posed by system interferences and varying execution times.

[0006] One or more objectives of the present disclosure are achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the present disclosure are further defined in the dependent claims.

[0007] In one aspect, the present disclosure provides a scheduling controller. The scheduling controller is configured to receive a scheduling indication of a current time partition (TPij) for a task. A time partition indicates a computing resource and an allotted 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 at the start time on the computing resource. The scheduling controller is further configured to determine that the task has finished and, in response thereto, determine whether there is time left in the allotted time period. Further, if the time left in the allotted time period, the scheduling controller is configured to determine whether a next time partition (TPi, j+1) in the chain is indicated to be able to receive time, and if so indicate that the next time partition (TPi, j+1) is ready for scheduling. The scheduling controller is further configured to determine if there is a time partition belonging to a critical chain indicated to be ready and if so, the scheduling controller is configured to call the scheduler of a TP belonging to a critical chain with computing resource of current time partition.

[0008] The scheduling controller ensures that an end-to-end latency for task execution are bounded within specified limits. The prediction of the 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, the scheduling controller accelerates the execution of tasks with heavy communication dependencies. The optimized execution of critical chains results in reduced end-to-end latency and improved performance for the critical chains. Advantageously, the optimized execution of critical chains enables devices like cars and robots to respond more swiftly to changes in the external environment. The capability to respond more swiftly is essential for real-time applications, where timely reactions to  environmental stimuli are critical for safe and efficient operation. The scheduling controller allows for overprovisioning of time to varying critical tasks, providing a safety margin. The safe system design for overprovisioning ensures that even in worst-case scenarios, critical tasks have sufficient time to complete, mitigating the risk of missed deadlines and system failures. Further, in order to address potential low utilization resulting from overprovisioning, the scheduling controller dynamically reclaims any unused computing resources. The adaptability provided by dynamic resource reclamation of the scheduling controller optimizes resource allocation while maintaining adequate time allocation for critical tasks. The disclosed scheduling controller finds applications in automotive, industrial automation, robotics, and cloud computing. It optimizes computation-communication chains, allowing high performance in safety-critical systems without compromising safety and timing guarantees. The benefits include improved responsiveness, reduced latency, and efficient resource utilization.

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

[0010] By accurately identifying 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 reactions to changing conditions or events in the environment.

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

[0012] The scheduling controller's ability to determine the presence of another task and, consequently, the lack of time left in the current time partition enables optimized task scheduling. The tasks are efficiently allocated computing resources, and no time is wasted attempting to execute tasks that cannot be accommodated within the current time partition.

[0013] Further, the scheduling controller by calling the scheduler of the current time partition, reduces the chances of contention for computing resources, leading to smoother task execution and reduced potential for delays or interference.

[0014] In a further implementation form, the scheduling controller is further configured to, if it is determined that there is no time partition belonging to a critical chain indicated to be ready, determine if there is a time partition not belonging to any critical chain indicated to be ready and if so, call the scheduler of a time partition with computing resource of current time partition.

[0015] Advantageously, the scheduling controller's ability to identify and prioritize ready time partitions ensures that tasks do not wait unnecessarily in queues. The tasks with available time partitions are promptly scheduled for execution, leading to reduced waiting times and improved task throughput.

[0016] In a further implementation form, if it is determined that there is no time partition indicated to be ready, the scheduling controller is further configured to call the scheduler for best effort tasks with computing resource of current time partition.

[0017] By virtue of calling the scheduler for best effort tasks, the scheduling system ensures that computing resources remain active and engaged in task execution. The continuous processing of best effort tasks helps prevent resource idle time and improves overall system efficiency.

[0018] In a further implementation form, the scheduling controller is further configured to determine that a next time partition (TPij+1) in a chain is indicated to be able to receive time by determining that the next time partition (TPij+1) is not bound to be executed at a specific instance.

[0019] The scheduling controller's ability to determine if the next time partition is not bound to be executed at a specific instance (such as start time, computing resource, and the like) , allows for flexible time partitioning. Time partitions that are not strictly tied to specific instances can adapt to changing task requirements and scheduling constraints, providing greater flexibility in task execution.

[0020] In a further implementation form, the scheduling controller is further configured to allot a time period for the next time partition, wherein a start time for the allotted time period for the next time partition is before the allotted end time for the time period for the current time partition (TPij) .

[0021] By virtue of allotting a time period for the next time partition based on the current time partition allows for optimized time partitioning. 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, leading to improved resource utilization and overall efficiency. The scheduling controller's approach of allotting time periods with overlapping start and end times ensures smooth transitions between consecutive time partitions. This reduces scheduling overheads and potential delays between task handovers, promoting continuous task execution.

[0022] In another aspect, the present disclosure provides a method for a scheduling controller. The method comprises receiving a scheduling indication of a current time partition (TPij) for a task, wherein a time partitioning indicates a computing resource and an allotted time period, having a start time and an end time, for executing the task on the computing resource. The method further comprises causing the task to be executed at the start time on the computation resource. The method further comprises determining that the task has finished and in response thereto determine whether there is time left in the allotted time period. Further, if the time left in the allotted time period is determined, the method comprises determining whether a next time partition (TPi, j+1) in the chain is indicated to be able to receive time, and if so indicate that the next time partition (TPi, j+1) is ready for scheduling. The method further comprises determining if there is a time partition belonging to a critical chain indicated to be ready and if so, calling the scheduler of a TP belonging to a critical chain with computing resource of current time partition.

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

[0024] It is to be appreciated that all the aforementioned implementation forms can be combined.

[0025] It has to be noted that all devices, elements, circuitry, units and means described in the present application could be implemented in the software or hardware elements or any kind  of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof. It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims.

[0026] Additional aspects, advantages, features, and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow.BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The summary above, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the present disclosure is not limited to specific methods and instrumentalities disclosed herein. Moreover, those in the art will understand that the drawings are not to scale. Wherever possible, like elements have been indicated by identical numbers.

[0028] Embodiments of the present disclosure will now be described, by way of example only, with reference to the following diagrams wherein:

[0029] FIG. 1 is a block diagram illustrating a scheduling system comprising a scheduling system controller, in accordance with an embodiment of the present disclosure;

[0030] FIG. 2 is a flowchart illustrating a method for scheduling controller, in accordance with different embodiments of the present disclosure;

[0031] FIGs. 3A and 3B are diagrams illustrating a working mechanism of the scheduling system, in accordance with an embodiment of the present disclosure; and

[0032] FIG. 4 is an exemplary diagram illustrating a dynamic time partitioning for computation-communication chains, in accordance with another embodiment of the present disclosure.

[0033] In the accompanying drawings, an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent. A non-underlined number relates to an item identified by a line linking the non-underlined number to the item. When a number is non-underlined and accompanied by an associated arrow, the non-underlined number is used to identify a general item at which the arrow is pointing.DETAILED DESCRIPTION OF EMBODIMENTS

[0034] The following detailed description illustrates embodiments of the present disclosure and ways in which they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practicing the present disclosure are also possible.

[0035] FIG. 1 is a block diagram illustrating a scheduling controller, in accordance with an embodiment of the present disclosure. With reference to FIG. 1, there is shown a block diagram of scheduling system 100 to be implemented for dynamic time partitioning for computation-communication chains. The scheduling system 100 includes a scheduling server 110 connected to a computing resource 112 through a communication network 114.

[0036] The scheduling server 110 corresponds to a system including a computer or device that is implemented for dynamic time partitioning for computation-communication chains. The scheduling server 110 is configured for dynamically allocating time partitions to computation and communication tasks in a parallel computing environment. Examples for an implementation 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, Telecommunication Networks, Simulation and Modelling Systems, High-Performance Computing Facilities, and the like. The scheduling server 110 includes a scheduling controller 102, a scheduler 104, a memory 106, and a network interface card 108.

[0037] The scheduling controller 102 corresponds to a processor configured to perform program instructions of the scheduling system 100. The examples of implementation 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 (RISC) processor, a very long instruction word (VLIW) processor, a state machine, and other processors or control circuitry.

[0038] The scheduler 104 corresponds to a component or module within the scheduling server 110 responsible for an allocation and execution of scheduled tasks on the computing resource 112. In an implementation, the scheduler 104 is configured within the computing resource 112 for allocating and executing scheduled tasks on the computing resource 112. The scheduler 104 includes a scheduling algorithm configured for allocating the scheduled task to the computing resource 112 for some period of time. The scheduling algorithm is developed to enforce a scheduling policy. The scheduling policy corresponds to a set of specific rules for the scheduling algorithm, for example, priorities for threads in priority-based scheduling algorithm, an ordered sequence of time partitions in time partitioning scheduling algorithm, nice values in Linux CFS scheduler, and the like.

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

[0040] The network interface card 108 is configured to enable the scheduling server 110 to connect to the communication network 114 for communicating with the computing resource 112. Examples of implementation of the network interface card 108, may include but are not limited to, Network Interface Cards (NICs) and Wireless Network Cards.

[0041] The computing resource 112 refers to a computer device or a group of computer devices capable of performing computation and processing tasks within the scheduling system 100. Implementation of the computing resource 112 encompasses both individual computing  units and larger systems, such as servers, clusters, distributed computing nodes, or cloud computing instances. The computing resource 112 may be part of a local computing environment or geographically distributed across a network.

[0042] In operation, the scheduling controller 102 is configured to receive a scheduling indication of a current time partition (TPij) for a task. A time partition is indicative of computing resource and an allotted time period, having a start time and an end time, for executing the task on the computing resource 112. In an example, TPij is referred to as the time partition running on CPU i at time slot j. The task refers to a unit of work or computation that needs to be executed within the scheduling system 100. The tasks may be individual computational operations, data processing operations, or any other discrete units of work that can be performed independently or in parallel with other tasks. In an embodiment, the scheduling indication may be received by the scheduling controller 102 from the computing resource 112.

[0043] Further, on receiving the scheduling indication by the scheduling controller 102, scheduling controller 102 is configured to cause the task to be executed at the start time on the computing resource 112. The scheduling controller 102 is further configured to determine whether the task has finished, and if the task has finished, the scheduling controller 102 further determines whether there is time left in the allotted time period. In an embodiment, in order to determine whether there is time left in the allotted time period, the scheduling controller 102 is configured to determine if there is another task remaining to be executed in the current time partition. As a result, it is determined that there is time left in the allotted time period, if there is no other task remaining to be executed in the current time partition. In such an embodiment, if it is determined that there is another task remaining to be executed in the current time partition, the scheduling controller 102 is configured to determine that there is no time left and call the scheduler 104 of the current time partition (TPi, j) .

[0044] Furthermore, if the scheduling controller 102 has determined the time left in the allotted time period, the scheduling controller 102 is configured to determine whether a next time partition (TPi, j+1) in a chain is indicated to be able to receive time. In an example, TPi, j+1 is referred to as the time partition running on CPU i at time slot j+1. In an embodiment, the chain is referred to as a set of nodes connected by communication links without cycles  forming a directed acyclic graph (DAG) . The chain may have multiple inputs and one output. In such an embodiment, the communication links may include data transfer between nodes, input to nodes (e.g. from sensors) , output from nodes (e.g. to actuators) . Communication can be Service Oriented (e.g. DDS) or async / sync function calls, shared memory etc. Furthermore, the nodes correspond to a collection of tasks / subjects (e.g. operating system processes, threads) executing functions. The node can be a single function / thread, or multiple functions / threads. The functions can be from the same or different functional domains. In another embodiment, for determining that the next time partition (TPij+1) in the chain is indicated to be able to receive time, the scheduling controller 102 is configured to determine that the next time partition (TPij+1) is not bound to be executed at a specific instance. In such an embodiment, the specific instance is an indicative of a specific start time.

[0045] Further, if it is determined that the next time partition (TPi, j+1) in the chain is indicated to be able to receive the time, the scheduling controller 102 is configured to indicate that the next time partition (TPi, j+1) is ready for scheduling. In an embodiment, in a case where the next time partition (TPi, j+1) is ready for scheduling, the scheduling controller 102 is further configured to allot a time period for the next time partition (TPi, j+1) . The next time partition (TPi, j+1) is allotted the time period in such a way that a start time for the allotted time period for the next time partition (TPi, j+1) is before the allotted end time for the time period for the current time partition (TPij) . In such an embodiment, an end time for the allotted time period for the next time partition (TPi, j+1) is maintained. In such an embodiment, an end time for the allotted time period for the next time partition (TPi, j+1) is set to the allotted start time for the time period for the next time partition plus the allotted time duration.

[0046] In addition, the scheduling controller 102 is configured to determine if there is a time partition belonging to a critical chain indicated to be ready. In an embodiment, the critical chain may be referred to as a specific chain that is classified by a system integrator as critical, for example, a chain implementing autonomous emergency break. The scheduling system 100 may have multiple critical chains. The critical chain 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 a tool putting all the functions, the nodes, software on one software or hardware platform which altogether will form  integrated system. The system integrator also checks / defines the scheduling policies for the scheduler 104.

[0047] Further, if it is determined that there is the time partition belonging to the critical chain indicated to be ready, the scheduling controller 102 is configured to call the scheduler 104 of the time partition belonging to the critical chain with computing resource 112 of the current time partition.

[0048] In an embodiment, if it is determined that there is no time partition belonging to a critical chain indicated to be ready, the scheduling controller 102 is configured to determine if there is a time partition not belonging to any critical chain indicated to be ready. Further, if there is a time partition not belonging to any critical chain indicated to be ready, the scheduling controller 102 is configured to call the scheduler 104 of such a time partition with computing resource 112 of current time partition. In such an embodiment, if it is determined that there is no time partition not belonging to any critical chain indicated to be ready, the scheduling controller 102 is configured to call the scheduler 104 for best effort tasks with computing resource 112 of the current time partition. The best effort tasks are allocated to the computing resource 112 with the execution of a best-effort time partition by the scheduler 104. The best-effort time partition refers to a time partition which is given the computing resource 112 time when no other task is using the computing resource 112.

[0049] The scheduling system 100 incorporates several mechanisms to enhance the scheduling efficiency and responsiveness. Firstly, the scheduling system 100 includes automated processes to identify critical tasks and their individual elements that can be scheduled earlier based on the critical chain definition. The identification of the critical tasks enables the scheduling system 100 to prioritize critical tasks and optimize their execution timeline. Further, the scheduling system 100 implements a dynamic mechanism to identify slack in the schedule and select an appropriate time partition from a critical chain to receive the slack. The selection of an appropriate time partition from the critical chain to receive the slack allows for flexible scheduling adjustments and ensures that the critical tasks receive the necessary resources to meet timing requirements. Furthermore, the scheduling system 100 employs a dynamic mechanism to identify slack and allocate it to any time partition that is part of the active time partition scheme. The allocation of any time partition that is part of the active time partition scheme enhances the scheduling system's ability to adapt to  changing workload conditions and allocate slack efficiently, improving overall task execution. In addition, the scheduling system 100 features a mechanism to dynamically identify slack and allocate it to any best-efforts time partition, irrespective of its criticality. The mechanism for allocating slack to any best-efforts time partition optimizes resource utilization and enhances system responsiveness, allowing best-efforts tasks to benefit from available slack and improve overall system performance.

[0050] FIG. 2 is a flowchart illustrating a method for scheduling controller, in accordance with an embodiment of the present disclosure. With reference to FIG. 2, there is shown a method 200 illustrating execution of program instructions in the scheduling controller 102. The method 200 includes steps 202 to 212.

[0051] At step 202, the method 200 includes receiving the scheduling indication of the current time partition (TPij) for the task. The time partition is indicative of computing resource and an allotted time period, having a start time and an end time, for executing the task on the computing resource 112. In an example, TPij is referred to as the time partition running on CPU i at time slot j.

[0052] At step 204, the method 200 includes causing the task to be executed at the start time on the computing resource 112. Further, at step 206, the method 200 includes determining whether the task has finished, and if the task has finished, the scheduling controller 102 further determines whether there is time left in the allotted time period. In an embodiment, in order to determine whether there is time left in the allotted time period, the method 200 includes determining if there is another task remaining to be executed in the current time partition. As a result, it is determined that there is time left in the allotted time period, if there is no other task remaining to be executed in the current time partition.

[0053] At step 208, the method 200 includes determining whether a next time partition (TPij+1) in the chain is indicated to be able to receive time, and if so indicate that the next time partition (TPi, j+1) is ready for scheduling. In an embodiment, in a case where the next time partition (TPi, j+1) is ready for scheduling, the scheduling controller 102 is further configured to allot a time period for the next time partition (TPi, j+1) . The next time partition (TPi, j+1) is allotted the time period in such a way that a start time for the allotted time period for the next time partition (TPi, j+1) is before the allotted end time for the time period  for the current time partition (TPij) . In such an embodiment, an end time for the allotted time period for the next time partition (TPi, j+1) is maintained. In such an embodiment, an end time for the allotted time period for the next time partition (TPi, j+1) is set to the allotted start time for the time period for the next time partition plus the allotted time duration.

[0054] At step 210, the method 200 includes determining if there is a time partition belonging to a critical chain indicated to be ready. Furthermore, at step 212, the method 200 includes calling the scheduler 104 of the time partition belonging to the critical chain with computing resource 112 of current time partition.

[0055] The method 200 ensures that an end-to-end latency and jitter for task execution are bounded within specified limits. The prediction of the 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, the method 200 accelerates the execution of tasks with heavy communication dependencies. The optimized execution of critical chains results in reduced overall execution time and improved performance for the critical chains. Advantageously, the optimized execution of critical chains enables devices like cars and robots to respond more swiftly to changes in the external environment. The capability to respond more swiftly is essential for real-time applications, where timely reactions to environmental stimuli are critical for safe and efficient operation. The method 200 allows for overprovisioning of time to varying critical tasks, providing a safety margin. The safe system design for overprovisioning ensures that even in worst-case scenarios, critical tasks have sufficient time to complete, mitigating the risk of missed deadlines and system failures. Further, in order to address potential low utilization resulting from overprovisioning, the method 200 dynamically reclaims any unused computing resources. The adaptability provided by dynamic resource reclamation of the method 200 optimizes resource allocation while maintaining adequate time allocation for critical tasks.

[0056] The steps 202 to 212 are only illustrative, and other alternatives can also be provided where one or more steps are added, one or more steps are removed, or one or more steps are provided in a different sequence without departing from the scope of the claims herein.

[0057] There is provided a computer program comprising instructions for carrying out all the steps of the method 200. The computer program is executed on the scheduling system 100. The computer program is implemented as an algorithm, embedded in a software stored in the non-transitory computer-readable storage medium having program instructions stored thereon, the program instructions being executable by the one or more processors in the computer system to execute the method 200. The non-transitory computer-readable storage means may include, but are not limited to, 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 foregoing. Examples of implementation of computer-readable storage medium, 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, a Secure Digital (SD) card, Solid-State Drive (SSD) , a computer-readable storage medium, and / or CPU cache memory.

[0058] FIGs. 3A and 3B are diagrams illustrating a working mechanism of the scheduling system, in accordance with an embodiment of the present disclosure. With reference to FIG. 3A, there is shown a block diagram 300A illustrating operations of the scheduling system 100 for dynamic time partitioning for computation-communication chains.

[0059] At operation 302, a system is implemented for the deployment of the scheduling controller 102. A system implementation corresponds to a phase in the development lifecycle of the scheduling system 100, where the actual construction and deployment of the scheduling system 100 occur. During system implementation, the software, hardware, or solution is developed, configured, and integrated to provide desired functionality. The system implementation ensures that the scheduling system 100 performs the intended tasks and meets the defined specifications and requirements.

[0060] At operation 304, a system profiling is executed. The system profiling is executed to gather detailed information and insights about the behavior, performance, and resource utilization of a computer system or software application implemented at the operation 302. The system profiling involves the systematic collection and analysis of data related to various system components, processes, and interactions to understand how the scheduling system 100 will operate under different conditions.

[0061] At operation 306, end-to-end timing requirements provided by the system integrator. The end-to-end timing requirements refer to the specific timing constraints and performance criteria for a particular communication chain, which are communicated or specified by the system integrator for the scheduling system 100.

[0062] At operation 308, critical chains are marked by the system integrator. The system integrator identifies and designates specific chains of tasks or activities within the scheduling system 100 as "critical. " The critical chains are recognized as having a significant impact on the overall performance, timing, or functionality of the scheduling system 100.

[0063] At operation 310, timing architecture is introduced with the scheduling system 100. The timing architecture provides a systematic approach to handle various timing aspects, such as task scheduling, time partitioning, end-to-end latency, and jitter control. The timing architecture sets guidelines and mechanisms for coordinating the execution of tasks and managing critical chains to meet the specified timing objectives. The generation of the scheduling algorithm in the scheduler 104 is automated and based on the scheduling system’s timing architecture. The timing architecture can be represented by a DAG annotated with timing properties.

[0064] 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 help of the scheduling controller 102. The development phase 320 includes three operations i.e., 312, 314, and 316.

[0065] At operation 312, the scheduling controller 102 identifies in which of the communication chains, time lending / time partitioning can be applied.

[0066] Further, at operation 314, the scheduling controller 102 identifies and marks the nodes / tasks that can receive time earlier as receptor, i.e., the nodes / tasks can be scheduled earlier without violation of their timing properties. The nodes / tasks may or may not belong to critical chains. In an embodiment, the system integrator can also manually mark partition in time partition scheme as the receptor, e.g., when a time partition has to be  executed with a hypercycle, but the receptor can be executed earlier. The best-efforts scheduling does not guarantee that needed time will be given within one or N hypercycles.

[0067] At operation 316, generate policy for a runtime algorithm to be executed in the runtime phases 322. The policy consists of a number of time partitions, time slot in which the time partitions shall be activated, assignment of nodes / tasks and communication links to time partitions.

[0068] With reference to FIG. 3B, there is shown a block diagram 300B illustrating operations on the runtime phase 322 of the scheduling controller 102 for dynamic time partitioning for computation-communication chains.

[0069] At operation 324, the scheduling controller 102 is configured to check if the current time partition (TPij) slot is over.

[0070] If yes is resulted from the operation 324, then at operation 326, the scheduling controller 102 is configured to check if the current iteration of the time partitioning scheme is finished (i.e., the time from the start of this iteration is equal to constant time length of the time partitioning scheme with all configured time partitions) .

[0071] If yes is resulted from the operation 326, then at operation 328, the scheduling controller 102 is configured to start a new iteration of the time partitioning scheme and mark all data-independent receptor time partitions as ready.

[0072] If no is resulted from the operation 326, then the next time partition according to the time partition scheme is chosen 104 by the scheduling controller 102. In other words, the scheduling controller 102 is configured to call the scheduler from TPi, j+1 with the computing resource 112 of TPi, j+1.

[0073] If no is resulted from the operation 324, then at operation 334, the scheduling controller 102 is configured to check if TPij is idle. Specifically, check if all work in current TPij is done which is signaled by the idle predicate. “Idle predicate” can be implemented to indicate that there are no running / runnable jobs in the current time partition, or all assigned jobs of the current time partition are not runnable.

[0074] If no is resulted from the operation 334, then at operation 336, the scheduling controller 102 is configured to continue the current time partition TPij and call the scheduler 104 of the current time partition TPij with the computing resource 112 of the current time partition TPij.

[0075] If yes is resulted from the operation 334, then at operation 338, the scheduling controller 102 is configured to do time lending bookkeeping, if TPij belongs to a critical chain, and TPij+1 can be scheduled earlier (i.e. it is marked as receptor) , then mark TPij+1 as ready for earlier scheduling. Further, if TPij is subject to time lending / time partitioning, the scheduling controller 102 is configured to set ready flag to false otherwise TPij could be in the current time partition scheme again in the future. The time partition could have received a time boost before a scheduled time. Thus, the scheduling controller 102 is configured to clear ready flag, so that the subject of the communication chain is not re-activated by the slack scheduler.

[0076] After the operation 338, at operation 340, the scheduling controller 102 is configured to call the slack scheduler. The slack scheduler will distribute unclaimed computing resources of the TPij among TPs from a global pool. A TP will be in the global pool if it has its ready flag true or the TP is a permanent member of global pool (e.g., TPs without any precedence constraints which just need to get bounded processing time) .

[0077] After the operation 340, at operation 342, the scheduling controller 102 is configured to check if there is a time partition from the critical chain in the global pool with ready flag set.

[0078] If yes is resulted from the operation 340, then at operation 344, the scheduling controller 102 is configured to start a TP belonging to a critical chain with the computing resource 112 of TPij.

[0079] If no is resulted from the operation 340, then at operation 346, the scheduling controller 102 is configured to check if there is TP in the global pool with the ready flag.

[0080] If yes is resulted from the operation 346, then at operation 348, the scheduling controller 102 is configured to call the scheduler 104 and start a TP from the global pool with the computing resource 112 of TPij.

[0081] If no is resulted from the operation 346, then at operation 350, the scheduling controller 102 is configured to call the scheduler 104 for best effort tasks with the computing resource 112 of TPij.

[0082] In an implementation, at the operations 342-350, if there are multiple TPs, then any scheduling policy can be applied, for example, First-In-First-Out, Last-In-First-Out, Priority Scheduling, and the like.

[0083] The scheduling controller 102 dimensions a time partition based on Worst-Case Execution Time (WCET) to ensure maximum End-to-End (E2E) latency guarantees. Additionally, the scheduling controller 102 dynamically allocates slack to a ready node in the critical chain, accelerating the chain's execution and thereby reducing the average E2E latency. The working mechanism of the scheduling controller 102 leads to speed up in the chain, resulting in faster responsiveness of vehicles, robots, or systems to new sensor data. Furthermore, as the chain gains speed, computing resource 112 becomes available for best-efforts tasks, leading to an improvement in system responsiveness. Thus, the combination of time partition size optimization, slack allocation, and resource management enhances the system's real-time capabilities, reduces latency, and ensures optimal utilization of computing resources for increased responsiveness in critical applications.

[0084] FIG. 4 is an exemplary diagram illustrating a dynamic time partitioning for computation-communication chains, in accordance with another embodiment of the present disclosure. With reference to FIG. 4, there is shown an exemplary diagram 400 of the dynamic time partitions for a computation-communication chain in the scheduling system 100.

[0085] There is shown a time partition for a number of tasks in a static table 402. The number of tasks include LidarROS, LidarAgent, and Chassis which are assigned a time partition statistically in the static table 402. Further, in a dynamic time-partitioning table 404, there is shown a communication chain instance 410 that includes a number of tasks comprising Perception, Prefusion, Eagle Tracking, Prediction, MOP, and Ctrl. With the dynamic allocation of time-partitions to the number of tasks in the communication chain instance 410, there is free time 416 available to the computing resources for running best-effort tasks.

[0086] Further, there is shown that standard time partitioning reserves the resource (e.g. processor) time, based on worst-case execution time 414 of tasks in the communication chain instance 410. However, the dynamic time partitioning reserves the resource (e.g. processor) time, based on an actual execution time 412 of the task in the communication chain instance 410. The actual execution time 412 of the task is significantly less than worst-case execution time 414 of tasks in the communication chain instance 410, thereby the dynamic time partitioning provides a capability to start a next task in the dynamic time-partitioning table 404 earlier and accelerates the communication chain instance 410.

[0087] Further, there is shown a resource reservation for tasks with real-time requirements 406. The tasks with real-time requirements can be invoked anytime. The tasks with the real-time requirements 406 can be prioritized using any of the scheduling policy such as, First-In-First-Out, Last-In-First-Out, Priority Scheduling, and the like. Examples of the tasks with real-time requirements 406 may include, but are not limited to, communication and lifecycle management tasks influencing the critical chains and the like. Furthermore, there is a shown a resource reservation for best-effort tasks 408. The best-efforts task 408 can be scheduled using non-real-time, for example, Linux Completely Fair Scheduler (CFS) policy and the like.

[0088] Modifications to embodiments of the present disclosure described in the foregoing are possible without departing from the scope of the present disclosure as defined by the accompanying claims. Expressions such as "including" , "comprising" , "incorporating" , "have" , "is" used to describe, and claim the present disclosure are intended to be construed in a non-exclusive manner, namely allowing for items, components or elements not explicitly described also to be present. Reference to the singular is also to be construed to relate to the plural. The word "exemplary" is used herein to mean "serving as an example, instance or illustration" . Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or to exclude the incorporation of features from other embodiments. The word "optionally" is used herein to mean "is provided in some embodiments and not provided in other embodiments" . It is appreciated that certain features of the present disclosure, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity,  described in the context of a single embodiment, may also be provided separately or in any suitable combination or as suitable in any other described embodiment of the disclosure.

Claims

1.A scheduling controller (102) configured toreceive a scheduling indication of a current time partition (TPij) for a task, wherein a time partition indicates a computing resource (112) and an allotted time period, having a start time and an end time, for executing the task on the computing resource (112) ,cause the task to be executed at the start time on the computing resource (112) ,determine that the task has finished and in response thereto determine whether there is time left in the allotted time period, and if sodetermine whether a next time partition (TPi, j+1) in a chain is indicated to be able to receive time, and if so indicate that the next time partition (TPi, j+1) is ready for scheduling anddetermine if there is a time partition belonging to a critical chain indicated to be ready and if socall the scheduler (104) of the time partition belonging to the critical chain with computing resource of the current time partition.2.The scheduling controller (102) according to claim 1, wherein the scheduling controller (102) is further configured todetermine whether there is time left in the allotted time period by determining if there is another task remaining to be executed in the current time partition, wherein it is determined that there is time left if there is no other task remaining to be executed in the current time partition.3.The scheduling controller (102) according to claim 2, wherein the scheduling controller (102) is further configured to determine that there is another task remaining to be executed in the current time partition and in response thereto determine that there is no time left and call the scheduler (104) of the current time partition (TPi, j) .4.The scheduling controller (102) according to any preceding claim, wherein the scheduling controller (102) is further configured to, if it is determined that there is no time partition belonging to a critical chain indicated to be ready, determine if there is a time partition not belonging to any critical chain indicated to be ready and if socall the scheduler (104) of such a time partition with computing resource (112) of current time partition.5.The scheduling controller (102) according to claim 4, wherein the scheduling controller (102) is further configured to, if it is determined that there is no time partition indicated to be ready and if socall the scheduler (104) for best effort tasks with computing resource (112) of current time partition.6.The scheduling controller (102) according to any preceding claim, wherein the scheduling controller (102) is further configured to determine that a next time partition (TPij+1) in a chain is indicated to be able to receive time by determining that the next time partition (TPij+1) is not bound to be executed at a specific instance.7.The scheduling controller (102) according to claim 6, wherein the instance indicates a specific start time.8.The scheduling controller (102) according to any preceding claim, wherein the scheduling controller (102) is further configured to allot a time period for the next time partition, wherein a start time for the allotted time period for the next time partition is before the allotted end time for the time period for the current time partition (TPij) .9.The scheduling controller (102) according to claim 8, wherein an end time for the allotted time period for the next time partition is maintained.10.The scheduling controller (102) according to claim 9, wherein an end time for the allotted time period for the next time partition is set to the allotted start time for the time period for the next time partition plus the allotted time duration.11.A method (200) for a scheduling controller (102) , the method (200) comprisingreceiving a scheduling indication of a current time partition (TPij) for a task, wherein a time partitioning indicates a computing resource (112) and an allotted time period, having a start time and an end time, for executing the task on the computing resource (112) ,causing the task to be executed at the start time on the computing resource (112) ,determining that the task has finished and in response thereto determine whether there is time left in the allotted time period, and if sodetermining whether a next time partition (TPij+1) in the chain is indicated to be able to receive time, and if so indicate that the next time partition (TPi, j+1) is ready for scheduling anddetermine if there is a time partition belonging to a critical chain indicated to be ready and if socall the scheduler (104) of a TP belonging to the critical chain with computing resource (112) of current time partition.12.A computer program product comprising program instructions for performing the method (200) according to claim 11, when executed by one or more processors in a scheduling system (100) .

Citation Information

Patent Citations

  • Method for carrying out real-time embedded management by extending UEFI firmware on bare metal

    CN115328629A

  • Multi-core IMA predictable scheduling method oriented to load balancing

    CN115904711A

  • CPU scheduling method and device, electronic equipment and readable storage medium

    CN116302485A

  • Arithmetic device and program

    JP2014182606A

  • Virtual graphics processing unit scheduling based preemption overhead

    US20230273806A1