Brevet FR2675922A1 — publié le 19921030

PROCÉDÉ ET DISPOSITIF DE TEST D'UN ENSEMBLE MULTI-CARTES DIUN SYSTEME INFORMATIOUE La présente invention concerne les systèmes informatiques et en particulier le test d'un ensemble multi-cartes dans lequel chacune des cartes est une carte à microprocesseur se testant individuellement. La figure 1 illustre schématiquement un ensemble multi-cartes classique. L'ensemble comprend un bus système B à plusieurs lignes comprenant les lignes d'un bus d'adresses, les lignes d'un bus de données, les lignes d'un bus de contrôle, des lignes d'alimentation et autres. Les lignes sont reliées en parallèle à des connecteurs 10, qui peuvent chacun recevoir une carte C (3 cartes Ci~1, Ci et Ci+l étant représentées), telle T une avec un , une qu'une carte d'interface avec un réseau local (LAN), une carte d'entrée/sortie, une carte d' interface avec le réseau téléphonique (X25), etc. On considèrera ci-après, à titre d'exemple le cas où chacun des connecteurs 10 est associé des lignes de codage de numéro de carte NL. Ces lignes sont reliées, soit à la masse, soit à une ligne d'alimentation positive pour former en binaire un numéro de carte, correspondant généralement au rang du connecteur. Le numéro formé par les lignes NL peut ainsi être exploité par des circuits d'une carte enfichée dans un connecteur 10 et permet d'identifier cette carte. Tout autre moyen d'identification d'une carte pourrait être envisagé. En général, les ensembles multi-cartes sont capables de se tester périodiquement, par exemple à leur mise sous tension. Pour cela, chacune des cartes C comprend un microprocesseur M, une mémoire morte (ROM) contenant les programmes du microprocesseur et une mémoire vive (RAM) dans laquelle sont écrits, entre autres, des résultats de test. Ainsi, chacune des cartes C peut se tester individuellement et # Tune des cartes, couramment appelée carte maître, se charge de rassembler les résultats de test des autres cartes, appelées cartes esclave, et de les communiquer.Par "communiquer" les résultats on entend transmettre ces résultats à un élément du système où ils peuvent être exploités, cet élément pouvant être un écran de terminal pour qu'un opérateur puisse visualiser les résultats, ou bien une unité centrale, gérant plusieurs ensembles multi-cartes, qui interdira l'utilisation par le système des parties défectueuses de cartes défaillantes. La carte maître est une carte dont la mémoire ROM contient un programme adéquat permettant au microprocesseur de la carte de lire les résultats de test des cartes esclave, de les traduire en des données compréhensibles pour, par exemple, T opérateur ou l'unité centrale, et de les communiquer. Une telle carte est, par exemple, une carte dtinterface avec un réseau local qui transmettra les résultats à l'unité centrale, ou une carte d'entrée/sortie reliée à un terminal qui affichera sur 1 écran du terminal les résultats. Un autre type de carte peut aussi être maître si elle est adéquatement programmée et si elle est munie d'une interface avec un terminal. Classiquement, pour tester # Tensemble multi-cartes, la mémoire RAM de chacune des cartes est à double accès, c 'est-à- dire qu'elle est accessible par le microprocesseur de la carte ou de # Textérieur par le microprocesseur d'une autre carte. Les étapes successives du test sont les suivantes. - Chacune des cartes, y compris la carte maître, se teste individuellement et, à la fin du test, elle écrit dans sa mémoire RAM des données correspondant à des résultats de test. - La carte maître, une fois son test achevé, communique ses résultats et attend pendant un intervalle de temps prédéterminé stocké dans sa mémoire ROM. Ce temps prédéterminé correspond à la durée de test de la carte esclave la plus longue à se tester. - La carte maître vient lire successivement les résultats de test dans les mémoires RAM des cartes esclave, les interprète et les communique. Si la carte maître tente de lire dans une carte qui n'a pas fini de se tester, la carte maître signalera que cette carte est défectueuse, qu Telle soit effectivement défectueuse ou qu'elle mette plus longtemps que prévu à se tester. Ainsi, dans les systèmes classiques, la carte maître doit être programmée pour tenir compte de la durée de test la plus longue des cartes susceptibles d'être utilisées. Un inconvénient drun tel système est qu'on ne peut pas rajouter à l'ensemble multi-cartes une nouvelle carte dont la durée de test est supérieure à la durée prédéterminée stockée dans la mémoire ROM de la carte maître. Pour pouvoir utiliser la nouvelle carte, il faut alors reprogrammer ou changer cette mémoire ROM. Un autre inconvenient d'un tel système est que la durée de test de l'ensemble multi-cartes est particulièrement longue. En effet, la durée prédéterminée doit être suffisamment grande pour que l'on puisse utiliser diverses cartes disponibles. Toutefois, si toutes les cartes effectivement utilisées ont une durée de test inférieure à la durée prédéterminée, le test de l'ensemble multi-cartes devient inutilement long. Un objet de la présente invention est de prévoir un test d'un ensemble multi-cartes ne nécessitant pas de changer un programme de test lorsqu'on rajoute une carte supplémentaire à durée de test inconnue. Un autre objet de la présente invention est de prévoir un test d'ensemble multi-cartes particulièrement rapide. Ces objets sont atteints grâce à un procédé de test d'un ensemble multi-cartes d'un système informatique dans lequel chacune des cartes de # Tensemble comprend un microprocesseur et une mémoire qui est accessible par le microprocesseur de la carte au moyen d'un premier ensemble d'adresses et accessible par le microprocesseur d'une autre carte au moyen d'un deuxième ensemble d'adresses, comprenant les étapes consistant à effectuer un test interne de chacune des cartes à la fin duquel des données correspondant à des résultats de test sont écrites dans la mémoire de cette carte ; et à accéder par le microprocesseur d'une première des cartes ayant fini son test interne à une mémoire d'une autre des cartes pour y lire les données écrites lors du test interne de cette autre carte.Selon l'invention, au cours de 1 'étampe de test interne, des données correspondant à un temps restant avant la fin du test de la carte sont successivement écrites dans la mémoire de cette carte, ces données étant exploitées lors d'intervalles successifs par le microprocesseur d'une autre carte pour déterminer si la première carte a arrêté de se tester. Selon un mode de réalisation de # Tinvention, # Tl'étape d'accès se décompose en les étapes suivantes - lire à partir de la première carte le temps restant dans la mémoire d'une autre carte - comparer le temps restant à zéro, et lire les résul tats de test dans la mémoire de # Tautre carte si la comparaison est vraie, sinon stocker ce temps restant et procéder à l'étape suivante ; - après un intervalle de temps suffisamment grand pour qu'un nouveau temps restant soit écrit, lire à nouveau le temps restant et le comparer au temps restant stocké et recommencer la présente étape en cas d'inégalité, sinon signaler que l'autre carte est défectueuse. La présente invention vise aussi un dispositif de test d'un ensemble multi-cartes dans lequel chacune des cartes effectue un test individuel et comprend un microprocesseur accédant à des mémoires vive et morte par un bus système interne couplé à un bus système externe sur lequel sont couplées d'autres cartes, et des moyens d'aiguillage rendant possible l'accès du microprocesseur à la mémoire volatile d'une autre carte et pour rendre la mémoire volatile accessible par le microprocesseur d'une autre carte. Selon # Tinvention, chacune des cartes comprend un moyen de comptage dont le contenu est accessible par le microprocesseur d'une autre carte, chargé initialement avec le temps de test interne de la carte, ce temps étant décrémenté au cours du test interne pour s annuler à la fin du test interne. Selon un mode de réalisation de l'invention, les moyens d'aiguillage comprennent un aiguillage ayant une position où le microprocesseur est relié à sa mémoire volatile, une position où la mémoire volatile est reliée au microprocesseur d'une autre carte, et une position où le microprocesseur est relié à la mémoire volatile d'une autre carte ; et un circuit de commande d'aiguillage relié au bus système interne comprenant un registre de sélection relié à des lignes du bus système externe, et des moyens de comparaison drun numéro écrit sur lesdites lignes à un numéro de carte prédéterminé. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite en relation avec les figures jointes parmi lesquelles La figure 1, précédemment décrite, représente schématiquement un ensemble multi-cartes d'un système informatique ; la figure 2 illustre un ensemble multi-cartes comprenant des circuits permettant de mettre en oeuvre le procédé selon la présente invention ; et la figure 3 illustre sous forme d'organigramme un exemple particulier du procédé selon la présente invention. Dans la suite de la description, on affectera les références des cartes et des éléments de carte d'indices corres- pondant à un numéro de carte. Selon la présente invention, on prévoit de tester un ensemble multi-cartes de n cartes Cl.. ..... . Cn de la manière suivante. Chaque carte se teste individuellement et écrit dans une mémoire à double accès RAM, d'une part, des données correspondant à des résultats de test classiques R et, d'autre part, lors d'intervalles de temps successifs, de préférence périodiques, des données correspondant au temps Tr qu'il faut encore à la carte avant de terminer son test. L'une quelconque Ci des cartes ayant fini son test peut se comporter en carte maître et lire le contenu des mémoires RAM des autres cartes. Cette carte maître interprétera le contenu de la mémoire RAMk d'une carte Ck différemment selon la valeur des données Trk mémorisées dans cette mémoire.On suppose que la carte maître tente une première lecture à un instant to et que Trk a alors une valeur Trk(to). Alors - si Trk(t0) est nul, la carte maître lira les résultats de test Rk et les communiquera ; - si Trk( t0) est non nul, la carte maître stocke cette valeur dans sa mémoire RAM et passe à une autre opération, par exemple lire la mémoire d'une autre carte C, et ne vient relire les données Trk qu'à un instant tl, après un intervalle de temps suffisamment grand pour que les données aient normalement été renouvelées et aient une valeur Trk(tl) ; et - si à la deuxième lecture, les données Trk n'ont pas changé, c'est-à-dire que Trk(tl)=Trk(to) cela signifie que la carte Ck s'est bloquée en cours de test et elle sera signalée comme défectueuse par la carte maître.Par contre, si les données Trk ont changé, cela signifie que le test de la carte Ck se déroule normalement et la carte maître viendra relire ces données un ou plusieurs instants ultérieurs. La figure 2 illustre un ensemble multi-cartes et une partie des circuits internes d'une carte C, permettant de mettre en oeuvre le procédé selon la présente invention. Chaque carte comprend un microprocesseur M relié à un bus système interne Bint comprenant un bus de données, un bus d'adresse et un bus de contrôle. Les programmes du microprocesseur, notamment le programme de test, sont stockés dans une mémoire morte ROM reliée au bus système interne. Le bus système interne est relié par l'intermédiaire d'un aiguillage 20 à une mémoire vive RAM et à un bus système externe B comprenant des bus de données, d'adresse et de contrôle. Les lignes des bus externes font partie du bus système B, mentionné en relation avec la figure 1, sur le quel toutes les cartes C de # Tensemble multi-cartes sont connec- tées en parallèle. L'aiguillage 20 est à trois positions a, b et c sélectionnées par un circuit de commande d'aiguillage 22. A la position a, l'aiguillage 20 connecte la mémoire RAM au bus système interne Bint, ce qui permet une communication normale interne du microprocesseur M avec la mémoire RAM. A la position b, la mémoire RAM est reliée au bus système externe, ce qui permet d'accéder à la mémoire RAM de # Textérieur, par exemple par le microprocesseur d'une autre carte Ck. A la position c, le microprocesseur M est relié au bus système externe B, ce qui lui permet d'accéder à # Textérieur, notamment à une mémoire RAMk d'une autre carte Ck. Le circuit 22 est relié au bus système interne et comprend un registre de sélection TR relié à des lignes supplémentaires N du bus de contrôle externe. Le rôle de ce registre sera compris ci-après. Le circuit 22 est également relié aux fils de codage de numéro de carte NL mentionnés en relation avec la figure 1. La mémoire RAM d'une carte C comprend une zone destinée aux besoins de la carte lors de son fonctionnement normal, et une zone réservée au test. Dans la zone réservée au test sont écrites les diverses données de test précédemment mentionnées à savoir les résultats de test R, et les données de temps restant Tr. On peut aussi venir y inscrire la valeur des données de temps restant d'une autre carte et éventuellement les résultats de test d'une autre carte. En début de test, Tr est initialisé à une valeur Tt stockée dans la mémoire ROM et correspondant au temps que met la carte à se tester. Ce temps Tt est, par exemple, déterminé expérimentalement lors de la fabrication de la carte. Le fonctionnement du circuit associé à une carte Ci est le suivant. Au cours du test de la carte Ci, le microprocesseur Mi accède à la mémoire RAMi par un premier ensemble d'adresses, y décrémente le temps Tri et y écrit les résultats de test Ri une fois le test terminé. Les adresses du premier ensemble d'adresses sont, par exemple, des adresses basses inférieures à la plus grand adresse nécessaire pour adresser toute la mémoire RAMi et indiquent au circuit 22 que l'aiguillage 20 doit être positionné à la position a. Lorsque le microprocesseur de la carte Ci veut acceder à la mémoire RAMk d'une carte Ck, celui-ci écrit le numéro k de la carte à interroger dans le registre TRi. Le registre TRi présente le numéro k sur les lignes supplémentaires N du bus de contrôle externe. Le circuit 22 de chacune des cartes C compare le numéro k présent sur les lignes N au numéro attribué à la carte, codé sur les fils NL. Ainsi, le circuit 22k de la carte interrogée Ck reconnaît le numéro k et positionne son aiguillage 20k à la position b où la mémoire RAMk de la carte Ck est reliée au bus système externe. Pour que le microprocesseur Mi accède à la mémoire RAMk il faut encore positionner l'aiguillage 20i à la position c reliant le microprocesseur Mi au bus système externe B. Pour cela, le microprocesseur Mi émet des adresses d'un deuxième ensemble d'adresses, par exemple des adresses hautes, que le circuit de commande 22i reconnait en positionnant l'aiguillage convenablement. Les adresses hautes sont interprétées par la mémoire RAM d'une autre carte de la même façon que ses adresses basses correspondantes. Le microprocesseur Mi de la carte Ci peut alors accéder à la mémoire RAMk pour y lire son temps Trk ou ses résultats de test Rk. La gestion des collisions, c'est-à-dire des possibilités que plusieurs circuits écrivent en même temps sur des mêmes lignes, notamment sur les lignes supplémentaires N du bus de contrôle externe, est effectuée de façon classique et ne sera pas décrite car elle est inutile à la compréhension de la présente invention. L'organigramme de la figure 3 illustre une suite d'étapes correspondant à un exemple du procédé selon la présente invention. Le bloc 200 correspond au début du processus de test d'une carte de numéro i. A l'étape 201, la valeur de temps restant Tri stockée dans la mémoire RAMi est initialisée à la valeur Tti stockée dans la mémoire ROMi. A l'étape 202 la carte Ci effectue un test interne, à la fin duquel ses résultats de test Ri sont écrits dans la mémoire RAMi. Pendant le test, on décrémente la valeur Tri, de préférence périodiquement. Ainsi, la valeur Tri à un instant donné reflète le temps restant avant la fin du test de la carte Ci. Quand Tri devient égal à 0, la carte Ci a terminé son test interne et on passe à l'étape 203. A l'étape 203, on examine si la carte est maître, en examinant par exemple si un bit prédéterminé de la mémoire RJMi est positionné à "1" ou à "0". Si OUI, le processus passe à l'étape 204, si NON le processus se termine au bloc FIN 210. A l'étape 204, la carte Ci lit la valeur Trk(tl) dans la mémoire RAMk d'une autre carte Ck, (Trk(tl) désignant la valeur de Trk à l'instant t1 où est effectué la lecture) et mémorise cette valeur à une adresse déterminée de sa mémoire RAMi. A l'étape 205, on examine si Trk(tî)=0. Si OUI, le processus passe à l'étape 206 où la carte Ci lit les résultats de test Rk dans la mémoire RAMk de la carte Ck et communique ou mémorise ces résultats. Le processus se termine au bloc 210. Si NON, le processus continue à l'étape 207 où on examine si le temps Trk(tl) est égal à la valeur Trk(tO) précédemment stockée dans la mémoire RAMi (ou à une valeur initiale TrOk). Si, à l'étape 207 la réponse est NON, le processus continue à l'étape 208 où le temps Trk(t1) est stocké à la place de la valeur Trk( tO) dans la mémoire RAMi. Le processus recommence à l'étape 204 après un intervalle de temps suffisamment grand pour que le temps Trk soit décrémenté dans la mémoire RAMk. Si, à l'étape 207 la réponse est OUI, la carte Ck est signalée comme défectueuse par la carte Ci à l'étape 209. Le processus se termine au bloc 210. La carte Ci, si elle est maître, viendra ainsi interroger séquentiellement chacune des autres cartes Ck pour communiquer les résultats de test des cartes. On peut envisager que toutes les cartes soient maitres. Alors, les cartes reliées à des périphériques, tels que des terminaux ou des imprimantes, communiqueront les résultats à ces périphériques, et les cartes qui ne sont pas reliées à des périphériques communiqueront les résultats à l'unité centrale, par l'intermédiaire d'une carte LAN si ltensemble multi-cartes appartient à un réseau. Le fait que toutes les cartes soient maîtres simplifie leur programmation car leurs mémoires ROM contiendront une importante partie commune de programme. Ainsi, grâce au procédé selon la présente invention, il est possible de rajouter à un ensemble multi-cartes une carte supplémentaire à temps de test inconnu. Le système peut commencer à fonctionner dès que suf fi- samment de cartes ont fini de se tester et au plus dès que la carte la plus longue à se tester a fini de se tester. La présente invention peut être utilisée dans tout ensemble multi-cartes dépendant ou indépendant d'un réseau local. REVEND ICAT IONS 1. Procédé de test d'un ensemble multi-cartes d'un système informatique dans lequel chacune des cartes (C) de l'ensemble comprend un microprocesseur (M) et une mémoire (RAM) qui est accessible par le microprocesseur (M) de la carte au moyen d'un premier ensemble d'adresses et accessible par le microprocesseur d'une autre carte au moyen d' un deuxième ensemble d'adresses, comprenant les étapes suivantes a) effectuer un test interne de chacune des cartes (C) à la fin duquel des données correspondant à des résultats de test sont écrites dans la mémoire (RAM) de cette carte ; et b) accéder par le microprocesseur (Mi) d'une première des cartes (Ci) ayant fini son test interne à une mémoire (RAMk) d'une autre des cartes (Ck) pour y lire les données écrites lors du test interne de cette autre carte caractérisé en ce qu'au cours de l'étape a) des données correspondant à un temps restant (Tr) avant la fin du test de la carte sont successivement écrites dans la mémoire de cette carte (C), ces données étant exploitées lors d'intervalles successifs par le microprocesseur d'une autre carte pour déterminer si ladite carte (C) a arrêté de se tester. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape b) se décompose en les étapes suivantes - lire à partir de la première carte le temps restant (Trk(tO)) dans la mémoire (RAMk) d'une autre carte (Ck) - comparer le temps restant à zéro, et lire les résultats de test dans la mémoire (RAMk) de l'autre carte (Ck) si la comparaison est vraie, sinon stocker ce temps restant (Trk(tO)) et procéder à l'étape suivante - après un intervalle de temps suffisamment grand pour qu'un nouveau temps restant soit écrit, lire à nouveau le temps restant (Trk(tl)) et le comparer au temps restant stocké (Trk( to)) et recommencer la présente étape en cas d'inégalité, sinon signaler que l'autre carte (Ck) est défectueuse. 3. Dispositif de test d'un ensemble multi-cartes dans lequel chacune des cartes effectue un test individuel et comprend: - un microprocesseur (M) accédant à des mémoires vive (RAM) et morte (ROM) par un bus système interne (Bint) couplé à un bus système externe (B) sur lequel sont couplées d'autres cartes ; et - des moyens d'aiguillage (20, 22) rendant possible 1'accès du microprocesseur (M) à la mémoire volatile (RAMk) d'une autre carte (Ck) et pour rendre la mémoire volatile (RAM) accessible par le microprocesseur d'une autre carte caractérisé en ce que chacune des cartes comprend un moyen de comptage dont le contenu est accessible par le microprocesseur d'une autre carte, chargé initialement avec le temps de test interne (Tt) de la carte, ce temps étant décrémenté au cours du test interne pour s'annuler à la fin du test interne. 4. Dispositif de test selon la revendication 3, caractérisé en ce que les moyens d'aiguillage comprennent - un aiguillage (20) ayant une position (a) où le microprocesseur (M) est relié à sa mémoire volatile (RAM), une position (b) où la mémoire volatile (RAM) est reliée au microprocesseur d'une autre carte (Ck), et une position (c) où le microprocesseur (M) est relié à la mémoire volatile d'une autre carte (Ck) ; et - un circuit de commande d'aiguillage (22) relié au bus système interne, commandant l'aiguillage (20) et comprenant un registre de sélection (TR) relié à des lignes (N) du bus système externe (B), et des moyens de comparaison d'un numéro écrit sur lesdites lignes (N) à un numéro de carte prédéterminé.