FR 3057969 A1 20180427 FR 1601540 A 20161025 1 Système de pilotage déterministe du fonctionnement de moyens de transfert de données par accès direct à des moyens de mémorisation La présente invention concerne un système de pilotage du fonctionnement de moyens de transfert de données par accès direct à des moyens de mémorisation. Plus particulièrement, l'invention se rapporte à un système de pilotage de tels moyens, par un ordonnanceur de tâches en charge de changement de contexte de processus. 10 Un tel système peut par exemple être mis en oeuvre pour assurer un partitionnement robuste de différents processus mis en oeuvre par au moins un processeur. Dans un tel système, le processeur est en effet associé à des moyens de transfert de données par accès direct à des moyens de mémorisation. 15 Dans ce type de systèmes, le fonctionnement de l'ensemble de ces moyens est piloté par un ordonnanceur de tâches en charge des changements de contexte de processus du processeur. L'invention peut alors se situer par exemple dans le domaine des applications nécessitant une isolation au moins temporelle forte entre les différents processus, 20 également appelée partitionnement robuste. De telles applications se rencontrent par exemple dans des systèmes à haute sûreté de fonctionnement, notamment en aéronautique, dans le domaine nucléaire, médical, dans les transports, etc... Plus particulièrement, l'invention porte sur les aspects de transferts de données en 25 mémoire, assistés par matériel, également appelés accès directs à la mémoire ou DMA pour « Direct Memory Access » en Anglais. Dans les processeurs modernes, les accès aux mémoires et les transferts intra ou inter-mémoires sont relativement fréquents et peuvent impacter notamment la performance globale du système et plus particulièrement lorsque les temps d'accès aux 30 mémoires s'allongent. Pour résoudre ces problèmes, on a recours à des automates de transfert permettant de délester le processeur principal, qui ainsi, peut continuer à exécuter d'autres tâches en parallèle. Cette mise en parallèle des transferts en mémoire peut conduire à un 35 débordement du système sur un autre processus comme cela sera décrit plus en détail par la suite. 3057969 2 Ainsi un premier processus peut lancer un transfert à l'intérieur de son domaine temporel, mais le transfert peut se poursuivre au-delà de ce domaine et interférer avec un second processus. Dans les systèmes à partitionnement robuste, ce type d'interférences conduisant à un non déterminisme, est proscrit. Il est alors nécessaire de parfaitement maîtriser les transferts DMA afin d'éviter toute interférence temporelle entre les processus. On sait que dans les systèmes actuels, les interférences temporelles de cette nature entre les processus, sont résolues ou contournées au travers de différents mécanismes de gestion. Ainsi, on connaît des solutions à ces problèmes, par découpage des transferts en petits lots de courte durée ou encore par augmentation des marges associées à chaque processus afin d'absorber les potentiels débordements ou encore par regroupement des transferts en début de partition. 15 Mais toutes ces techniques de contournement ne sont pas sans défaut ou conséquence. En effet dans le cas du découpage par lots, chaque transfert requiert une pénalité de chargement du DMA pour son initialisation. Découper par lot revient donc à augmenter le nombre de transferts et donc les 20 pénalités de chargement. Si le découpage est trop fin, le chargement en DMA devient plus important que les transferts, ce qui est contre-productif. Si le découpage est insuffisant, on ne maîtrise plus le déterminisme du transfert à l'intérieur de l'enveloppe temporelle affectée. 25 Si on augmente les marges, cela revient à réduire la charge utile allouée au processus et donc à sous-exploiter le processeur. Enfin, le regroupement des transferts en début de partition, se traduit par des contraintes fortes sur le programme applicatif et est donc difficilement applicable dans les faits. 30 Le but de l'invention est donc de résoudre ces problèmes. A cet effet, l'invention a pour objet un système de pilotage déterministe du fonctionnement de moyens de transfert de données par accès direct à des moyens de mémorisation, par un ordonnanceur de tâches en charge de changements de contexte de processus, caractérisé en ce qu'il comporte des moyens déterministes d'établissement et 35 de suspension des transferts de données en mémoire amorcés avant et non terminés lors des changements de contexte et de reprise de ceux-ci lors du retour dans le. contexte 3057969 3 initial correspondant afin de donner à chaque processus, un accès intégral et exclusif aux moyens de transfert. Suivant d'autres caractéristiques du système selon l'invention, prises seules ou en combinaison : les moyens de suspension et de reprise comprennent des moyens d'interruption et de reprise des transferts de données et des moyens de sauvegarde de l'état courant du système et du transfert de données en mémoire ; les moyens de sauvegarde de l'état courant du système et du transfert de 10 données en mémoire comprennent des registres d'état ; il est associé à des registres de commande de suspension du transfert et de reprise du transfert ; il est associé à une horloge programmable autonome de suspension du transfert en cas de débordement temporel ; 15 il est associé à une ligne matérielle de suspension du transfert. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés, sur lesquels : - la figure 1 représente un schéma synoptique illustrant un système à processeur et ordonnanceur de tâches, - la figure 2 représente un organigramme illustrant des exemples d'interférence temporelle liée à un transfert DMA, de l'état de la technique, - la figure 3 représente un organigramme illustrant le fonctionnement d'un système selon l'invention suivant une utilisation en partitionnement temporel, et 25 - la figure 4 représente un organigramme illustrant le fonctionnement d'un système selon l'invention suivant une utilisation en ressource partagée. On a en effet illustré sur la figure 1, un système qui comporte au moins un processeur, désigné par la référence générale 1, associé à des moyens de transfert dé données par accès direct dits DMA, à des moyens de mémorisation. 30 Les moyens de transfert sont désignés par la référence générale 2, tandis que les moyens de mémorisation sont désignés par la référence générale 3. Le fonctionnement de cet ensemble est piloté par un ordonnanceur de tâches désigné par la référence générale 4, en charge notamment des changements de contexte de processus du processeur. 35 En particulier et comme cela est illustré sur la figure 2, cet ordonnanceur de tâches est chargé de piloter le changement de contexte de processus du processeur. 3057969 4 En particulier, il est chargé par exemple de faire passer ce contexte, d'un processus, désigné par la référence générale 10, à un autre processus, désigné par la référence générale 11, en respectant une marge temporelle entre ceux-ci, désignée par la référence générale 12. On voit sur cette figure 2, deux transferts DMA désignés respectivement par les références 13 et 14. Le transfert DMA 13 est lancé au cours du processus 10 et se termine avant le changement de contexte. Le transfert DMA 14 est quant-à-lui également lancé à l'intérieur du domaine 10 temporel du processus 10, mais le transfert devrait se poursuivre au-delà de la fenêtre temporelle affectée et même dépasser la marge 12, ce qui l'amène à interférer alors avec le processus 11. Cette interférence est désignée par 15. Pour des exemples d'applications dans les systèmes à partitionnement robuste, ce 15 type d'interférence, conduisant à un non-déterminisme, est proscrit. L'invention propose alors d'intégrer dans le système décrit, des moyens d'interruption/suspension et de reprise/relance des transferts DMA, pilotés par l' ordonnanceur de tâches en charge des changements de contexte de processus du processeur, pour garantir le déterminisme. 20 De cette façon, chaque processus aura un accès intégral et exclusif aux moyens de transfert. Les transferts DMA démarrés dans un contexte de processus soit se terminent normalement avant la fin de la fenêtre temporelle affectée soit sont suspendus lors du changement de contexte de processus et ne seront repris ou relancés que lors du retour 25 au contexte initial. L'état courant du système et du transfert mémoire est alors sauvegardé avec le contexte puis restauré lors de la relance ou reprise du contexte. On utilise alors à cet effet par exemple des registres d'état. Ainsi dans un tel système, on peut interrompre et reprendre un transfert mémoire 30 de manière déterministe, ce qui est une propriété indispensable par exemple des systèmes partitionnés robustes. Un transfert DMA est ainsi constitué d'une pluralité (ou d'une salve) de transferts élémentaires. Un transfert élémentaire est constitué d'une lecture dans la zone source, et d'une 35 écriture dans la zone destination. 3057969 Le transfert élémentaire est borné temporellement par le système dans lequel le transfert DMA est implémenté. Etant donné que le transfert DMA peut être arrêté à tout moment, et qu'il ne met en oeuvre aucune mémoire interne, la suspension est bornée temporellement à N 5 transferts élémentaires (par exemple 2). Ceci est par exemple illustré sur la figure 3. On a illustré sur ces figures, deux processus, désignés respectivement par les références 20 et 21, et séparés par des marges par exemple 22. Un premier: transfert DMA 23 est lancé et terminé dans la fenêtre temporelle du processus 20. Un deuxième transfert DMA 24 est quant-à-lui également lancé au cours du contexte 20, mais ne se termine pas dans la fenêtre temporelle. Contrairement à ce qui se passe dans l'état de la technique, dans le système selon l'invention, l'ordonnanceur de tâches comporte des moyens de suspension/interruption des transferts de données en mémoire DMA, amorcés avant et non terminés lors des changements de contexte du processeur et de reprise/relance de ceux-ci lors du retour du processeur dans le contexte initial correspondant. Ceci est par exemple illustré pour ce deuxième transfert DMA 24, qui est suspendu lors du changement de contexte du processus 20 vers le processus 21. Le second processus 21 obtient alors une fenêtre temporelle affectée, lui permettant de réaliser lui-même des transferts par accès direct en mémoire tels que le transfert DMA 25. Comme cela est illustré, à la fin de la fenêtre temporelle affectée au processus 21, associée à la marge 22, si le transfert n'est pas complétement terminé, celui-ci est suspendu. Lors du retour du contexte de processus du processeur vers le premier processus 20, le transfert de données en mémoire DMA, amorcé avant le changement de contexte et non terminé dans la fenêtre correspondante, est alors repris/relancé comme cela est illustré sur cette figure 3. Le début du transfert DMA est en effet désigné par la référence générale 24a et la fin du transfert est désignée par la référence générale 24b sur cette figure 3. Il en est de même pour le troisième transfert par accès direct à la mémoire 25, dont la première partie est désignée par la référence générale 25a et la fin est désignée par la référence générale 25b. 3057969 6 Ainsi en utilisant cette capacité à interrompre et reprendre un transfert mémoire de manière déterministe, chaque processus possède un accès intégral et exclusif aux ressources DMA dans son contexte temporel. L'interruption doit bien entendu être précise afin de permettre une restauration complète du contexte du transfert. Ainsi les moyens de suspension et de reprise comprennent des moyens d'interruption et de reprise des transferts de données et des moyens de sauvegarde de l'état courant du système et du transfert de données en mémoire comprenant par exemple des registres d'état. Ceci permet de fournir un ensemble d'informations sur l'état du système et permet également de contrôler finement le fonctionnement de celui-ci. L'ordonnanceur de tâches va alors charger le processeur par programmation des registres internes du DMA : adresse source, adresse de destination, taille, droits d'accès, etc..., le démarrer ou l'arrêter et enfin le décharger, c'est-à-dire sauvegarder l'état courant 15 du DMA pour une reprise ultérieure. Celui-ci doit donc être capable d'assurer le respect de l'isolation temporelle de l'ensemble des adresses du transfert à travers plusieurs mécanismes. Ces mécanismes peuvent par exemple comprendre un mécanisme principal, consistant par exemple pour le contrôleur hôte, à pouvoir interrompre le DMA à tout 20 moment, par programmation des registres de contrôle de ceux-ci, et des mécanismes secondaires, en étant par exemple associé à une horloge programmable d'interruption autonome en cas de débordement temporel ou les DMA pouvant recevoir une ligne d'interruption matérielle à partir du contrôleur d'exécution... Ainsi et de façon générale, un tel système de pilotage peut alors être associé à : 25 - des registres de commande de suspension du transfert et de reprise du transfert ; - une horloge programmable autonome de suspension du transfert en cas de débordement temporel ; - une ligne matérielle de suspension du transfert... 30 On conçoit alors qu'une telle structure de système de pilotage présente un certain nombre d'avantages notamment au niveau de son déterminisme, qui permet à chaque processus d'avoir un accès intégral et exclusif aux ressources DMA dans son contexte temporel. Il va de soi bien entendu que d'autres applications, d'autres utilisations et d'autres modes de réalisation de ce système de pilotage peuvent être envisagés. 3057969 7 Ainsi par exemple un tel système peut également être utilisé dans le cadre d'une ressource partagée comme cela est illustré sur la figure 4. Sur cette figure 4, un processus 31 lance un transfert court 32, puis un second transfert non contraint temporellement 33. Un processus 34 requiert alors un transfert 35 de plus haute priorité (échéance bornée), le DMA est alors interrompu (sauvegarde de son contexte) et démarre ce transfert 35 de plus haute priorité. Lorsque ce transfert 35 de plus haute priorité se termine, l'ordonnanceur reprend le transfert 33. 10 Ceci permet par exemple d'offrir à l'OS de garantir la latence des transferts à échéance bornée en présence d'autres transferts non contraints en temps d'exécution. REVENDICATIONS1.- Système de pilotage déterministe du fonctionnement de moyens (2) de transfert de données par accès direct à des moyens de mémorisation (3), par un ordonnanceur de tâches (4) en charge de changements de contexte de processus , caractérisé en ce qu'il comporte des moyens déterministes d'établissement et de suspension des transferts de données en mémoire (24, 25) amorcés avant et non terminés lors des changements de contexte et de reprise de ceux-ci lors du retour dans le contexte initial correspondant afin de donner à chaque processus, un accès intégral et 10 exclusif aux moyens de transfert. 2.- Système de pilotage selon la revendication 1, caractérisé en ce que les moyens de suspension et de reprise comprennent des moyens d'interruption et de reprise des transferts de données (14, 25) et des moyens de sauvegarde de l'état courant du 15 système et du transfert de données en mémoire (3). 3.- Système de pilotage selon la revendication 2, caractérisé en ce que les moyens de sauvegarde de l'état courant du système et du transfert de données en mémoire comprennent des registres d'état. 20 4.- Système de pilotage selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est associé à des registres de commande de suspension du transfert et de reprise du transfert. 25 5.- Système de pilotage selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est associé à une horloge programmable autonome de suspension du transfert en cas de débordement temporel. 6.- Système de pilotage selon l'une quelconque des revendications précédentes, 30 caractérisé en ce qu'il est associé à une ligne matérielle de suspension du transfert.