Real-time management system having coprocessors allocated time slices of different durations to functions and processors executed functions simultaneously in accordance with the time allocation
First Claim
1. A device for managing a real-time context of a system which comprises at least one processor working with a processor cycle so as to execute in apparent simultaneity several functions, each comprising an assembly of tasks providing high level services, and a coprocessor in the form of a component connected to said processor and availing of data relating to said real-time context, said coprocessor comprising means for managing the following steps:
- i) time slicing, from a pre-established frame, of said processing cycle into time slices of possible different durations;
ii) allocating to each of said functions a corresponding set of time slices, according to a predetermined layout, the assembly of tasks of said function being activatable exclusively during the time slices of the allocated set, and being put in a frozen state outside the time slices of said allocated set;
iii) saving, at the end of each of said time slices a machine context of the function to be processed before effecting a slice change;
iv) when a new time slice allocated to one determined function is starting, loading the machine context previously saved at the end of a previous time slice allocated to this determined function, electing a top priority task to be executed belonging to said determined function, and activating said determined function so as to execute at first said priority task with the loaded machine context, wherein said coprocessor comprises at least three automata;
first automaton for managing exchanges between said coprocessor and said processor, via a local memory, a swap memory, a common bus, a local exchange bus BiE and a hardware event bus;
a second automaton for managing said functions during said time slices;
a third automaton for managing certain real-time objects linked with an active function being performed during the time slice in process, especially for managing queues of eligible tasks awaiting said processor, for managing local time such as timeouts, for managing queues awaiting mailboxes and semaphores, for managing tasks awaiting global or local events and for handling external interruptions;
these three automata communicating with one another by means of a bus inside the coprocessor component, primitives relating to global events being broadcast on said hardware event bus.
1 Assignment
0 Petitions
Accused Products
Abstract
The method embodying the invention comprises management by a coprocessor of the time slicing, from a pre-established frame, of the processing cycle of the processor, into slices of possibly different durations, of the allocation of the time slices to the different functions installed according to one or plural pre-established layouts, of the saving at the end of the machine context slice of the function being processed, this with a view to resuming this function during the following slice associated with it and of the loading, at the start of a new slice, of the machine context linked with the activating of the function associated with this slice and which was previously saved at the end of a previous slice corresponding to this function. The invention applies to the optimizing and security of real-time management in modular avionics architectures.
83 Citations
12 Claims
-
1. A device for managing a real-time context of a system which comprises at least one processor working with a processor cycle so as to execute in apparent simultaneity several functions, each comprising an assembly of tasks providing high level services, and a coprocessor in the form of a component connected to said processor and availing of data relating to said real-time context, said coprocessor comprising means for managing the following steps:
-
i) time slicing, from a pre-established frame, of said processing cycle into time slices of possible different durations; ii) allocating to each of said functions a corresponding set of time slices, according to a predetermined layout, the assembly of tasks of said function being activatable exclusively during the time slices of the allocated set, and being put in a frozen state outside the time slices of said allocated set; iii) saving, at the end of each of said time slices a machine context of the function to be processed before effecting a slice change; iv) when a new time slice allocated to one determined function is starting, loading the machine context previously saved at the end of a previous time slice allocated to this determined function, electing a top priority task to be executed belonging to said determined function, and activating said determined function so as to execute at first said priority task with the loaded machine context, wherein said coprocessor comprises at least three automata; first automaton for managing exchanges between said coprocessor and said processor, via a local memory, a swap memory, a common bus, a local exchange bus BiE and a hardware event bus; a second automaton for managing said functions during said time slices; a third automaton for managing certain real-time objects linked with an active function being performed during the time slice in process, especially for managing queues of eligible tasks awaiting said processor, for managing local time such as timeouts, for managing queues awaiting mailboxes and semaphores, for managing tasks awaiting global or local events and for handling external interruptions; these three automata communicating with one another by means of a bus inside the coprocessor component, primitives relating to global events being broadcast on said hardware event bus. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for managing a real-time context of a system which comprises at least one processor with a processor cycle so as to execute independently and in apparent simultaneity several functions, each of said functions comprising an assembly of tasks providing high level services, and a coprocessor in the form of a component connected to said processor and availing of data relating to said real-time context, said method comprising management by said coprocessor of the following steps:
-
i) time slicing, from a pre-established frame of said processing cycle into time slices of possibly different durations, ii) allocating to each of said functions a corresponding set of time slices, according to a predetermined layout, the assembly of tasks of said function being activatable and processed exclusively during the time slices of the allocated set, and being put in a frozen state outside the time slices of said allocated set; iii) saving, at the end of each of said time slices, a machine context of the processed function before effecting a slice change; iv) when a new time slice allocated to one determined function is starting, loading the machine context previously saved at the end of a previous time slice allocated to this determined function, and processing said determined function within said new time slice by scheduling and executing the tasks of said determined function in relation to respective priorities of said tasks and of said real-time context. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
Specification