Brevet FR3055159A1 — publié le 20180223

La présente invention ooncerne la gestion de 7:ches dans les systèmes n'ormatiques multi-coeurs ou m.i 7rocesseurs. ARRIER'7:, 1' AN DE L'INVENTION fl est connu dés svsLemes informatiques compner.ant plusieurs unités de traitemen: (coeurs ou p-rooesseurs) reliées à des ressources des mémoires notamment) pour exécuter des tâches. Les periorisences de ces sysi_irles c6ocicient de la bonne répartition des tâches entuc us uiiléceiices unités de traitement. Or, il s'agit d'un problème non polynomial : il n'existe pas de solution optimale générale. Pour assurer la meilleure répartition nessible, connu d'utiliser ces systèmes d'exploitation temps réel. La gestion des toneu reste cependant relativement complexe et coûteuse en temps. 02,:T DE L' INVENTION L'invention a pour bu cc iournir un moyen siTple l'exécution d'un ens=ble harmonique de tâches duii ci sjcLème informatique. RESUME DE L'INVENT A cet -fet, on prévoit un système informatique comprenant plusiecrs u:ités de ti Lument qui sont synchrones ut u cc manière non concurrente à des Iosources pour oxécue un ensemble 1-isrTon(--- e de tâches -,,ièrotees et ordonnées par périodes croissances de te e que chaque tâche a une priorité d'autant p_us élevée q-,;e la tâche a une petite période. Selon l'invention, le système comprend un , soositif d'aiguila e d'interruptions de tâche ayant une entrée re- ev,-)'r une base de t cmos, comm._:.nc, des sorties iéeo chacune à. une des unités au traitement, des registr correspondant chacun à -inc des sorties, des comuLulcis réinitialisables correspndat a.ono à une des sort: , et une unité de commande agenée pour 3055159 2 réé:Tettre chaque interruption de tâ:vers la sortie dOEnt le registre e la plus grande yale er ces d'à lité, vers celle de ces sortie diLIL le compteur a la p,us faible valeur ; mémoriser Drus chaque registre le 5 numéro de la Lâche en cours d'exécution sur l'unité de traiteTen7. à la sortie cc_rresoondante ; et, à chaTue une interrdplon est réém su sur une des sorties, incrémenter de 1 le compteur oc:rrcspondant. 10 Lors de l'exécutî.ûr, toutes les tâches être exécutées à une certaine date sont regrou une sic urcue de .,_âches ordonnées de la plus priorita la Teihs prie_Laire et qui va s'exécuter sur unité Liail_cment. Il est ainsi procédé à un em 15 de séquences de tâches réparti sur les unités de traitement. Les tâches sont numérotées de manière que leur oluiodes soient ordonnées dans un odïc uscissant. L' , de ces LauU2s est harmonique si, que _l Lauhe i, _a période de la tâche j divise la 20 iode do 1:_t tâche i+1. En outre, plus les tâches ont une petite période, plus leur priorité est élevée Le dispositif d'aiguillage assure la répartition de s,àqr_ -les de tftuh;._s en sélectionnant l'unité tal :_ent exécutan _La tâche la moins prioritaire ou, rus lité, de traitement la moins utilisée. Le f=ctionnement de l'organe d'aiguillage usa de la sorte s.rine et rapide. D'autres caractérisieues et a.var.tages de l'invention ressortiront à la lecture de la Description 30 qui suit d'un noir de réalisation particulier non limitatif de l'invention. E.,EVE DESCRIPTION DES DESSINS Il sera fait rélérence aux dessins arr-sxés, parmi mér. 3055159 la figure 1 est une vue schématique d'un système informatique ,Je .on l'invenilon dans une configuration avec dex unités L.e traitements ; - la figure 2 est urie table illustrant 5 fonctionnement de ce système ormat une telle configuration uompertant de..v 1_,FLtés de 7,raitement. DETAILLEE Di L' INVFN1=N En référence à la figure le système 10 informatique selon l'invention comprend deux uxdtér de traitement A, B reliées à des ressources lera_emc:nt désignées en 5. Les _tni_és de traitement A, B sone ci - coeurs un r.tëmc prccesseur mais elles pourra'ent re deux proceseurs distincts. Les unités de traitement 15 A, B sont synchrones et accèdent de manière non concurrcnte aux ressources 5. Les ressources 5 corn ( o::.ucunent de la mémoiy ve, de la mé e ur dispositif d'entrée/s rt e... Le système infnmatique comprend également une horloge cent. 20 partagée par les unités de traitement A, B, une unité d'alimentation 6 alimentant en énergie les composants du ème informatique. Le système comprenJ un dispositif d'aiguillage 10 d' i_erruptions du tâche ayant : l'_rée 11 pour recevoir resp:2cLivement une base de temps commune, - une sortie 12.A reliée à l'unité de traitomeut A, - une sortie 12.B reliée à aite=nL 30 B, un registre 13.A, de 16 bits, co,- espondant à la sortie 12.A, un registre 13.B, de 16 bits, correspondant à la sortie 12.B, 35 - un compteur rél Lialisable par l'unité A de 64 3055159 4 bits 14.A corresoor_art à la sortie 12.A, - un compte réinitialisable par l'unité B de 64 bits 14.B correspondant à la sortie 12.B, - une unité de commande 15. 5 La base de temps commune est uncuement communiquée à l'unité de commal:du 15 du d sr.csltf d'aiguillage 10. L'unité de commande 15 cornu un circuit com' _ant un processeur et une mémoire -ui permettant 10 d'exécuter un programma informatique. L'unité de commande 15 est reliée à l'entrée 11, aux sorLies 12.A, 12.8, et accède aux registres 13.A, 13.B, et aux compteurs 14.A, 14.B. Le système informatique met en oew.ire un programme 15 de (ou système d'exploitation) organisant un funclionnement des unités de trait=enL A, B en maître esclave selon un principe connu eH LcLerne informatique age,(7.e pour cx.:..(2ut un ensemble harmonique de 7.gche. sans 20 r cLts el_ ordonnées de telle manière que chaque tâche a uic priorité d'autant plus élevée que la tâche a une période. Il y a ici quatre tâches i et une tâche de fond F : le L. uéro i prend ici les valeurs 1, 2, 3 et 4 et est inférieur au numéro F. A titre d'exemple : 25 - la tâche 1 e une période de 4 ms, - la tâche 2 a une période de 8 ms, - la tâche 3 a une période de 16 ois, - la tâche 4 e une periude de 32 L'unité de commande 15 est progr=1,_: pour : 30 - réémettre chaque interruption de tâche vers la sortie 12.A, 12.B dons le registre 13.A, 13.B a la plus grande valeur et, en cas d'égalité, vers celle de ces sorties 12.A, 12.B dont le compteur a la plus faible 35 - mémoriser, dans ::[-que registre 13.A, 13.B, le 3055159 numéro i de la tâche en cours d'exécution sur l'unité de t -temert A, B reliée à la sortie 12.A, .U.B cor=esponJante (ces informations sont fournies 1' uncté orospondante) et, 5 . Laque fois qu'une in ,71yotion de tâche est réémise su une des sorties. 12.A, 12.2, ncremen-U e 1 le compL 14.A, 14.B correspondant. Ce .:ral=c est relatic.ict court puisque quelques lignes - ff' - pour coder c(2:- fonctions. 10 Le fonctionnement du système informatique et, plus particulièreve-it, du dispositif d'aiguillace 10 va maijLanant être décrit en référence à la figure 2. L'acLivation des tâches est classique et n'est pas ta-:_llée ici. 15 L'unité de commande 15 reçoit une interruption de. tâche-«"chaque début de pas de temps . pas de tecc. dure début du pas de temps 0 (temps C), l'uni ré de traitemunL 2 exécute la tâche de fond F de 20 commandc- transmet l'interruption de tâche (symblisée par un :=:.2.1air sur les figures) sur la sortie 12.A pour que l'unité de traitement A exécute la tâche 1. A chaque fois qu'une interruption dc Lâche est sur une des sorties 12.A, 12.B, l'unY:é de 25 romman,:.e 15 'r -emente de 1 le coml_.L. ur 14.A, 14.B correspondant. Ici le compteur 14.A est incrémenté. A chaque exécution d'une nouvelle tcchtâche r une unité de traitement A, B, l'unité de traite:enc concernée transmet le nume-o de la tâche à l'unité de ccmrnar.de 15 30 qui 'enregistre dans le registre 13.A, 13.B corresnondant. Au début du pas de temps 1 (temps 4), la valeur (2) du registre 13.A est inférieure à celle (F) du 13.B. L'unité de commande 15 réémet 35 l'._ otion de tâche sur la sortie 12.5 pour que par 3055159 6 l'unité de traitement B. interrompe l'exécution de la tche F pour exécuter la nne 1. A la fin de la LIche 1, l'unité de traitement B reprend l'exécution de la tâche F. 5 Au cours du pas de temps 1, l'unité de traitement A e termYré T tâche 2 e ciéute l'exécution de la Lnne 3. Au du pas de temps 2 (temps 8), la valeur (3) du ritre 13.A est inférieure à celle (F) du 10 registre 13.B. L'unité de commande 15 réémet l'interrupticn de tâche sur la sortie 12.B pour que l'unIé dc LruiLuirent B Interrompe l'exécution de la tâche Lr :ecuter la e 1. A la fin de la tâche 1, l'unité de traitement B 15 débute l'exécution de la tâche 2. Au début du pas de temps 12), la valeur (3) ou registre 13.A es7_ à celle (2) du regisre 13.B. L'unité de cdmmande 15 réémet lVii1ci1:iuu du tâche sur la sortie 12.A pour que 20 1 temert A interrompe l'exé.ution - :a exécuter la tâche 1. Au cours du pas de temps 3, l'unité de traitement A débute l'exécuion de la tâche 4 une fois la èche 3 , et l'uniLé de t7aitement B débute uuutton de 25 ld 7 une fois la tic u 2 terminée. Au début du pas de temps 4 ;_emps la valeur (4) du registre 13.A est inférieure à celle (F) du .. '3.B. L'unité de commande 15 réémet 17:,7 de tâche sur la sorti .B pour que 30 l'unité d t-a' ement B interrompe l'exécutdon de la tâche F pour exécuter la tâche 1. A la fin de la tâche 1, l'unité de traitement B débute l'exécution de la tâche 2. Au cE±Jt du pas de temps 5 mps 20), la valeur 35 (4) du ncuietre 13.A est supérieure à celle (2) du 3055159 7 registre 13.B. L'unité de commande 15 réémet nterruption de tâche sur la sortie 12.A pour que l'un-té de traitement A interfcmpe l'exécuLiuu de la tâche 4 pour exécuter la tâche 1. 5 A la fin de la tâche 1, l'unité de traitement B rep-rend l'exécution de la tâche 4 et hiLé de traitement B débute l'exécution de la inne 3 à la r de la tâche 2. Au début du pé.us de temps 6 (temps 24), la valeur 10 du registre 13.A est :7.uné-',e celle (3) du recel tre 13.B. L'nnté de L.T.mahde 117 rc1emet :errupon de Laube sur la sortie pour que l'unité do _raitem(.2 _ A interrompe l'exécution dc la _2che 4 pour exécuter la tâche 1. 15 Au cours du pas de temps 6, l'unité de traitement A débute l'exécution de la tâche 2 une fois la Lâche 1 term:née. Au début du pas dc emps 7 (temps 28), la valeur du registre 13.A cot inférieure à ce: du 20 rc.Le 13.B. L'unité de commande l'interruption de tâche sur la sortie 12. pour que l'unité do traitement B int anne l'exéco:ioc de la tâché 3 pour :D.xécuter la tâche 1. fin de la tâche 1, l'unité de traitecont B 25 reprend 1 f,fluLion de la tâche 3. A la fin de la tâche 2, l'unité de traitement A rep - d l'exécution de la tâche 2 puis débute l'exécution de la tâche F. A la fin de la tâche 3, l'unité de traitcmun B 30 débute l'exécution de la tâche F. On voit que, à chaque interruption, une n..7;uvelle liste de tâches à réaliser Ldt A, Ldt B est affectée à chaque =1.:.r A, B. Il y a dans l'exemple décr tre listes de tuiles numérotées 1 à 4 35 - la liste 1 poCvoit ,à la tâche 1 ; 3055159 - la liste 2 prévoit l'exécution en séquence des ches 1 et liste 3 prèvoit 1' exécution en séquence des tâches 1, 2 et 3 ; 5 - la liste 2 prévoit l'exécution en séquence des Lâches 1, 2, 3 et 4. A la fli:re 2, on peut voir que pour le coeur A : - la ....ste de tâches 4 est lancée au temps (notation 4-0) ; 10 - la liste de tâches 1 est lancée au temps (notation 1-3) ; - la :is_e de Liches 1 est lancée au temps (notation 1-5) ; la liSLU de tâches 2 est lancée au temps 15 (notation 2-6). Pour le coeur B : - la liste de tâches 1 est ((:-e au temps cotation 1-1) ; - la liste de est lancée au temps 2 20 (notation 2-2) ; - la liste de tâches 3 est lancée au temps 4 noLaLion 3-4) ; - la ime de tâches 1 csL lancée au temps 7 (notLL n 1-7). 25 On compren...., cou l'exécution d'une de tâches peut être i1leerrcmpoe pour l'exécution nouvelle liste de tâches à la fin de luquolle reprendra l'eyeoution de la liste de tâches inter . Le ctionnement du système informanque se 30 puer suit os L: même -Tanière, entendu, l'invention n'est pas lim.tée au mode de rè.alisation décrit mais couvre toute variante entrant dans le champ de l'invention telle que définie par 1 En particulio..1 le syst tique peut 3055159 9 avoir une strucue différen-:.e de celle décïte. Il peut par exem:D como_..2.nd plus de deux unités atement. Lu disposi Hguillage peut être réalisé sous la forme d'un circuit dédié ou d'un circuit reconfigurable de type FPGA. Les numéros des tâches peuvat avoir vu forme différente : seul importe l'o-don Dnoement des '(nes en fonction de leur période. REVENDICATIONS1. Sysee:me informatique comprenant plusieurs unités de traieement (A, B) qui sont synchrones et accèdent de mane-re non concurrente à des ressources pL excuter Ln un-:omble harmonique de tâche.rum.éroes ordonnées de telle manière que ' Tue a une d'autant plus élevée que la -âche a une petite p -'7ede, caractérisé en ce que le - Omo comprend un diorcsitif d'aiguillage (10) d'interrup1 de tâche aysn re entrée (11) pour recevoir une base de tem'os commune, des sorties 2.7\, 12.B) .une o une des unités de traitement (A, B), registres (13.A, 13.B) correspondant chacun à une des sco.ies, des compteurs réinitialisables (14.A, i.B .;errespondant commande (15) chacun à une des sorties et une uni rCjcfl 'eur réémettre -hé.)(? :n_ rruotion de tâche vers (12.A, 12.B) dont lo registre (13.A, 13.B) a la plus gra7de valeur et, en cas d'égalité, vers celle de ces sorties (12.A, 12.B) dont le compteur (14.A, 14.B) a la plus faible valeur, mémoriser dans chaque registre le numéro (i) de la Lâche en cours d'execution sur l'unité de tr-itement reliée à la sortie correspondan-e et, oue fois -u'une inter ion réémise sur une des sorties (12.A, 12.B), 1r rémenter de 1 le colnoLeur (14.A, 14.B) correspondant. 2. Système informatique selon la revendication 1, dans lequel les registres (13.A, 13.B) ont une cuoccité de 16 s. 3. Système ieLerma igue selon la revendication 1, dans lequel les compeeurs (14.A, 14.B) sent des compteurs de 6 bics