This application claims the benefit of European Application No. 23209890.5 filed Nov. 14, 2023 for ADAPTIVE EMBEDDED SYSTEMS, which is hereby incorporated by reference in its entirety.
The present disclosure is concerned with adaptive embedded systems, particularly adaptive safety-critical real-time embedded systems and methods for generating schedules for such systems.
Embedded systems are electronic hardware and software systems integrated within a larger system to perform dedicated tasks within that system. Such systems have many applications and are used in many environments where several tasks need to be performed for different purposes and at different times/based on or using different parameters. Avionics, for example, use embedded systems for performing the many tasks that need to be executed in an aircraft e.g. navigation, communication, flight control and monitoring. Such systems have to meet strict safety standards and regulations, provide real-time data processing, fault tolerance and fail-safe mechanisms, particularly when performing safety-critical tasks.
Embedded systems are realised using processors. Whilst some systems are realised with single-core processors, that run a single process at a time, there has been a move to multi-core processors—i.e. processors having multiple cores, either homogenous or heterogeneous, on the same die—to provide increase in performance for the same footprint and power consumption. The use of multiple cores simplifies frequency scaling and scheduling and improves heat dissipation compared to single core processors. On the other hand, having multiple cores running tasks in parallel can give rise to scheduling problems, especially where resources are shared between the cores, and present challenges, especially in real-time and safety-critical systems, in scheduling when the embedded systems are configured to change between two or more modes, depending on use conditions/environmental conditions and/or in the case of occurrence of faults in the system such as overheating or one of many other types of fault that can occur. It is important that the systems are provided with scheduling that ensures the multiple applications running on a single core do not interfere with each other and, further, that each core will execute its designated tasks in the proper sequence at all times, and within an acceptable time period. It is also important to be able to manage the tasks in the case of faults in the system.
Embedded systems rely on static configurations (including cores, memory, networks, software parameters, data communication channels, mapping and scheduling) of hardware and of software run on that hardware, in order to meet the task timing requirements. On the other hand, many embedded systems are adaptive embedded systems configured to change their configuration to operate in different modes at selected times or in selected conditions. This improves efficiency and performance, since the same embedded system can be used to operate in several modes, recognising that the different modes will not be needed at the same time, rather than requiring a separate system for each mode of operation. When switching between modes, however, scheduling changes are also required to avoid delays or interference. Furthermore, transient or permanent faults e.g. overheating, short-circuit, etc. may occur in the embedded system itself or on its input sensors and/or output actuators. Again, these faults will impact the scheduling and performance of tasks. Adaptive embedded systems may be configured to adapt their operation in the face of such faults, but such adaptations can still result in delays or interference.
Adaptive embedded systems currently known focus either on mode-change adaptation—i.e. deal with the requirements in changing mode of operation—or on fault-based adaptation—i.e. adapt their operation in response to occurrence of a specific type of fault. These days, however, embedded systems are being designed to operate in more and more modes and are also vulnerable to many different types of fault. None of the current systems is able to adapt the system by collectively addressing all mode configurations and all possible faults. There is, therefore, a need for generating schedules for embedded systems that address these needs.
According to this disclosure, there is provided a method of generating schedules for an adaptive embedded system, the method comprising: deriving task sets of all possible tasks to be performed by the embedded system; deriving sets of all possible hardware configurations of the embedded system; creating a multi-model system having a multi-model defining the adaptivity of the system for all possible tasks and all possible hardware and all combinations thereof, the adaptivity defining how the system can change operation responsive to a mode change requirement and/or occurrence of a fault; solving a scheduling problem for the models of the multi-model system; and providing schedule instructions to the system, for performance of tasks, based on the solution.
Also provided is an adaptive embedded system including: one or more processor cores for performing tasks according to a schedule; a task model of all possible tasks to be performed by the one or more processors; a hardware architecture model of all possible hardware configurations for the system; a multi-model system for generating multi-models from the task model and the hardware architecture model, defining the adaptivity of the system for all possible tasks and all possible hardware and all combinations thereof, the adaptivity defining how the system can change operation responsive to a mode change requirement and/or occurrence of a fault; an optimisation engine configured to solve a scheduling problem for the models of the multi-model system; and a mapping and schedule module configured to providing schedule instructions to the system, for performance of tasks, based on the solution.
Examples of the method of this disclosure will now be described with reference to the drawings. It should be noted that these are examples only, and variations are possible within the scope of the claims.
The same embedded system may be configured to change its operation (i.e. is adaptive) according to e.g. the aircraft mission phase or flight phase. In the example shown, a second mode for the embedded system is the search mode. When the system is switched to this mode, the scheduling of the four tasks adapts e.g. to the example shown in
Similarly,
In known systems, methods are known for generating schedules for mode changing systems and methods are known for generating schedules for adapting to particular types of fault, but there is no technique that address these collectively. This problem is addressed by the method of this disclosure which is designed to generate schedules for adaptive systems as they adapt to different modes and different faults. Rather than modelling each different configuration, the methodology here explicitly models the adaptivity of the system using a Model of Computation that encompasses multiple sub-models (multi-model) and a generic Architecture Model (AM). By explicitly modelling adaptivity, any type and number of required changes can be modelled, as well as their combination/any combination thereof, and existing solvers can be used. The use of MoC and AM integrates existing scheduling techniques but also extends to cover new cases of change.
Some definitions will be given to help understand the description that follows.
System State is the set of values for the system parameters e.g. number of tasks, their dependencies, their execution requirements, number of Processing Elements (PEs), their configuration, their interconnection, number of available memory locations, their connections to PEs, etc.
Adaptation is any change in the system parameters i.e. transitioning from a system state to another system state.
Mapping is the assignment of tasks to Pes and their dependencies to memory locations.
Scheduling is the order and timing of execution of tasks.
Multi-Model is a model with N sub-models, being a vectored version of the task model extended with data-dependency concepts, defined as MMS=(T, P, D, E, ↑, ↓), where:
Generic Architecture Model is a tuple GA=(C, L, M, N) where:
Further, in order for the model to be correct, several consistency conditions have to be met, which have been formally defined. This includes (but are not limited to):
According to the methodology of this disclosure, each version of the multi-model system, defined as MMS=(T, P, D, E, ↑, ↓), describes one static configuration of the system from a software perspective and its timing requirements, and each version of the generic architecture, GA, describes a static configuration of the hardware. Together, the MMS and the GA describe a unique system state. For this unique state, the real-time mapping and scheduling problem can be solved either using existing theory or by posing it as an optimization problem to an optimisation engine as seen in
In
To allow for the adaptivity of the system—i.e. to provide scheduling for the system when it transitions from one system state to another e.g. due to a mode change or in response to a fault, the optimisation engine 40 is used, as shown in
Applying the optimisation engine 40 to the examples described above with reference to
In addition to the horizontal and vertical transitions described above, using theory, the methodology of this disclosure also allows transitions in a diagonal manner e.g. in this example, between the normal cruise mode and the overheat search mode (e.g. if a transition from cruise mode to search mode is required and the overheat fault is detected) and between the normal search mode and the overheat cruise mode, in a single computation, rather than indirectly via the horizontal and vertical transition computations.
By using a model of the system adaptivity, as described below, multi-processor systems, networks and even systems of systems can be mapped and scheduled quickly and reliably and within defined parameter constrains. Existing theory can be encompassed whilst also enabling new theories to be developed. The methodology enables rigorous analysis for fault-tolerance of adaptive systems and can be integrated with existing toolchains such as AADL.
| Number | Date | Country | Kind |
|---|---|---|---|
| 23209890.5 | Nov 2023 | EP | regional |