WO2020178437A1 - Microprocessor event scheduler - Google Patents

Microprocessor event scheduler Download PDF

Info

Publication number
WO2020178437A1
WO2020178437A1 PCT/EP2020/056057 EP2020056057W WO2020178437A1 WO 2020178437 A1 WO2020178437 A1 WO 2020178437A1 EP 2020056057 W EP2020056057 W EP 2020056057W WO 2020178437 A1 WO2020178437 A1 WO 2020178437A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
time
execution
events
microprocessor
Prior art date
Application number
PCT/EP2020/056057
Other languages
French (fr)
Inventor
Damian Andrade Alfonseca
Tony Teixeira
Stéphane Guguen
Original Assignee
Thales
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales filed Critical Thales
Publication of WO2020178437A1 publication Critical patent/WO2020178437A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Definitions

  • the invention relates to a scheduler of events or tasks or "scheduler" of an operating system or OS (Operating System).
  • event indifferently denotes tasks to be performed by a processor or an operating system, messages, or any other event or any other action executed by a microprocessor.
  • the method can take into account the priority associated with the events to be executed in a time window to determine the times of execution of each of these events.
  • T i [to, t ma x], taking into account the time availability T r remaining in the initial time window T, after the insertion of d 'a first event, from the time availability, the size of a future event and its admissible frequency, to be calculated for each future event E 2 to be executed a time offset value dt corresponding to the temporal positioning of the future event E 2 in relation to the start time to in the initial time window and to check whether the execution time of the event E 2 by the microprocessor, T2micro conforms to the execution time T 2 FPGA,
  • a first microprocessor configured to execute the events stored in a shared memory, on receipt of an interrupt command INT issued by said device and to transmit the execution time of an event to the scheduler.
  • the scheduler is, for example, configured to calculate the remaining time availability in each of the n windows generated by the positioning of the event executed n times in the initial time window.
  • the scheduler according to the invention can be used to distribute the tasks executed by at least a first equipment EQi and at least a second equipment EQ 2 synchronized and which exchange data.
  • FIG.1 a diagram of a parallel architecture for the implementation of the invention
  • FIG.2 a diagram illustrating the exchanges between the elements of Figure 1,
  • FIG.3 illustrates the step of configuring tasks and communication messages
  • FIG.4 illustrates the planning step following the configuration step
  • FIG.5 illustrates a system implementing the method according to the invention.
  • the principle implemented in the method and the system according to the invention are based in particular on a management of the events processed by a microprocessor and of the communications in a deterministic manner, without having recourse to a management of the priorities of the interruptions, in normal operation .
  • the tasks will be executed in a specific order, so that you never have two events running at the same time and without interrupting the execution of an event.
  • the communication and the management of events or tasks are organized temporally so as to make all the equipment of the network interact in a synchronized manner and without any interruption.
  • FIG. 1 is a diagram showing a parallel bus architecture and the exchanges between a first microprocessor 1 and the FPGA 2.
  • the microprocessor 1 comprises a program 4 and a shared memory 3 with a memory of the FPGA. These elements are known to those skilled in the art and will not be detailed, the sharing of memories taking place according to a principle known to those skilled in the art.
  • the microprocessor includes a timer which is activated when an interrupt execution of an event or a task is activated. When the execution of the task is finished, the timer stops and the microprocessor transmits the execution time of the task to the FPGA which will then stop its timer, before performing the execution time verification of a event. The sequence of these steps is illustrated in Figure 2.
  • the programmable FPGA device 2 comprises a shared memory 5, a data and communication manager 6 and a scheduler 7 object of the invention.
  • the data and communications manager exchanges information (data) with the shared memory of the microprocessor.
  • the scheduler 7 manages the interrupts at the level of the microprocessor and will allow the execution of the events in a deterministic manner and one by one as was indicated previously. It is the scheduler which determines the instant of positioning of an event to be executed and which will calculate how to temporally position the various events to be executed in the time window.
  • the data and communication manager is for example a communication bus shared by several devices.
  • FIG. 2 illustrates exchanges between the microprocessor and the FPGA.
  • the FPGA data and communication manager transmits a data write order from the FPGA to the shared memory 3 of the microprocessor 1, 21.
  • the scheduler 7 transmits an interrupt signal INT to the program 4 implemented on the microprocessor 1, 22.
  • the microprocessor on reception of the interrupt signal reads the data which are in its shared memory 3, 23.
  • the data read are transmitted to the program 4 which will select, 24, an application to be executed according to the content of the data and execute, 25, the selected application.
  • Running the application generates data that will be written to shared memory 3 and then transmitted to shared memory 5 of the FPGA.
  • the scheduler 7 knowing the execution time of an event and its temporal positioning in a time window will check the execution time, 27, then read the data, 28.
  • FIG. 3 illustrates the planning step carried out by the scheduler according to the invention, of the tasks and of the communication messages to be transmitted, in the example, three tasks and two messages.
  • the tasks and messages to be sent are identified.
  • the tasks and the messages are stacked one behind the other at the level of a stack, not shown in the figure for reasons of simplification, according to the time availability remaining in a time window.
  • the microprocessor For each message and for each task, the microprocessor identifies its execution frequency, according to frequencies that are multiples of two, the execution duration T t of the task or the duration T m of the message (time space taken up by the task or the message), and possibly the preceding messages and / or tasks.
  • the micro timer T of microprocessor 1 is activated, at the same time the TFPGA timer of the FPGA is activated. These two timers make it possible in particular to check the execution time of an event, at the level of the microprocessor and in the FPGA.
  • the microprocessor timer stops and transmits the measured time to the FPGA, which upon receipt of this information stops its timer.
  • the scheduler After insertion of a new event (task or message), the scheduler recalculates the temporal availability of use of the resources of the microprocessor, in the time window.
  • the scheduler will recalculate after each positioning of an event to be executed, taking into account the "execution time size" of the event, the time interval remaining in the time window and available so that the microprocessor can perform other events.
  • the scheduler In the case where an event is executed n times in the time window, the scheduler will calculate the interval remaining in the time window for each occurrence of the event.
  • the scheduler will calculate the time interval remaining for the n time windows thus generated in the time window (T 0 to T max ), this is for example illustrated with the fourth event executed four times in the initial time window [To, T max ] and therefore will lead to four time offset values to be used for the execution of events, which is illustrated in the figure by t 0 + dti (E 4 ), t 0 + dt 2 (E 4 ), t 0 + dt 3 (E 4 ), t 0 + dt 4 (E 4 ).
  • n time instants of positioning of the event j such as to + dt-i ( Ej), to + dt 2 (Ej), to + dt 3 (Ej), ... to + dt n (Ej).
  • the messages and tasks are programmed according to an order of execution defined in advance by a user or a given application, the order of execution is guaranteed if the field "priority or previous ”, the previous task or message is filled in.
  • the scheduler From the information given during the planning step, the scheduler will define the times of execution of the tasks and / or events. For this, the scheduler takes into account the minimum frequency value f min of all the tasks and messages considered. This frequency (f mî n) determines the cycle of repetition of events as well as the maximum time window (T 0 to T max ), T 0 is the instant at which the processor begins to execute an event, T max the upper limit. Then it determines a time offset value (t x ) or offset for an event (task or message) which must be executed (To + t x ).
  • the time offsets are repeated.
  • the method according to the invention thus guarantees that all the planned events will be executed one by one, without ever crossing over time and taking into account their frequency of execution.
  • the scheduler 7 generates the information used to generate interrupts in order to execute all the events, all the messages and the scheduled tasks sequentially.
  • the event scheduler or "scheduler” checks whether the execution time corresponds to the expected.
  • the measured time of execution of an event by the first microprocessor 1 is compared with the time measured by the FPGA, according to a principle known to those skilled in the art. This allows in particular to verify that the microprocessor did not stop during the execution of the event with an error or remained stuck in an infinite loop.
  • FIG. 5 illustrates an example of an implementation of the event scheduler according to the invention.
  • the ancillary tasks are left to the FPGA.
  • a communication protocol known to those skilled in the art allows the exchange of data between the first microprocessor 1 and the FPGA 2, as well as the verification of the correct execution of the desired computation task in the planned time slot. The computing power of the microprocessor is thus optimized.
  • the FPGA contains an event scheduler according to the invention where the execution order of events or tasks has been obtained by implementing the method according to the invention described above,
  • the FPGA writes (WR) on a DPRAM memory shared with the microprocessor the identifier (ID) of the task to be executed as well as the input parameters (DATA IN),
  • the FPGA launches an INT interrupt to the first microprocessor 1 and starts an FPGA timer or Timer,
  • the first microprocessor initializes a microprocessor Timer
  • the first microprocessor 1 receives an interrupt from the FPGA and reads (RD) the DPRAM exchange memory,
  • the first microprocessor performs the corresponding task
  • the first microprocessor initiates a write to shared memory DPRAM 3 and returns the microprocessor timer, the identifier of the task that has just been executed (ID) as well as the output parameters (DATA OUT),
  • the FPGA controls its Timer by comparing with the Timer of the first microprocessor, according to a method known to those skilled in the art,
  • the FPGA can use the output parameters (DATA OUT),
  • FIG. 4 is used to illustrate an example of implementation of the method according to the invention in the case where the scheduler according to the invention is used in a system comprising several devices, synchronized with each other and exchanging data or information.
  • the scheduler will distribute the execution of the tasks on the different equipment.
  • the events illustrated in FIG. 4 can be attributed to different equipment, distant from each other and interconnected. These events are clocked in multiples of two with respect to a frequency F 0 .
  • the second equipment EQ 2 can send information to the first equipment EQ1 and finally the second equipment EQ 2 will perform the task T3.
  • the scheduler according to the invention therefore makes it possible to plan the events of several interconnected and interdependent equipment items.
  • the event scheduler has the following advantages in particular: the management of the tasks of a microprocessor and of the communications in a deterministic manner, without having recourse to a management of the priorities of the interrupts.
  • the tasks are executed in a precise order so as never to have two events running at the same time and without interrupting the execution of an event or a task,
  • the communication and the management of the tasks are organized temporally so as to make all the equipment of the network interact in a synchronized manner and without any interruption.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Method and system for temporal distribution of the events to be transmitted in an initial time window Ti=[t0, tmax], characterised in that it includes at least the following steps: - identifying at least two events E1, Ej to be executed by the first microprocessor (1), - identifying, for each event E1, Ej, its frequency of execution F1, Fj, according to frequencies that are multiples of two, and the duration T1, Tj of execution of an event, - inserting a first event E1 and calculating the time availability Ti remaining in the initial time window T, in order to determine the maximum size in time and the maximum permissible frequency of a future event Ej, - based on the time availability, the size of an event and its permissible frequency, calculating, for each future event Ej to be executed and for each of the n occurrences of said event in the initial time window, a time offset value dt such that t0+dt1(Ej), t0+dt2(Ej), t0+dt3(Ej),...t0+dtn(Ej) corresponding to the temporal position of the future event Ej relative to the start time t0 in the initial time window, - executing the event Ej and verifying whether the time of execution of the event Ej by the microprocessor, Tjmicro complies with the time of execution TJFPGA expected in the FPGA.

