Brevet FR3036207A1 — publié le 20161118

La présente invention concerne l'exécution de tâches par un processeur et au moins un coprocesseur. L'invention concerne plus particulièrement la mémorisation des contextes lors de changement de tâches dans un système informatique multitâche préemptif. ETAT DE LA TECHNIQUE Il est connu des unités informatiques comprenant un processeur principal et des coprocesseurs. Les copro- cesseurs sont par exemple des coprocesseurs arithmétiques plus particulièrement pour effectuer des tâches de calcul en virgule flottante. Ces tâches sont relativement longues et de faibles périodicités. Le processeur princi- pal assure l'ordonnancement de toutes les tâches, et l'exécution des tâches non exécutées par les coproces- seurs et notamment des tâches relativement rapides et de fortes périodicités. On notera que dans la présente description, les notions de périodicité forte et de périodicité faible sont relatives l'une par rapport à l'autre le processeur principal exécute des tâches de périodici- tés relativement plus fortes que les périodicités des tâches exécutées sur les coprocesseurs. L'exécution des tâches de fortes périodicités né- cessite donc la préemption du processeur par ces tâches et l'interruption de l'exécution des tâches de faibles périodicités. Pour pouvoir ultérieurement reprendre la tâche interrompue, il est nécessaire d'en sauvegarder le contexte (le contexte correspondant à l'état du processus en cours au moment de l'interruption) pour pouvoir le restaurer au moment de la reprise de l'exécution de la tâche. La figure 1 illustre le partage des ressources du processeur et du coprocesseur entre des tâches de forte périodicité Ti, T2 et des tâches de faible périodicité T3, T4. Les tâches de forte périodicité Tl, T2 ont res- pectivement une période de 4 et une période de 8. Les 3036207 2 tâches de faible périodicité 13, T4 ont respectivement une période de 32 et une période infinie. La tâche 11 est prioritaire sur la tâche T2 qui est-elle même prioritaire sur la tâche 13, la tâche 13 étant elle-même prioritaire 5 sur la tâche T4. Les lettres R et S représentent respec- tivement la sauvegarde du contexte correspondant à la tâche interrompue et la restauration du contexte correspondant à une tâche ayant été préalablement interrompue, et ce pour le processeur et le coprocesseur. 10 A chaque interruption d'une tâche de faible pé- riodicité 13, 14, il est actuellement prévu de sauvegarder le contexte correspondant à la tâche qui est interrompue en cours d'exécution et de restaurer ce contexte à la reprise de l'exécution de la dite tâche pour pour- 15 suivre l'exécution de la tâche depuis le point où elle a été préalablement interrompue. Par exemple, on peut voir qu'au temps t4, la tâche T4 est interrompue et son contexte sauvegardé. Au temps t15, le contexte de la tâche T4 est restauré pour que l'exécution de cette tâche 20 puisse reprendre. Au temps t5, l'exécution de la tâche 13 est lancée avant d'être interrompue au temps t8 pour laisser place à l'exécution des tâches Tl et 12. Au temps t8, le contexte de la tâche 13 est donc sauvegardé pour être restauré au temps t14 afin de permettre l'achèvement 25 de la tâche 13. Comme les contextes des tâches tendent à devenir de plus en plus volumineux (il faut couramment compter aujourd'hui au moins trente-deux registres), les opérations de sauvegarde et restauration constituent une 30 charge importante de l'unité centrale et des exécutifs temps réel dans les domaines nécessitant de tels exécutifs. OBJET DE L'INVENTION Un but de l'invention est de limiter les res- 35 sources nécessaires au partage d'une unité centrale entre 3036207 3 des tâches différentes. BREF EXPOSE DE L'INVENTION A cet effet, on prévoit, un procédé de gestion d'exécution de tâches de périodicités relativement fortes 5 sur un processeur principal et de tâches de périodicité relativement faibles sur un processeur principal et au moins un coprocesseur associé à ce processeur principal. Le procédé assure une gestion préemptive comportant des étapes d'interruption et de reprise de l'exécution des 10 tâches et des étapes de sauvegarde et de restauration de contexte des tâches interrompues. Selon l'invention, le contexte d'une première tâche interrompue en cours d'exécution et utilisant potentiellement le coprocesseur n'est sauvegardé que lorsqu'une deuxième tâche doit être 15 exécutée et utilise potentiellement le coprocesseur, et le contexte d'une première tâche utilisant potentiellement le coprocesseur préalablement interrompue alors qu'elle était en cours d'exécution n'est restauré que si une deuxième tâche utilisant potentiellement le coproces- 20 seur a été exécutée entretemps. Il est à noter que le fait qu'une tâche puisse utiliser ou non un coprocesseur au cours de son exécution est une donnée statique définie avant leur lancement. Ainsi, la sauvegarde et la restauration du con- 25 texte des tâches exécutées par le coprocesseur et inter- rompue n'est pas systématique. A un instant t, l'unité informatique conserve en mémoire les registres correspondant au contexte relatif à la tâche courante (pour le processeur principal qui est toujours utilisé et le ou 30 les coprocesseurs en cours d'uuiiisation) et les re- gistres correspondant au contexte relatif à la dernière tâche exécutée (pour le ou les coprocesseurs non utilisés). Il en résulte que le nombre d'opérations de sauvegarde et de restauration des contextes est réduit. 35 D'autres caractéristiques et avantages de 3036207 4 l'invention ressortiront à la lecture de la description qui suit de modes de réalisation particuliers non limitatifs de l'invention. BREVE DESCRIPTION DES FIGURES 5 Il sera fait référence aux dessins annexés, parmi lesquels - la figure 1 est un schéma illustrant l'exécution de tâches par un processeur et un coprocesseur conformément à l'état de la tech- 10 nique ; - la figure 2 est une vue un schéma illustrant l'exécution de tâches par un processeur et un coprocesseur conformément à l'invention. DESCRIPTION DETAILLEE DE L'INVENTION 15 Le procédé de l'invention concerne la gestion de l'exécution de tâches de périodicités différentes par une unité informatique comprenant un processeur principal et un coprocesseur associé au processeur principal. Le processeur et le coprocesseur sont agencés selon une archi- 20 tecture ARM. Pour simplifier, le nombre de coprocesseur est ici égal à un mais il va de soi que le nombre de coprocesseurs peut être plus élevé. L'ordonnancement des tâches est assuré par le processeur principal qui assure donc la commutation des 25 tâches. Des priorités statiques ont été préalablement af- fectées aux tâches et la gestion des tâches se fait par préemption. Par exemple, la tâche T1 est prioritaire sur la tâche T2 qui est-elle même prioritaire sur la tâche T3, la tâche 13 étant elle-même prioritaire sur la tâche 30 14. La base de temps fréquence des traitements Les plus rapides) est ici supérieure à 10 KHz, il n'y a ici aucun partitionnement. La figure 2 illustre le partage des ressources du processeur principal et du coprocesseur entre des tâches 35 de forte périodicité Tl, T2 et des tâches de faible pé- 3036207 5 riodicité T3, T4. Les tâches de forte périodicité Ti, T2 ont respectivement une période de 4 et une période de 8. Les tâches de faible périodicité 13, T4 ont respectivement une période de 32 et une période infinie. Les 5 lettres R et S représentent respectivement la sauvegarde du contexte correspondant à la tâche interrompue et la restauration du contexte correspondant à une tâche ayant été préalablement interrompue, et ce pour le processeur et le coprocesseur. 10 Les tâches de périodicités relativement fortes T1, T2 sont exécutées par le processeur principal et les tâches de périodicité relativement faibles T3, T4 sont exécutées par le processeur principal et potentiellement le coprocesseur. Le coprocesseur n'est donc pas utili- 15 sable pour toutes les tâches de sorte que le fonctionne- ment de l'unité informatique est hétérogène. Le procédé comportant des étapes de préemption de tâches et des étapes de sauvegarde S et de restauration R de contexte des tâches préemptées. 20 Conformément à l'invention - le contexte d'une première tâche préemptée en cours d'exécution et qui utilise potentiellement le coprocesseur n'est sauvegardé que lorsqu'une deuxième tâche doit être exécutée et utilise potentiellement le copro- 25 cesseur, et - le contexte d'une première tâche utilisant potentiellement le coprocesseur, préalablement préemptée alors qu'elle était en cours d'exécution, n'est restauré que si une deuxième tâche utilisant potentiellement le 30 coprocesseur a été exécutée entretemps. On s'intéressera ici aux tâches 13 et T4 peur illustrer le procédé de l'invention. La tâche T4 est une tâche sans fin. Sur le gra- phique de la figure 2, on voit que l'exécution de la 35 tâche T4 est relancée au temps t3 ; interrompue au temps 3036207 6 t4 pour permettre l'exécution de la tâche Tl (à plusieurs reprises) et des tâches 13 et 12 ; relancée au temps t15 ; interrompue au temps t16 pour permettre l'exécution de la tâche 11 puis de la tâche T2 ; relancée au temps 5 t19 ; interrompue au temps t20 pour l'exécution de la tâche T1 ; relancée au temps t21 ; interrompue au temps t24 pour l'exécution de la tâche Tl puis de la tâche 12 ; relancée au temps t30 ; interrompue au temps t32 pour permettre l'exécution de la tâche T1 (à deux reprises) et 10 des tâches 12 et T3 ; relancée au temps t38. L'exécution de la tâche 13 est lancée au temps t5 ; interrompue au temps t8 pour permettre l'exécution de la tâche T1 (à deux reprises) et de la tâche 12 ; relancée au temps t14 ; et achevée au temps t15. Une non- 15 velle exécution de la tâche T3 est lancée au temps t34 interrompue au temps t36 pour l'exécution de la tâche Tl ; relancée au temps t37 et est achevée au temps t38. Avec les procédés de l'art antérieur, les con- textes des tâches 13 et 14 auraient été sauvegardés à 20 chaque interruption de ces tâches et restaurés pour chaque reprise de l'exécution de ces tâches. Avec le procédé de l'invention, le contexte de la tâche 14 n'est sauvegardé que si une autre tâche utilisant potentiellement le coprocesseur va être exécutée après 25 l'interruption de la tâche 14 et, de la même manière, le contexte de la tâche 13 n'est sauvegardé que si une autre tâche utilisant potentiellement le coprocesseur va être exécutée après l'interruption de la tâche 13. Le contexte de la tâche 13 ou T4 n'a pas besoin d'être restauré lors 30 de la reprise de l'exécution de ladite tâche à moins qu'une autre tâche utilisant potentiellement le coprocesseur n'ait été exécutée dans l'intervalle. Dans l'exemple ici donné à la figure 2, le contexte de la tâche 14 est : 35 - sauvegardé au temps t5 juste avant l'exécution 3036207 7 de la tâche T3 ; - restauré au temps t15 puisque la tâche 14 va être relancée et que la tâche T3 a potentiellement utilisé le coprocesseur dans l'intervalle ; 5 - sauvegardé au temps t34 juste avant l'exécution de la tâche 13 ; - restauré au temps t38 puisque la tâche 14 va être relancée et que la tâche 13 a potentiellement utilisé le coprocesseur dans l'intervalle. 10 Dans ce même exemple de la figure 2, le contexte de la tâche 13 n'est jamais sauvegardé ni restauré puisqu'aucune tâche n'est exécutée par le coprocesseur pendant l'interruption de la tâche T3. Bien entendu, l'invention n'est pas limitée aux 15 modes de réalisation décrits mais englobe toute variante entrant dans le champ de l'invention telle que définie par les revendications. En particulier, l'unité informatique peut avoir une structure différente de celle décrite et comporter 20 par exemple plus d'un coprocesseur. Les périodicités peuvent être différentes de celles mentionnées. REVENDICATIONS1. Procédé de gestion d'exécution de tâches de périodicités relativement élevées sur un processeur prin- cipal et de tâches de périodicité relativement faibles sur le processeur principal et au moins un coprocesseur associé au processeur principal, le procédé assurant une gestion préemptive comportant des étapes d'interruption et de reprise de l'exécution des tâches et des étapes de sauvegarde et de restauration de contexte des tâches in- terrompues, caractérisée en ce que le contexte d'une première tâche interrompue en cours d'exécution par le coprocesseur n'est sauvegardé que lorsqu'une deuxième tâche doit être exécutée et utilise potentiellement le copro- cesseur, et en ce que le contexte d'une première tâche utilisant potentiellement le coprocesseur et préalablement interrompue alors qu'elle était en cours d'exécution n'est restauré que si une deuxième tâche utilisant potentiellement le coprocesseur a été exécutée. 2. Procédé selon la revendication 1, dans lequel le processeur et le coprocesseur sont agencés selon une architecture ARR.