Brevet FR2808901A1 — publié le 20011116

I SYSTEME DE TRAITEMENT DE DONNEES L'invention concerne un système de traitement de données du type comprenant un processeur, une mémoire et un moniteur, ledit processeur étant connecté à la mémoire et comprenant une configuration mémoire qui identifie des emplacements à l'intérieur de la mémoire o des données précises sont stockées. Les systèmes de traitement utilisés dans les applications aéronautiques et 1o militaires sont habituellement construits et testés spécialement pour garantir qu'ils travailleront de la façon prévue. Toutefois, les fabricants subissent une pression de plus en plus forte leur demandant de réduire le coût de l'équipement en utilisant des composants normaux du commerce. Malheureusement, les processeurs qu'on trouve dans le commerce ne sont pas appropriés pour être utilisés dans les applications à haute intégrité pour différentes raisons. Par exemple, bien que le système d'exploitation du microprocesseur contienne une configuration mémoire indiquant l'emplacement de la mémoire o différents articles de programmes et de données sont stockés, les mêmes articles de données ne sont généralement pas placés au même emplacement chaque fois qu'on allume le processeur. Du fait que les données ne sont pas placées dans la même partition de la mémoire à chaque fois, il ne peut pas être garanti que les données sont toujours contenues dans des partitions de la mémoire qui ont une capacité suffisante, ou encore qui ont été testées au standard requis pour une application particulière. En outre, bien que plusieurs applications de logiciels différentes soient exécutées simultanément sur un processeur, le système d'exploitation exécute habituellement les différentes applications dans des tranches de temps qui sont habituellement attribuées arbitrairement. Ceci peut avoir pour résultat que certaines applications se voient attribuer un temps insuffisant pour être exécutées chaque fois de façon fiable, tandis que des applications moins importantes se voient attribuer un temps plus long que celui qui est strictement nécessaire. En opération, les microprocesseurs fonctionnent dans l'un ou l'autre de deux modes différents, à savoir un mode utilisateur et un mode superviseur. Les programmes d'application s'exécutent entièrement dans le mode utilisateur tandis que le mode superviseur est plus puissant et est utilisé pour offrir des services de système d'exploitation au mode utilisateur et pour exécuter le système d'exploitation du processeur. Les processeurs classiques basculent du mode utilisateur au mode superviseur, soit à la fin d'une période de temps attribuée pour une application particulière, soit lorsque l'application appelle des services en provenance du mode utilisateur. On ne dispose généralement pas d'indication signalant le fait que le processeur travaille dans le mode utilisateur ou dans le mode superviseur. Ceci contribue à engendrer une incertitude concernant l'exploitation du système processeur, ce qui n'est pas acceptable dans les systèmes à haute intégrité. Il existe des systèmes qui évitent ces problèmes, mais ces systèmes exigent une fabrication spéciale qui n'est généralement pas appropriée pour être utilisée avec des processeurs du commerce. Un but de la présente invention consiste à réaliser un système de traitement de données perfectionné. Selon un aspect de la présente invention, on fournit un système de traitement de données tel que défini en préambule, caractérisé en ce que la configuration mémoire est agencée de manière que les données associées à une application soient stockées au même emplacement chaque fois qu'une application est exécutée, en ce que le processeur est agencé pour exécuter chaque application pendant des tranches de temps de traitement spécifiées, le moniteur contenant une information qui indique que l'emplacement de la mémoire dans lequel les données associées à chaque application sont stockées, et une information qui indique les tranches de temps pendant lesquelles le processeur devra exécuter chaque application, en ce que le moniteur est connecté de manière à recevoir des signaux indicatifs des emplacements de mémoire qui sont adressés et de l'application en cours d'exécution, et en ce que le moniteur est agencé pour vérifier si ce sont les bons emplacements de la mémoire qui sont adressés et si c'est la bonne application qui est en cours d'exécution dans une tranche de temps donnée. Selon un autre aspect de la présente invention, le processeur peut travailler dans deux modes différents dans lesquels il a accès à différents emplacements de mémoire respectifs le moniteur contenant une mémoire d'au moins un mot-clé, ledit processeur étant agencé pour fournir un mot-clé au moniteur lorsqu'il bascule entre les deux modes différents, le moniteur étant capable de comparer le mot.clé fourni par le processeur au mot-clé stocké dans le moniteur, et agencé pour refuser au processeur l'accès à des emplacements de la mémoire associés à un mode si le mot-clé fourni par le processeur n'est pas compatible avec le mot-clé contenu dans le moniteur. La mémoire comprend de préférence une mémoire flash contenant un logiciel relatif aux applications qui doivent être exécutées sur le système et qui peut être chargé dans d'autres emplacements de la mémoire. La présente invention se mieux comprise en référence à la description de formes de réalisation préférées données à titre d'exemples et au dessin annexé dans lequel la figure unique représente schématiquement le système. Le système comprend un processeur 1 et une mémoire 20. Le processeur 1 peut être d'un type classique et il comprend une unité de configuration mémoire 10 qui spécifie des emplacements de la mémoire o différentes données doivent être stockées. Le processeur 1 est utilisé pour exécuter les différentes applications de programme d'un logiciel. La mémoire 20 comporte de nombreux emplacements différents qui peuvent être adressés individuellement pour créer une mémoire de données partitionnée. On comprendra que cette mémoire 20 ne doit pas nécessairement être une unité unique mais qu'elle pourrait être composée d'un nombre quelconque d'unités séparées. La mémoire 20 peut comprendre une mémoire flash 201 dans laquelle tous les logiciels relatifs aux applications qui doivent être exécutées sur le système sont stockés et depuis laquelle le logiciel peut être récupéré pour être envoyé à d'autres emplacements de la mémoire. La mémoire 20 est connectée au processeur 1 par l'intermédiaire de trois canaux de données 11, 12 et 13. Un canal de données 11 transporte l'information concernant des emplacements d'adresses contenus dans la mémoire 20, le deuxième canal 12 transporte des données à fournir à la mémoire ou à prendre dans la mémoire à l'adresse spécifiée sur le premier canal et le troisième canal 13 spécifie si les données doivent être écrites dans la mémoire ou lues dans cette mémoire. Ces trois canaux 11, 12 et 13 peuvent être constitués par un bus de données unique. Le système comprend un composant additionnel qui est constitué par un dispositif moniteur 30 qui a pour fonction de vérifier le fonctionnement du système. Le moniteur 30 est connecté à un dispositif 2 constitué par une EPROM ou par un processeur de manière que l'information provenant du dispositif soit fournie au moniteur. Le dispositif 2 contient des paramètres déterminés au cours de la conception du système, qui définissent des droits d'accès admissibles à la mémoire et des temps admissibles de durée d'exécution. Le dispositif 2 peut aussi gérer des violations, soit en forçant le processeur 1 à s'arrêter, soit en produisant un avertissement ou une alarme. Le moniteur 30 est aussi connecté aux trois canaux 11 à 13 de telle manière qu'il reçoive des informations de ces trois canaux. Le moniteur 30 renferme une mémoire 31 d'informations concernant les emplacements ou les partitions de la mémoire 20 auxquels différents articles de données doivent être stockés et des informations concernant les tranches de temps pendant lesquelles des applications spécifiées doivent être exécutées. Le moniteur 30 contient aussi des registres 32 qui contiennent des mots-clés qu'il s'agit de comparer avec des mots-clés fournis au moniteur. Le processeur 1 bascule entre le mode utilisateur UM et le mode superviseur SM selon qu'il exécute une application ou une autre fonction. Le processeur 1 bascule entre ces deux modes au moyen d'une interface de programmes d'application API qui est une couche logicielle à haute assurance. Dans la s présente invention, la API est agencée pour envoyer un mot-clé au moniteur chaque fois qu'on lui demande de passer de UM à SM et elle envoie un mot-clé différent chaque fois qu'il revient à UM. Si le mot-clé transmis par la API correspond à celui stocké dans le registre 32 dans le moniteur 30, le moniteur autorise l'accès du processeur 1 aux partitions de la mémoire 20 réservées exclusivement pour l'utilisation dans le mode superviseur. Si le mot- clé ne correspond pas, le moniteur envoie un signal au processeur 1 pour indiquer un défaut de fonctionnement. A partir des données issues des canaux 1 à 13 et du processeur E/S 2, le moniteur 30 sait quelle application il est en cours d'exécuter et à quelle partition de mémoire un accès a été demandé. Si la partition de mémoire demandée n'est pas appropriée pour l'application en cours d'exécution, le moniteur refuse l'accès, même si le bon mot-clé est envoyé. Le moniteur 30 indique aussi le moment o une application commence et se termine sur le processeur et les partitions de la mémoire auxquelles on a accès à un moment donné. Les mémoires 31 dans le moniteur 30 définissent des séquences de temps et des cartes d'adresses de mémoire qui tournent en boucle répétitivement. Si on n'a pas accès à la partition de la mémoire qui est appropriée dans la tranche de temps appropriée, le moniteur 30 indique un défaut de fonctionnement au processeur 1. Le système de la présente invention peut aisément être appliqué à des processeurs classiques vendus clans le commerce sans modifications excessives. Il peut aussi être utilisé avec une large diversité de différents processeurs et il est relativement protégé des changements de conception des processeurs. La présente invention n'est pas limitée à la forme de réalisation préférée décrite, mais peut subir différentes modifications ou variantes évidentes pour l'homme du métier. Revendications 1. Système de traitement de données comprenant un processeur (1), une mémoire (20) et un moniteur (30), ledit processeur étant connecté à la mémoire et comprenant une configuration mémoire (10) qui identifie des emplacements à l'intérieur de la mémoire (20) o des données précises sont stockées, caractérisé en ce que la configuration mémoire (10) est agencée de manière que les données associées à une application soient stockées au même emplacement chaque fois qu'une application est exécutée, en ce que le processeur (1) est agencé pour exécuter chaque application pendant des tranches de temps de traitement spécifiées, le moniteur (30) contenant une information qui indique que l'emplacement de la mémoire dans lequel les données associées à chaque application sont stockées et une information qui indique les tranches de temps pendant lesquelles le processeur devra exécuter chaque application, en ce que le moniteur (30) est connecté de manière à recevoir des signaux indicatifs des emplacements de mémoire qui sont adressés et de l'application en cours d'exécution, et en ce que le moniteur (30) est agencé pour vérifier si ce sont les bons emplacements de la mémoire qui sont adressés et si c'est la bonne application qui est en cours d'exécution dans une tranche de temps donnée. 2. Système de traitement selon la revendication 1, caractérisé en ce que le processeur (1) peut travailler dans deux modes différents dans lesquels il a accès à différents emplacements de mémoire respectifs, en ce que le moniteur (30) contient une mémoire (31) d'au moins un mot-clé, en ce que le processeur (1) est agencé pour fournir un mot-clé au moniteur (30) lorsqu'il bascule entre les deux modes différents, en ce que le moniteur (30) est capable de comparer le mot-clé fourni par le processeur (1) au mot-clé stocké dans le moniteur, et en ce que le moniteur (30) est agencé pour refuser au processeur (1) I'accès à des emplacements de la mémoire (20) associés à un mode si le mot-clé fourni par le processeur n'est pas compatible avec le mot-clé contenu dans le moniteur. 3. Système selon les revendications 1 ou 2, caractérisé en ce que la mémoire (20) comprend une mémoire flash (201) qui contient un logiciel relatif aux applications qui doivent être exécutées sur le système et qui peut être chargé à d'autres emplacements de la mémoire.