Description

ORDONNANCEUR D’EVENEMENTS POUR MICROPROCESSEUR. MICROPROCESSOR EVENT ORDER.
[0001 ] L’invention concerne un ordonnanceur d’évènements ou de tâches ou « scheduler » d’un système d’exploitation ou OS (Operating System). [0001] The invention relates to a scheduler of events or tasks or "scheduler" of an operating system or OS (Operating System).
[0002] Les systèmes d’exploitation gèrent les priorités et les interruptions des tâches. Le temps d’occupation du microprocesseur est utilisé pour faire des sauvegardes de contexte lorsqu’une interruption arrive. De ce fait, le temps d’occupation du microprocesseur ne peut pas être utilisé à 100%, car des marges doivent être prises pour le système d’exploitation. [0002] Operating systems manage task priorities and interruptions. The busy time of the microprocessor is used to make context backups when an interrupt occurs. Therefore, the CPU occupancy time cannot be used at 100%, as allowances must be made for the operating system.
[0003] Lorsqu’un bus de communication est partagé par plusieurs équipements, une marge pour le remplissage de la bande passante est prise afin de gérer d’éventuelles collisions entre les tâches. La capacité de traitement d’informations par un bus n’est donc pas exploitée dans sa totalité. [0003] When a communication bus is shared by several devices, a margin for filling the bandwidth is taken in order to manage possible collisions between the tasks. The data processing capacity of a bus is therefore not fully exploited.
[0004] Pour augmenter le temps de calcul outil d’un microprocesseur, i.e., temps disponible uniquement pour le calcul, une solution est d’utiliser des dispositifs pour fonctionner plus rapidement afin de pouvoir tenir le temps réel avec le système d’exploitation et les fonctions de l’utilisateur. [0004] To increase the tool computation time of a microprocessor, ie, time available only for the computation, one solution is to use devices to operate more quickly in order to be able to hold real time with the operating system and user functions.
[0005] Au niveau des communications entre plusieurs équipements, l’art antérieur a donc tendance à augmenter le nombre de connexions ou encore à augmenter la bande passante afin de garantir le traitement de toutes les demandes par le bus. [0005] In terms of communications between several items of equipment, the prior art therefore tends to increase the number of connections or even to increase the bandwidth in order to ensure that all requests are processed by the bus.
[0006] Les solutions connues par le demandeur conduisent donc à l’utilisation de composants plus performants, plus coûteux et à une augmentation de connexions dans le cas d’une communication. [0006] The solutions known by the applicant therefore lead to the use of more efficient and more expensive components and to an increase in connections in the case of communication.
[0007] Sur un microprocesseur, lorsque de nombreuses tâches doivent être exécutées simultanément, un système d’exploitation doit être implémenté pour gérer l’accès aux unités de calcul, car les opérations se font en série. Si les contraintes temps réel sont importantes, la vitesse de calcul doit être incrémentée pour arriver à exécuter toutes les opérations nécessaires et pour assurer la gestion des entrées et des sorties au niveau du microprocesseur. La gestion des entrées et des sorties, l’interruption de tâches avec leur sauvegarde de contexte et d’autres opérations font qu’il n’est pas possible d’utiliser de manière optimale les capacités de calcul du microprocesseur. Sur un composant programmable de type FPGA (Field Programmation Gâte Array), il est possible d’implémenter de manière simultanée plusieurs opérations et d’optimiser ainsi les calculs. La gestion des entrées/sorties peut aussi se faire sans contraindre les calculs. Le débogage des algorithmes est difficile à réaliser et l’implémentation des algorithmes nécessite des ressources importantes ce qui conduit à une augmentation de la taille et du coût d’un FPGA. [0007] On a microprocessor, when many tasks must be executed simultaneously, an operating system must be implemented to manage access to the computing units, because the operations are carried out in series. If the real-time constraints are important, the computation speed must be increased in order to be able to execute all the necessary operations and to ensure the management of inputs and outputs at the microprocessor level. The management of inputs and outputs, the interruption of tasks with their context saving and other operations make it not possible to make optimum use of the computing capacities of the microprocessor. On a programmable component such as FPGA (Field Programming Gâte Array), it is possible to implement simultaneously several operations and thus optimize the calculations. The management of inputs / outputs can also be done without constraining calculations. Debugging the algorithms is difficult to achieve and the implementation of the algorithms requires significant resources which leads to an increase in the size and cost of an FPGA.
[0008] L’idée de la présente demande de brevet repose notamment sur une pré planification des évènements au niveau d’un microprocesseur et les communications de manière déterministe, sans avoir recours à une gestion des priorités des interruptions. Les évènements sont exécutés dans un ordre précis de façon à ne jamais avoir deux évènements qui s’exécutent à la fois et sans interrompre l’exécution d’un évènement. [0008] The idea of the present patent application is based in particular on pre-planning of events at the level of a microprocessor and communications in a deterministic manner, without resorting to management of the priorities of the interruptions. The events are executed in a specific order so as to never have two events running at the same time and without interrupting the execution of an event.
[0009] Dans la suite de la description, le mot « évènement » désigne indifféremment des tâches à exécuter par un processeur ou un système d’exploitation, des messages, ou tout autre évènement ou toute autre action exécuté par un microprocesseur. [0009] In the remainder of the description, the word "event" indifferently denotes tasks to be performed by a processor or an operating system, messages, or any other event or any other action executed by a microprocessor.
[0010] L’invention concerne un procédé pour répartir temporellement les évènements à transmettre dans une fenêtre temporelle initiale Ti=[t0, tmax], lesdits évènements étant exécutés par un premier microprocesseur, la répartition temporelle étant réalisée par un dispositif programmable caractérisé en ce qu’il comporte au moins les étapes suivantes : The invention relates to a method for temporally distributing the events to be transmitted in an initial time window Ti = [t 0 , t max ], said events being executed by a first microprocessor, the time distribution being carried out by a programmable device characterized in that it comprises at least the following steps:
- identifier au moins deux évènements E-i, Ej, à exécuter par le premier microprocesseur, - identify at least two events Ei, E j , to be executed by the first microprocessor,
- identifier pour chaque évènement E-i, Ej, sa fréquence d’exécution F-i, Fj, selon des fréquences multiples de deux, la durée T-i, Tj, d’exécution d’un évènement, - identify for each event Ei, E j , its execution frequency Fi, F j , according to frequencies multiples of two, the duration Ti, T j , of execution of an event,
- insérer un premier évènement E-i et calculer la disponibilité temporelle Tr restante dans la fenêtre temporelle initiale T, afin de déterminer la taille maximale en temps et la fréquence maximale admissible d’un futur évènement Ej, - insert a first event Ei and calculate the time availability T r remaining in the initial time window T, in order to determine the maximum size in time and the maximum admissible frequency of a future event E j ,
- à partir de la disponibilité temporelle, de la taille d’un évènement et de sa fréquence admissible, calculer pour chaque futur évènement Ej à exécuter et pour chacune des n occurrences dudit évènement dans la fenêtre temporelle initiale, une valeur de décalage temporel dt tels que to+dti(Ej), to+dt2(Ej), to+dt3(Ej), ...to+dtn(Ej) correspondant au positionnement temporel du futur évènement Ej par rapport à l’instant de démarrage t0 dans la fenêtre temporelle initiale, - exécuter l’évènement Ej et vérifier si le temps d’exécution de l’évènement Ej par le microprocesseur, Tjmicro est conforme au temps d’exécution 1 RQA attendu dans le FPGA. - from the time availability, the size of an event and its admissible frequency, calculate for each future event E j to be executed and for each of the n occurrences of said event in the initial time window, a time offset value dt such as to + dti (E j ), to + dt 2 (E j ), to + dt 3 (E j ), ... to + dt n (E j ) corresponding to the temporal positioning of the future event E j in relation to at the start time t 0 in the initial time window, - execute the event E j and check whether the execution time of the event E j by the microprocessor, T j micro conforms to the execution time 1 RQA expected in the FPGA.
[001 1 ] Le procédé peut tenir compte de la priorité associée aux évènements à exécuter dans une fenêtre temporelle pour déterminer les instants d’exécution de chacun de ces évènements. The method can take into account the priority associated with the events to be executed in a time window to determine the times of execution of each of these events.
[0012] L’invention concerne aussi un système pour répartir temporellement les évènements à transmettre dans une fenêtre temporelle initiale Ti=[t0, tmax] caractérisé en ce qu’il comprend au moins les éléments suivants : The invention also relates to a system for temporally distributing the events to be transmitted in an initial time window Ti = [t 0 , t max ] characterized in that it comprises at least the following elements:
- un dispositif comprenant une mémoire partagée et un ordonnanceur d’évènements,- a device comprising a shared memory and an event scheduler,
- ledit ordonnanceur est adapté à : - said scheduler is suitable for:
déterminer les instants d’exécution d’au moins deux évènements dans la fenêtre temporelle initiale T i=[to, tmax], en prenant en compte la disponibilité temporelle Tr restante dans la fenêtre temporelle initiale T, après l’insertion d’un premier évènement, à partir de la disponibilité temporelle, de la taille d’un futur évènement et de sa fréquence admissible, à calculer pour chaque futur évènement E2 à exécuter une valeur de décalage temporel dt correspondant au positionnement temporel du futur évènement E2 par rapport à l’instant de démarrage to dans la fenêtre temporelle initiale et à vérifier si le temps d’exécution de l’évènement E2 par le microprocesseur, T2micro est conforme au temps d’exécution T2FPGA, determine the execution times of at least two events in the initial time window T i = [to, t ma x], taking into account the time availability T r remaining in the initial time window T, after the insertion of d 'a first event, from the time availability, the size of a future event and its admissible frequency, to be calculated for each future event E 2 to be executed a time offset value dt corresponding to the temporal positioning of the future event E 2 in relation to the start time to in the initial time window and to check whether the execution time of the event E 2 by the microprocessor, T2micro conforms to the execution time T 2 FPGA,
- exécuter l’évènement et vérifier si le temps d’exécution de l’évènement est conforme au temps d’exécution attendu, - execute the event and check if the event execution time complies with the expected execution time,
- un premier microprocesseur configuré pour exécuter les évènements mémorisés dans une mémoire partagée, sur réception d’un ordre d’interruption INT émis par ledit dispositif et pour transmettre le temps d’exécution d’un évènement à l’ordonnanceur. - a first microprocessor configured to execute the events stored in a shared memory, on receipt of an interrupt command INT issued by said device and to transmit the execution time of an event to the scheduler.
[0013] L’ordonnanceur est, par exemple, configuré pour calculer la disponibilité temporelle restante dans chacune des n fenêtres générées par le positionnement de l’évènement exécuté n fois dans la fenêtre temporelle initiale. [0013] The scheduler is, for example, configured to calculate the remaining time availability in each of the n windows generated by the positioning of the event executed n times in the initial time window.
[0014] L’ordonnanceur selon l’invention peut être utilisé pour répartir les tâches exécutées par au moins un premier équipement EQi et au moins un deuxième équipement EQ2 synchronisés et qui échangent des données. [0015] D’autres caractéristiques et avantages de l’invention apparaîtront à la lecture de la description d’exemples de réalisation donnés à titre ilustratif et nullement limitatif annexé des figures représentant : The scheduler according to the invention can be used to distribute the tasks executed by at least a first equipment EQi and at least a second equipment EQ 2 synchronized and which exchange data. Other characteristics and advantages of the invention will become apparent on reading the description of exemplary embodiments given by way of illustration and in no way limiting appended figures showing:
[0016] [Fig.1 ] un schéma d’une architecture parallèle pour la mise en oeuvre de l’invention, [0016] [Fig.1] a diagram of a parallel architecture for the implementation of the invention,
[0017] [Fig.2] un schéma illustrant les échanges entre les éléments de la figure 1 , [0017] [Fig.2] a diagram illustrating the exchanges between the elements of Figure 1,
[0018] [Fig.3] illustre l’étape de configuration des tâches et des messages de communication, [0018] [Fig.3] illustrates the step of configuring tasks and communication messages,
[0019] [Fig.4] illustre l’étape de planification suivant l’étape de configuration, [0019] [Fig.4] illustrates the planning step following the configuration step,
[0020] [Fig.5] illustre un système mettant en oeuvre le procédé selon l’invention. [0020] [Fig.5] illustrates a system implementing the method according to the invention.
[0021 ] Le principe mis en oeuvre dans le procédé et le système selon l’invention reposent notamment sur une gestion des évènements traités par un microprocesseur et des communications de manière déterministe, sans avoir recours à une gestion des priorités des interruptions, en fonctionnement normal. Les tâches vont être exécutées dans un ordre précis, de façon à ne jamais avoir deux évènements qui s’exécutent à la fois et sans interrompre l’exécution d’un évènement. La communication et la gestion des évènements ou tâches sont organisées temporellement de manière à faire interagir tous les équipements du réseau de manière synchronisée et sans aucune interruption. The principle implemented in the method and the system according to the invention are based in particular on a management of the events processed by a microprocessor and of the communications in a deterministic manner, without having recourse to a management of the priorities of the interruptions, in normal operation . The tasks will be executed in a specific order, so that you never have two events running at the same time and without interrupting the execution of an event. The communication and the management of events or tasks are organized temporally so as to make all the equipment of the network interact in a synchronized manner and without any interruption.
[0022] La figure 1 est un schéma représentant une architecture de bus parallèle et les échanges entre un premier microprocesseur 1 et le FPGA 2. [0022] FIG. 1 is a diagram showing a parallel bus architecture and the exchanges between a first microprocessor 1 and the FPGA 2.
[0023] Le microprocesseur 1 comprend un programme 4 et une mémoire partagée 3 avec une mémoire du FPGA. Ces éléments sont connus de l’homme du métier et ne seront pas détaillés, le partage des mémoires se faisant selon un principe connu de l’homme du métier. Le microprocesseur comprend un timer qui est activé lorsqu’une interruption d’exécution d’un évènement ou d’une tâche s’active. Lorsque l’exécution de la tâche est terminée, le timer s’arrête et le microprocesseur transmet le temps d’exécution de la tâche au FPGA qui va alors arrêter son timer, avant d’effectuer la vérification de temps d’exécution d’un évènement. L’enchaînement de ces étapes est illustré à la figure 2. [0024] Le dispositif programmable FPGA 2 comprend une mémoire partagée 5, un gestionnaire de données et de communication 6 et un ordonnanceur 7 objet de l’invention. Le gestionnaire de données et de communication échange des informations (des données) avec la mémoire partagée du microprocesseur. L’ordonnanceur 7 gère les interruptions au niveau du microprocesseur et va permettre l’exécution des évènements de façon déterministe et un par un comme il a été indiqué précédemment. C’est l’ordonnanceur qui détermine l’instant de positionnement d’un évènement à exécuter et qui va calculer comment positionner temporellement les différents évènements à exécuter dans la fenêtre temporelle. Le gestionnaire de données et de communication est par exemple un bus de communication partagé par plusieurs équipements. The microprocessor 1 comprises a program 4 and a shared memory 3 with a memory of the FPGA. These elements are known to those skilled in the art and will not be detailed, the sharing of memories taking place according to a principle known to those skilled in the art. The microprocessor includes a timer which is activated when an interrupt execution of an event or a task is activated. When the execution of the task is finished, the timer stops and the microprocessor transmits the execution time of the task to the FPGA which will then stop its timer, before performing the execution time verification of a event. The sequence of these steps is illustrated in Figure 2. The programmable FPGA device 2 comprises a shared memory 5, a data and communication manager 6 and a scheduler 7 object of the invention. The data and communications manager exchanges information (data) with the shared memory of the microprocessor. The scheduler 7 manages the interrupts at the level of the microprocessor and will allow the execution of the events in a deterministic manner and one by one as was indicated previously. It is the scheduler which determines the instant of positioning of an event to be executed and which will calculate how to temporally position the various events to be executed in the time window. The data and communication manager is for example a communication bus shared by several devices.
[0025] La figure 2 illustre des échanges entre le microprocesseur et le FPGA. FIG. 2 illustrates exchanges between the microprocessor and the FPGA.
[0026] Le gestionnaire de données et communication du FPGA transmet un ordre d’écriture de données du FPGA vers la mémoire partagée 3 du microprocesseur 1 , 21. En même temps, l’ordonnanceur 7 transmet un signal d’interruption INT vers le programme 4 implémenté sur le microprocesseur 1 , 22. Le microprocesseur sur réception du signal d’interruption lit les données qui se trouvent dans sa mémoire partagée 3, 23. Les données lues sont transmises au programme 4 qui va sélectionner, 24, une application à exécuter selon le contenu des données et exécuter, 25, l’application sélectionnée. L’exécution de l’application génère des données qui vont être écrites dans la mémoire partagée 3 et qui vont ensuite être transmises dans la mémoire partagée 5 du FPGA. L’ordonnanceur 7 connaissant la durée d’exécution d’un évènement et son positionnement temporel dans une fenêtre temporelle va vérifier le temps d’exécution, 27, puis lire les données, 28. The FPGA data and communication manager transmits a data write order from the FPGA to the shared memory 3 of the microprocessor 1, 21. At the same time, the scheduler 7 transmits an interrupt signal INT to the program 4 implemented on the microprocessor 1, 22. The microprocessor on reception of the interrupt signal reads the data which are in its shared memory 3, 23. The data read are transmitted to the program 4 which will select, 24, an application to be executed according to the content of the data and execute, 25, the selected application. Running the application generates data that will be written to shared memory 3 and then transmitted to shared memory 5 of the FPGA. The scheduler 7 knowing the execution time of an event and its temporal positioning in a time window will check the execution time, 27, then read the data, 28.
[0027] La figure 3 illustre l’étape de planification réalisée par l’ordonnanceur selon l’invention, des tâches et des messages de communication à transmettre, dans l’exemple, trois tâches et deux messages. Les tâches et les messages à envoyer sont identifiés. Par défaut, les tâches et les messages sont empilés les uns derrière les autres au niveau d’une pile, non représentée sur la figure pour des raisons de simplification, selon la disponibilité temporelle restante dans une fenêtre temporelle. Pour chaque message et pour chaque tâche, le microprocesseur identifie sa fréquence d’exécution, selon des fréquences multiples de deux, la durée d’exécution Tt de la tâche ou la durée Tm du message (espace temporel pris par la tâche ou le message), et éventuellement les messages et/ou les tâches qui précèdent. C’est l’évènement le plus lent qui détermine la vitesse de répétition du cycle, correspondant à une fenêtre temporelle. A chaque interruption d’exécution d’un évènement, le timer Tmicro du microprocesseur 1 est activé, en même temps le timer TFPGA du FPGA est activé. Ces deux timers permettent notamment de vérifier le temps d’exécution d’un évènement, au niveau du microprocesseur et dans le FPGA. A la fin de l’exécution de l’évènement, le timer du microprocesseur s’arrête et transmet le temps mesuré au FPGA, qui sur réception de cette information arrête son timer. [0027] FIG. 3 illustrates the planning step carried out by the scheduler according to the invention, of the tasks and of the communication messages to be transmitted, in the example, three tasks and two messages. The tasks and messages to be sent are identified. By default, the tasks and the messages are stacked one behind the other at the level of a stack, not shown in the figure for reasons of simplification, according to the time availability remaining in a time window. For each message and for each task, the microprocessor identifies its execution frequency, according to frequencies that are multiples of two, the execution duration T t of the task or the duration T m of the message (time space taken up by the task or the message), and possibly the preceding messages and / or tasks. It is the slowest event which determines the repetition speed of the cycle, corresponding to a time window. At each interruption of the execution of an event, the micro timer T of microprocessor 1 is activated, at the same time the TFPGA timer of the FPGA is activated. These two timers make it possible in particular to check the execution time of an event, at the level of the microprocessor and in the FPGA. At the end of the execution of the event, the microprocessor timer stops and transmits the measured time to the FPGA, which upon receipt of this information stops its timer.
[0028] Après insertion d’un nouvel évènement (tâche ou message), l’ordonnanceur recalcule la disponibilité temporelle d’utilisation des ressources du microprocesseur, dans la fenêtre temporelle. L’ordonnanceur va recalculer après chaque positionnement d’un évènement à exécuter, en tenant compte de la « taille temporelle d’exécution » de l’évènement, de l’intervalle de temps restant dans la fenêtre temporelle et disponible pour que le microprocesseur puisse exécuter d’autres évènements. Dans le cas où un évènement est exécuté n fois dans la fenêtre temporelle, l’ordonnanceur va effectuer le calcul de l’intervalle restant dans la fenêtre temporelle pour chaque occurrence de l’évènement. L’ordonnanceur va calculer l’intervalle de temps restant pour les n fenêtres temporelles ainsi générées dans la fenêtre temporelle (T0 à Tmax), ceci est par exemple illustré avec le quatrième évènement exécuté quatre fois dans la fenêtre temporelle initiale [To, Tmax] et donc conduira à quatre valeurs de décalage temporels à utiliser pour l’exécution des évènements, ce qui est illustré sur la figure par t0+dti (E4), t0+dt2(E4), t0+dt3(E4), t0+dt4(E4). De manière générique pour un évènement j, avec un nombre d’occurrence n dans la fenêtre temporelle, si les conditions de disponibilité temporelle sont remplies, on aura n instants temporels de positionnement de l’évènement j, tels que to+dt-i (Ej), to+dt2(Ej), to+dt3(Ej), ...to+dtn(Ej). After insertion of a new event (task or message), the scheduler recalculates the temporal availability of use of the resources of the microprocessor, in the time window. The scheduler will recalculate after each positioning of an event to be executed, taking into account the "execution time size" of the event, the time interval remaining in the time window and available so that the microprocessor can perform other events. In the case where an event is executed n times in the time window, the scheduler will calculate the interval remaining in the time window for each occurrence of the event. The scheduler will calculate the time interval remaining for the n time windows thus generated in the time window (T 0 to T max ), this is for example illustrated with the fourth event executed four times in the initial time window [To, T max ] and therefore will lead to four time offset values to be used for the execution of events, which is illustrated in the figure by t 0 + dti (E 4 ), t 0 + dt 2 (E 4 ), t 0 + dt 3 (E 4 ), t 0 + dt 4 (E 4 ). Generically for an event j, with a number of occurrences n in the time window, if the conditions of time availability are met, we will have n time instants of positioning of the event j, such as to + dt-i ( Ej), to + dt 2 (Ej), to + dt 3 (Ej), ... to + dt n (Ej).
[0029] Sur l’exemple de la figure 3, les messages et les tâches sont programmés selon un ordre d’exécution défini au préalable par un utilisateur ou une application donnée, l’ordre d’exécution est garanti si le champ « priorité ou previous », i.e. tâche ou message précédent est renseigné. In the example of Figure 3, the messages and tasks are programmed according to an order of execution defined in advance by a user or a given application, the order of execution is guaranteed if the field "priority or previous ”, the previous task or message is filled in.
[0030] A partir des informations données lors de l’étape de planification, l’ordonnanceur va définir les instants d’exécution des tâches et/ou des évènements. Pour cela, l’ordonnanceur prend en compte la valeur de fréquence minimum fmin de l’ensemble des tâches et messages considérés. Cette fréquence (fn) détermine le cycle de répétition des évènements ainsi que la fenêtre temporelle maximale (T0 à T max) , T0 est l’instant où le processeur commence à exécuter un évènement, Tmax la borne supérieure. Puis il détermine une valeur de décalage temporel (tx) ou offset pour un évènement (tâche ou message) qui doit être exécuté (To + tx). Sur la figure 4, les décalages temporels ou offsets conduisent à un ordre d’exécution avec : le premier message transmis à t0=0, le cinquième évènement exécuté à t= t0+100ms, le deuxième évènement exécuté à t= to+125ms, le troisième évènement exécuté à t= to+175ms, le quatrième message est transmis à t= to+200ms. Sur chaque nouveau cycle, les offsets temporels se répètent. From the information given during the planning step, the scheduler will define the times of execution of the tasks and / or events. For this, the scheduler takes into account the minimum frequency value f min of all the tasks and messages considered. This frequency (f n) determines the cycle of repetition of events as well as the maximum time window (T 0 to T max ), T 0 is the instant at which the processor begins to execute an event, T max the upper limit. Then it determines a time offset value (t x ) or offset for an event (task or message) which must be executed (To + t x ). In figure 4, the time shifts or offsets lead to an execution order with: the first message transmitted at t 0 = 0, the fifth event executed at t = t 0 + 100ms, the second event executed at t = to + 125ms, the third event executed at t = to + 175ms, the fourth message is transmitted at t = to + 200ms. On each new cycle, the time offsets are repeated.
[0031 ] Pour le calcul de la fenêtre temporelle restante, après avoir positionné le quatrième évènement par exemple, ce dernier étant exécuté n fois dans la fenêtre temporelle, l’ordonnanceur 7 calcule l’intervalle restant pour les fenêtres temporelles générées à chaque positionnement d’une occurrence du quatrième évènement, [t= (to+200ms + taille en ms de l’évènement) + (t0+n*200ms)] où n correspond au nombre de fois où le quatrième évènement apparaît dans la fenêtre temporelle. For the calculation of the remaining time window, after positioning the fourth event for example, the latter being executed n times in the time window, the scheduler 7 calculates the remaining interval for the time windows generated at each positioning of 'an occurrence of the fourth event, [t = (to + 200ms + size in ms of the event) + (t 0 + n * 200ms)] where n corresponds to the number of times the fourth event appears in the time window.
[0032] Le procédé selon l’invention garantit ainsi que tous les évènements planifiés seront exécutés un par un, sans jamais se croiser temporellement et en tenant compte de leur fréquence d’exécution. L’ordonnanceur 7 génère les informations servant à générer des interruptions afin d’exécuter tous les évènements, tous les messages et les tâches planifiés séquentiellement. [0032] The method according to the invention thus guarantees that all the planned events will be executed one by one, without ever crossing over time and taking into account their frequency of execution. The scheduler 7 generates the information used to generate interrupts in order to execute all the events, all the messages and the scheduled tasks sequentially.
[0033] A la fin de l’exécution d’un évènement, l’ordonnanceur d’évènements ou « scheduler » contrôle si le temps d’exécution correspond à l’attendu. Le temps mesuré d’exécution d’un évènement par le premier microprocesseur 1 est comparé avec le temps mesuré par le FPGA, selon un principe connu de l’homme du métier. Ceci permet notamment de vérifier que le microprocesseur ne s’est pas arrêté pendant l’exécution de l’évènement avec une erreur ou est resté bloqué dans une boucle infinie. [0033] At the end of the execution of an event, the event scheduler or "scheduler" checks whether the execution time corresponds to the expected. The measured time of execution of an event by the first microprocessor 1 is compared with the time measured by the FPGA, according to a principle known to those skilled in the art. This allows in particular to verify that the microprocessor did not stop during the execution of the event with an error or remained stuck in an infinite loop.
[0034] La figure 5 illustre un exemple d’implémentation de l’ordonnanceur d’évènements selon l’invention. Dans cette configuration, les tâches annexes sont laissées au FPGA. Un protocole de communication connu de l’homme du métier permet l’échange de données entre le premier microprocesseur 1 et le FPGA 2, ainsi que la vérification de la bonne exécution de la tâche de calcul souhaitée dans le créneau temporel prévu. La puissance de calcul du microprocesseur est ainsi optimisée. [0034] FIG. 5 illustrates an example of an implementation of the event scheduler according to the invention. In this configuration, the ancillary tasks are left to the FPGA. A communication protocol known to those skilled in the art allows the exchange of data between the first microprocessor 1 and the FPGA 2, as well as the verification of the correct execution of the desired computation task in the planned time slot. The computing power of the microprocessor is thus optimized.
[00351 Paramétrage tâche : [00351 Task settings:
- Le FPGA contient un ordonnanceur d’évènements selon l’invention où l’ordre d’exécution des évènements ou des tâches a été obtenu par la mise en oeuvre du procédé selon l’invention décrit ci-dessus, - The FPGA contains an event scheduler according to the invention where the execution order of events or tasks has been obtained by implementing the method according to the invention described above,
- Le FPGA écrit (WR) sur une mémoire DPRAM partagée avec le microprocesseur l’identifiant (ID) de la tâche à exécuter ainsi que les paramètres d’entrée (DATA IN), - The FPGA writes (WR) on a DPRAM memory shared with the microprocessor the identifier (ID) of the task to be executed as well as the input parameters (DATA IN),
- Le FPGA lance une interruption INT vers le premier microprocesseur 1 et démarre un temporisateur ou Timer FPGA, - The FPGA launches an INT interrupt to the first microprocessor 1 and starts an FPGA timer or Timer,
[0036] Exécution tâche ou évènement [0036] Execution of task or event
- Le premier microprocesseur initialise un Timer microprocesseur, - The first microprocessor initializes a microprocessor Timer,
Le premier microprocesseur 1 reçoit une interruption du FPGA et lit (RD) la mémoire d’échange DPRAM, The first microprocessor 1 receives an interrupt from the FPGA and reads (RD) the DPRAM exchange memory,
Le contenu de cette lecture (DATA IN) correspond à la tâche qui devra être exécutée ainsi que les paramètres d’entrée, The content of this reading (DATA IN) corresponds to the task to be performed as well as the input parameters,
Le premier microprocesseur exécute la tâche correspondante, The first microprocessor performs the corresponding task,
Le premier microprocesseur lance une écriture de mémoire partagée DPRAM 3 et retourne le Timer microprocesseur, l’identifiant de la tâche qui vient d’être exécutée (ID) ainsi que les paramètres de sortie (DATA OUT), The first microprocessor initiates a write to shared memory DPRAM 3 and returns the microprocessor timer, the identifier of the task that has just been executed (ID) as well as the output parameters (DATA OUT),
[0037] Vérification tâche [0037] Task verification
- Le FPGA contrôle son Timer en comparant avec le Timer du premier microprocesseur, selon une méthode connue de l’homme du métier, - The FPGA controls its Timer by comparing with the Timer of the first microprocessor, according to a method known to those skilled in the art,
- Le FPGA peut utiliser les paramètres de sortie (DATA OUT), - The FPGA can use the output parameters (DATA OUT),
- Un nouveau cycle peut être lancé. - A new cycle can be started.
[0038] La figure 4 est utilisée pour illustrer un exemple de mise en oeuvre du procédé selon l’invention dans le cas où l’ordonnanceur selon l’invention est utilisé dans un système comprenant plusieurs équipements, synchronisés entre eux et s’échangeant des données ou des informations. L’ordonnanceur va distribuer l’exécution des tâches sur les différents équipements. Les évènements illustrés à la figure 4 peuvent être attribués à des équipements différents, distants les uns des autres et interconnectés. Ces évènements sont cadencés avec des multiples de deux par rapport à une fréquence F0. Dans l’exemple, l’évènement T2 est exécuté à la fréquence T0 = 8Hz et tous les autres évènements sont multiples de cette fréquence, soit 4 Hz, 2 Hz et 1 Hz. Etant donné que les évènements ne peuvent pas être exécutés en même temps, ce mécanisme permet l’exécution des évènements de manière parfaitement déterministe. On connaît de manière précise la fin et le début d’un évènement à tout instant quelque soit la fréquence d’exécution, ceci sous conditions que l’évènement soit un multiple de 2 par rapport à F0, et la durée de l’évènement. FIG. 4 is used to illustrate an example of implementation of the method according to the invention in the case where the scheduler according to the invention is used in a system comprising several devices, synchronized with each other and exchanging data or information. The scheduler will distribute the execution of the tasks on the different equipment. The events illustrated in FIG. 4 can be attributed to different equipment, distant from each other and interconnected. These events are clocked in multiples of two with respect to a frequency F 0 . In the example, the event T 2 is executed at the frequency T 0 = 8Hz and all the other events are multiples of this frequency, i.e. 4 Hz, 2 Hz and 1 Hz. Since the events cannot be executed at the same time, this mechanism allows the execution of events in a perfectly deterministic manner. We know precisely the end and the start of an event at any moment whatever the frequency of execution, this under conditions that the event is a multiple of 2 compared to F 0 , and the duration of the event .
[0039] Dans un système comportant plusieurs équipements, il peut y avoir plusieurs interactions entre les équipements qui nécessitent d’être synchronisés et exécutés à des moments précis. Prenons l’exemple de deux équipements EQ-i et EQ2 qui ont besoin de s’échanger des informations. Le premier équipement EQ1 requiert un certain nombre d’informations provenant du deuxième équipement EQ2 pour effectuer ses calculs, et inversement. Sur la figure 4, les actions 1 , 2 et 3 correspondent au premier équipement EQ-i et les actions 4 et 5 correspondent au deuxième équipement EQ2. Dans l’ordre des priorités, on voit que la tâche T3 doit être exécutée après l’émission du message M-i. Donc, l’ordonnanceur va faire en sorte que dans le temps, l’exécution des tâches est la suivante : In a system comprising several items of equipment, there may be several interactions between the items of equipment which need to be synchronized and executed at specific times. Let us take the example of two equipments EQ-i and EQ 2 which need to exchange information. The first device EQ1 requires a certain amount of information coming from the second device EQ2 to perform its calculations, and vice versa. In figure 4, actions 1, 2 and 3 correspond to the first EQ-i device and actions 4 and 5 correspond to the second EQ 2 device . In the order of priorities, we see that the task T3 must be executed after the transmission of the message Mi. Therefore, the scheduler will ensure that in time, the execution of the tasks is as follows:
[0040] La transmission du message M-i du premier équipement EQ-i vers le deuxième équipement EQ2, ensuite EQ-i peut exécuter les tâches Ti et T2, The transmission of the message Mi from the first equipment EQ-i to the second equipment EQ 2 , then EQ-i can perform the tasks Ti and T 2 ,
[0041 ] Le deuxième équipement EQ2 peut envoyer des informations vers le premier équipement EQ1 et finalement le deuxième équipement EQ2 va exécuter la tâche T3. L’ordonnanceur selon l’invention permet donc la planification des évènements de plusieurs équipements interconnectés et interdépendants. The second equipment EQ 2 can send information to the first equipment EQ1 and finally the second equipment EQ 2 will perform the task T3. The scheduler according to the invention therefore makes it possible to plan the events of several interconnected and interdependent equipment items.
[0042] L’ordonnanceur d’évènements selon l’invention présente notamment comme avantages : - la gestion des tâches d’un microprocesseur et des communications de manière déterministe, sans avoir recours à une gestion des priorités des interruptions. Les tâches sont exécutées dans un ordre précis de façon à ne jamais avoir deux évènements qui s’exécutent à la fois et sans interrompre l’exécution d’un évènement ou d’une tâche, The event scheduler according to the invention has the following advantages in particular: the management of the tasks of a microprocessor and of the communications in a deterministic manner, without having recourse to a management of the priorities of the interrupts. The tasks are executed in a precise order so as never to have two events running at the same time and without interrupting the execution of an event or a task,
- une utilisation à 100% de la bande passante est possible, en l’absence de marge à prévoir pour la gestion d’éventuelles collisions, - 100% use of the bandwidth is possible, in the absence of margin to provide for the management of possible collisions,
- le fonctionnement synchrone de plusieurs équipements permet l’utilisation de la totalité de la bande passante, car il n’y a pas de marge à prévoir pour la gestion des collisions, en fonctionnement normal du système, - the synchronous operation of several devices allows the use of the entire bandwidth, because there is no margin to be provided for the management of collisions, in normal operation of the system,
- la communication et la gestion des tâches sont organisées temporellement de manière à faire interagir tous les équipements du réseau de manière synchronisée et sans aucune interruption. - the communication and the management of the tasks are organized temporally so as to make all the equipment of the network interact in a synchronized manner and without any interruption.

Claims

REVENDICATIONS
1. Procédé pour répartir temporellement les évènements à transmettre dans une fenêtre temporelle initiale Ti=[t0, tmax], lesdits évènements étant exécutés par un premier microprocesseur (1 ), la répartition temporelle étant réalisée par un dispositif programmable (2) caractérisé en ce qu’il comporte au moins les étapes suivantes :1. Method for temporally distributing the events to be transmitted in an initial time window Ti = [t 0 , t max ], said events being executed by a first microprocessor (1), the time distribution being carried out by a programmable device (2) characterized in that it comprises at least the following steps:
- identifier au moins deux évènements E-i, Ej, à exécuter par le premier microprocesseur, - identify at least two events Ei, E j , to be executed by the first microprocessor,
- identifier pour chaque évènement E-i, Ej, sa fréquence d’exécution F-i, Fj, selon des fréquences multiples de deux et la durée T-i, Tj, d’exécution d’un évènement, - identify for each event Ei, E j , its execution frequency Fi, F j , according to frequencies multiples of two and the duration Ti, T j , of execution of an event,
- insérer un premier évènement Ei et calculer la disponibilité temporelle Tr restante dans la fenêtre temporelle initiale T, afin de déterminer la taille maximale en temps et la fréquence maximale admissible d’un futur évènement Ej, - insert a first event Ei and calculate the time availability T r remaining in the initial time window T, in order to determine the maximum size in time and the maximum admissible frequency of a future event E j ,
- à partir de la disponibilité temporelle, de la taille d’un évènement et de sa fréquence admissible, calculer pour chaque futur évènement Ej à exécuter et pour chacune des n occurrences dudit évènement dans la fenêtre temporelle initiale, une valeur de décalage temporel dt tels que t0+dti(Ej), t0+dt2(Ej), t0+dt3(Ej), ...t0+dtn(Ej) correspondant au positionnement temporel du futur évènement Ej par rapport à l’instant de démarrage to dans la fenêtre temporelle initiale, - from the time availability, the size of an event and its admissible frequency, calculate for each future event E j to be executed and for each of the n occurrences of said event in the initial time window, a time offset value dt such as t 0 + dti (E j ), t 0 + dt 2 (E j ), t 0 + dt 3 (E j ), ... t 0 + dt n (E j ) corresponding to the temporal positioning of the future event E j compared to the start time to in the initial time window,
- exécuter l’évènement Ej et vérifier si le temps d’exécution de l’évènement Ej par le microprocesseur, Tjmicro est conforme au temps d’exécution TjFPGA attendu dans le dispositif programmable (2). - execute the event E j and check whether the execution time of the event E j by the microprocessor, T jmicro conforms to the execution time T jFPGA expected in the programmable device (2).
2. Procédé selon la revendication 1 caractérisé en ce qu’il tient compte de la priorité associée aux évènements à exécuter dans une fenêtre temporelle pour déterminer les instants d’exécution de chacun de ces évènements. 2. Method according to claim 1, characterized in that it takes into account the priority associated with the events to be executed in a time window to determine the times of execution of each of these events.
3. Système pour répartir temporellement les évènements à transmettre dans une fenêtre temporelle initiale T i=[to, ] caractérisé en ce qu’il comprend au moins les éléments suivants : 3. System for temporally distributing the events to be transmitted in an initial time window T i = [to,] characterized in that it comprises at least the following elements:
- un dispositif programmable (2) comprenant une mémoire partagée (5) et un ordonnanceur d’évènements (7), - a programmable device (2) comprising a shared memory (5) and an event scheduler (7),
- ledit ordonnanceur (7) est adapté à - said scheduler (7) is adapted to
déterminer les instants d’exécution d’au moins deux évènements dans la fenêtre temporelle initiale T i=[t0, tmax], en prenant en compte la disponibilité temporelle Tr restante dans la fenêtre temporelle initiale T, après l’insertion d’un premier évènement, à partir de la disponibilité temporelle, de la taille d’un futur évènement et de sa fréquence admissible, à calculer pour chaque futur évènement E2 à exécuter une valeur de décalage temporel dt correspondant au positionnement temporel du futur évènement E2 par rapport à l’instant de démarrage t0 dans la fenêtre temporelle initiale et à vérifier si le temps d’exécution de l’évènement E2 par le microprocesseur, T2micro est conforme au temps d’exécution T2FPGA, determine the execution times of at least two events in the initial time window T i = [t 0 , t max ], taking into account the time availability T r remaining in the initial time window T, after the insertion of d '' a first event, based on the time availability, the size of a future event and of its admissible frequency, to calculate for each future event E 2 to execute a time offset value dt corresponding to the temporal positioning of the future event E 2 with respect to the start time t 0 in the initial time window and to check whether the execution time of the event E 2 by the microprocessor, T 2 micro conforms to the execution time T 2 FPGA,
- exécuter l’évènement et vérifier si le temps d’exécution de l’évènement est conforme au temps d’exécution attendu, - execute the event and check if the event execution time complies with the expected execution time,
- un premier microprocesseur (1 ) configuré pour exécuter les évènements mémorisés dans une mémoire partagée (3), sur réception d’un ordre d’interruption INT émis par ledit dispositif (2) et pour transmettre le temps d’exécution d’un évènement à l’ordonnanceur (7). - a first microprocessor (1) configured to execute the events stored in a shared memory (3), on receipt of an interrupt command INT sent by said device (2) and to transmit the execution time of an event to the scheduler (7).
4. Système selon la revendication 3 caractérisé en ce que l’ordonnanceur est configuré pour calculer la disponibilité temporelle restante dans chacune des n fenêtres générées par le positionnement de l’évènement exécuté n fois dans la fenêtre temporelle initiale. 4. System according to claim 3, characterized in that the scheduler is configured to calculate the remaining time availability in each of the n windows generated by the positioning of the event executed n times in the initial time window.
5. Système selon l’une des revendications 3 ou 4 caractérisé en ce que le dispositif programmable est de type FPGA (Field Programmable Gâte Array). 5. System according to one of claims 3 or 4 characterized in that the programmable device is of the FPGA type (Field Programmable Gâte Array).
6. Système selon l’une des revendications 3 à 5 caractérisé en ce qu’il comporte au moins un premier équipement EQ-i et au moins un deuxième équipement EQ2 synchronisés et s’échangeant des données. 6. System according to one of claims 3 to 5 characterized in that it comprises at least a first equipment EQ-i and at least a second equipment EQ 2 synchronized and exchanging data.
PCT/EP2020/056057 2019-03-07 2020-03-06 Microprocessor event scheduler WO2020178437A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR1902266 2019-03-07
FR1902266A FR3093579B1 (en) 2019-03-07 2019-03-07 MICROPROCESSOR EVENT ORDER

Publications (1)

Publication Number Publication Date
WO2020178437A1 true WO2020178437A1 (en) 2020-09-10

Family

ID=67810695

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/056057 WO2020178437A1 (en) 2019-03-07 2020-03-06 Microprocessor event scheduler

Country Status (2)

Country Link
FR (1) FR3093579B1 (en)
WO (1) WO2020178437A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010092146A1 (en) * 2009-02-16 2010-08-19 Inchron Gmbh Method for analysing the real-time capability of a system
US20140089889A1 (en) * 2012-09-26 2014-03-27 The Mathworks, Inc. Behavior invariant optimization of maximum execution times for model simulation
WO2014170569A1 (en) * 2013-04-19 2014-10-23 Krono-Safe Task time allocation method allowing deterministic error recovery in real time
EP3438821A1 (en) * 2016-03-31 2019-02-06 Alibaba Group Holding Limited Task-resource scheduling method and device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010092146A1 (en) * 2009-02-16 2010-08-19 Inchron Gmbh Method for analysing the real-time capability of a system
US20140089889A1 (en) * 2012-09-26 2014-03-27 The Mathworks, Inc. Behavior invariant optimization of maximum execution times for model simulation
WO2014170569A1 (en) * 2013-04-19 2014-10-23 Krono-Safe Task time allocation method allowing deterministic error recovery in real time
EP3438821A1 (en) * 2016-03-31 2019-02-06 Alibaba Group Holding Limited Task-resource scheduling method and device

Also Published As

Publication number Publication date
FR3093579A1 (en) 2020-09-11
FR3093579B1 (en) 2021-07-30

Similar Documents

Publication Publication Date Title
US9824392B2 (en) Computing resource management systems and methods
EP2894872B1 (en) Method for scheduling tasks in a power line carrier network
CN109347757A (en) Message congestion control method, system, equipment and storage medium
CN109064325A (en) A kind of intelligent contract implementation method and device based on block chain
CN106844055A (en) A kind of execution method and apparatus of task
CN109921897B (en) Triggering method and device for workload certification calculation, calculating equipment and storage medium
EP2709008B1 (en) Method and device for counting the offset time for a processing unit in an information processing system
WO2020178437A1 (en) Microprocessor event scheduler
WO2016198762A1 (en) Method and system for determining a target configuration of servers for deployment of a software application
WO2024045980A1 (en) Method, apparatus and device for testing distributed timing message system
WO2023185042A1 (en) Method and apparatus for establishing direct-connection channel
CN116244062A (en) Data processing method and device, electronic equipment and storage medium
CN110400043A (en) Order allocation method, device, equipment and storage medium
US20190080408A1 (en) System And Method For Global Trading Exchange
CN117112121A (en) Distributed task processing system, method, apparatus and computer program product
KR20180112459A (en) Method and system for small scale energy trading
EP3241089A1 (en) Method for automatically managing the electricity consumption of a server farm
EP2996036A1 (en) Method for monitoring an application architecture comprising a plurality of services
WO2013038112A1 (en) Method, device and computer program for dynamically allocating resources of a cluster to the execution of processes of an application
CN114095356B (en) Method and device for configuring node task strategy in real time
CN111784353B (en) Real-time feature calculation method, order risk prediction device and order system
CN116405334B (en) Block chain-based computing power network flow processing method, equipment and medium
WO2023052730A1 (en) Method for supervising and supervisor of the control of a parallel processing operation distributed in a communication network, service provision device and program implementing same
US20240098179A1 (en) Method and system for estimating call durations for improved call queue management
WO2022144368A1 (en) Method for controlling a set of computer cards of a multimedia server on-board an aircraft, associated computer program, electronic control device and multimedia server

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20713525

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20713525

Country of ref document: EP

Kind code of ref document: A1