Brevet FR2675603A1 — publié le 19921023

PROCEDE ET DISPOSITIF DE TEST D'UN CIRCUIT D'UN SYSTEME INFORMATIOUE La présente invention concerne les systèmes informatiques et en particulier la vérification du bon transfert d infor- mations entre certains des circuits d'un système informatique et leurs circuits environnants. La figure 1 illustre partiellement un système informatique classique. Ce système comprend un ordinateur COMP 10 associé à un réseau 11 sur lequel sont reliés divers éléments, notamment des serveurs 12. Un serveur comprend généralement une carte dtinterface LAN 13 entre le réseau 11 et un bus système SB auquel sont reliées des cartes d 'entrée/sortie 14. Les cartes d'entrée/sortie 14 sont, par exemple, connectées à des terminaux, au réseau téléphonique, à des périphériques... L'ensemble des cartes du serveur 12 est en général géré par la carte d'interface 13. Chacune des cartes du serveur comprend un microprocesseur s'occupant de la gestion de la carte elle-même et permettant à celle-ci d'effectuer diverses opérations, notamment se tester et communiquer le résultat au système informatique. La figure 2 illustre un circuit électronique simplifié d'une des cartes 14 qui est ici une carte d'entrée/sortie. Cette carte comprend un microprocesseur 20 reliée à un bus système D,A,C interne à la carte, incluant un bus de données D, un bus d'adresse A et un bus de contrôle C. Le bus de données comporte, par exemple, 16 lignes pour transmettre des mots de 16 bits et le bus d'adresses, par exemple, 24 lignes pour véhiculer des adresses de 24 bits. Le bus de contrôle comprend au moins trois lignes : une ligne d'horloge (CK), une ligne de lecture/ écriture (R/W), et une ligne de confirmation de bonne réception de données (DTACK). Dans la suite de la description, on ne mentionnera que la ligne R/W, les fonctions des autres lignes n'étant pas nécessaires pour la compréhension de la présente invention. La ligne R/W permet, comme cela sera exposé plus loin, au microprocesseur d'établir un mode lecture (R) ou un mode écriture (W). Des périphériques, non représentés, sont reliés à des circuits d'entrée/sortie (I/O) 21. Chaque circuit I/O peut gérer plusieurs périphériques dont le nombre peut aller, par exemple, jusqu'à 8. Chaque circuit I/O comprend une entrée reliée à une ligne de sélection CS (du terme anglo-saxon "Chip-Select") et une sortie reliée à une ligne de requête d'interruption IRQ. Les lignes CS sont connectées à des sorties d'un circuit décodeur d'adresses 23 relié à plusieurs lignes du bus d'adresses, correspondant à des bits d'adresse de poids fort AH. Les lignes IRQ sont reliées à des entrées d'un circuit décodeur de niveau de priorité d'interruption 25 qui fournit au microprocesseur 20 un niveau de priorité codé en binaire, par exemple ici sur trois bits, par des lignes IPL. Chacun des circuits I/O est également relié à un certain nombre des lignes du bus de données, par exemple 8, pour transmettre des mots de 8 bits entre la carte et le périphérique, et à des lignes d'adresses de poids faible AL. La figure 3 représente une partie des circuits internes d'un circuit d'entrée/sortie 21. Ce circuit d' entrée/sortie est destiné à communiquer avec deux périphériques non représentés. A chaque périphérique sont associés trois registres, dont les fonctions seront décrites ci-après, à savoir un registre TR d'émission de données, un registre RR de réception de données et un registre CR de contrôle. Chacun des registres est également relié au bus de contrôle C, au bus de données D et à une ligne de sélection interne CSi permettant à un décodeur d'adresses interne 32 de sélectionner le registre. Le décodeur d'adresses 32 est relié à la ligne de sélection CS du circuit 21 et à des lignes d'adresses de poids faible AL au nombre de trois pour pouvoir sélectionner au moins six registres.Toutes les entrées et sorties du circuit se font par l'intermédiaire d 'ampli fi- cateurs de courant 33. Dans le registre TR sont écrits des mots à transmettre au périphérique, le périphérique écrit des mots qui sont à transmettre sur le bus de données dans le registre RR, et dans le registre CR sont écrites des données de contrôle qui déterminent un protocole de communication, c'est-a-dire la manière de communiquer avec le périphérique, comme par exemple la vitesse de communication, le nombre de bits par mot, la parité des mots... Les registres CR sont reliés à des circuits internes non représentés qui exploitent les données écrites dans ces registres pour gérer la communication. Pour lire ou écrire dans l'un des registres du circuit 21, les opérations effectuées par le microprocesseur de la carte sont les suivantes - la ligne R/W du bus de contrôle est positionnée à un état logique, généralement "1" pour une lecture et "O" pour une écriture ;; - le microprocesseur émet une adresse sur le bus d'adresses pour sélectionner le registre souhaité - les bits de poids fort AH de l'adresse sont décodés par le circuit décodeur d'adresses 23 qui sélectionne un des circuits 21 en positionnant la ligne CS associée à un état actif, généralement "0" - les bits de poids faible AL de l'adresse sont décodés par le décodeur 32 du circuit 21 sélectionné, ce déco- deur sélectionnant le registre souhaité par l'intermédiaire de la ligne CSi associée - le registre ainsi sélectionné écrira son contenu sur le bus de données si la ligne R/W est à "0", ou il lira un mot présenté par le microprocesseur sur le bus de données si la ligne R/W est à "1". Quand un périphérique désire communiquer avec le système, le circuit 21 associe forte sa sortie IRQ à un état actif, généralement "0", ce qui correspond à une requête d'interruption. Les circuits permettant d'établir cette requête d'interruption ne sont pas décrits. Le circuit décodeur 25 transforme cette requête en un niveau de priorité IPL en fonction de la priorité attribuée au circuit 21 concerné. Selon le niveau de priorité, le microprocesseur interrompt ou non les opérations qu'il est en train d'effectuer. Lorsque le microprocesseur interrompt ses opérations, celui-ci recherche le circuit 21 ayant requis l'interruption en sélectionnant séquentiellement en mode lecture (ligne R/W à "1") les registres RR des circuits 21. Le registre RR du circuit 21 ayant requis l'interruption écrit son contenu sur le bus de données quand il est sélection né, puis la sortie IRQ du circuit I/O passe à son état initial, généralement 1. Des pannes courantes sur les cartes sont dues à des chemins d'accès défectueux entre divers circuits de la carte. Un chemin d' accès comprend généralement une piste conductrice sur la carte, une soudure de la piste conductrice à une broche de connexion du circuit intégré, la liaison de la broche de connexion à un amplificateur de courant dans la puce du circuit intégré, la liaison de l'amplificateur à des pistes conductrioes de la puce, et éventuellement des liaisons entre divers circuits de la puce. Des défauts dans ces chemins d'accès peuvent résulter, par exemple, d'une mauvaise soudure des broches de connexion sur la piste de la carte, de la destruction des amplificateurs, d'une mauvaise qualité du silicium de la puce... Pour détecter certains de ces défauts, le microprocesseur exécute périodiquement, par exemple à la mise sous tension, un programme de test de la carte. Un des tests consiste à vérifier la communication de la carte avec les périphériques. Pour cela on teste généralement la communication entre le microprocesseur et les circuits d'entrée/sortie I/O. Si ce test est bon et qu'il existe un défaut de fonctionnement d'un périphérique, cela signifie que le défaut est localisé dans les communications entre des circuits d'entrée/sortie et leurs périphériques, ou dans le périphérique. Un test classique consiste à vérifier la bonne connexion du circuit I/O au bus de données, cette connexion étant une des sources les plus fréquentes de pannes. Pour cela on écrit, à partir du bus de données, des mots de test dans un des registres du circuit 21 et on tente de les relire sur le bus de données. Le registre RR est à lecture seule, c 'est-à-dire qu'on ne peut pas écrire dans le registre RR à partir du bus de données. Dans le registre CR, certains bits sont à lecture seule et 1' écriture dans les autres de données inadéquates peut entraîner des actions indésirables du périphérique. Le registre TR peut, lui, être lu et écrit à partir du bus de données et c'est dans ce registre que sont écrits les mots de test car il s'avère être le plus adéquat.Les mots relus sont comparés aux mots de test et on détermine si des chemins d'accès entre le registre et le bus de données sont défectueux. Toutefois, on ne peut écrire dans le registre TR que des mots qui correspondent à des données ignorées par le périphérique associé car on veut éviter d'actionner ce dernier de manière incontrôlée. Ainsi, le jeu de mots que l'on peut écrire dans le registre est limité et on ne peut tester de manière exhaustive toutes les possibilités de défaut des chemins d'accès. De plus, le jeu de mots que l'on peut écrire dans le registre dépend du type de périphérique relié à ce registre, il faut donc prévoir un programme de test par type de périphérique relié. Un objet de la présente invention est de tester de manière exhaustive les chemins d'accès entre un circuit et un bus de données. Cet objet est atteint grâce à un procédé pour tester la connexion d'un circuit d'entrée/sortie d'un système informatique à un bus de données, le circuit comprenant au moins un premier registre destiné à transmettre des données entre un périphérique et le système informatique et couplé au bus de données, à un bus d'adresses, à un bus de contrôle, et à un autre élément, comprenant les étapes suivantes : prévoir dans le circuit d'entrée/sortie un registre supplémentaire couplé seulement aux bus de données, d'adresses et de contrôle ; adresser le registre supplémentaire par une adresse ignorée par le premier registre ; écrire un mot de test présenté sur le bus de données dans le registre supplémentaire ; et lire le mot stocké dans le registre supplémentaire sur le bus de données et le comparer au mot de test. Selon un aspect plus général, la présente invention prévoit un procédé pour tester la connexion d'un circuit d'un système informatique à un bus de données, le circuit comprenant au moins un premier registre couplé au bus de données, à un bus d'adresses, à un bus de contrôle, et à un autre élément, comprenant les étapes suivantes : prévoir dans ledit circuit un registre supplémentaire couplé seulement aux bus de données, d'adresses et de contrôle ; adresser le registre supplémentaire par une adresse ignorée par le premier registre ; écrire un mot de test présenté sur le bus de données dans le registre supplémentaire et lire le mot stocke dans le registre supplémentaire sur le bus de données et le comparer au mot de test. La présente invention prévoit aussi un système informatique comprenant : un microprocesseur relié à des bus de données, d'adresses et de contrôle ; et un circuit d'entrée/ sortie comprenant au moins un premier registre couplé aux bus de données, d'adresses et de contrôle et à un autre élément. Le circuit d' entrée/sortie comprend un registre supplémentaire couplé seulement aux bus de données, d'adresses et de contrôle, et adressable par une adresse ignorée par le premier registre. Selon un aspect plus général, la présente invention prévoit un système informatique comprenant : un microprocesseur relié à des bus de données, d'adresses et de contrôle ; et un circuit comprenant au moins un premier registre couplé aux bus de données, d'adresses et de contrôle et à un autre élément. Ledit circuit comprend un registre supplémentaire couplé seulement aux bus de données, d'adresses et de contrôle, et adressable par une adresse ignorée par le premier registre. Un avantage de la présente invention est qu'un périphérique ne peut pas être activé par les mots de test. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante de modes de réalisation particuliers faite en relation avec les figures jointes parmi lesquelles les figures 1, 2 et 3 précédemment décrites, représentent respectivement un système informatique classique en réseau, une carte à microprocesseur du système informatique et un circuit de la carte ; et la figure 4 représente un mode de réalisation selon la présente invention d'un circuit d 'entrée/sortie. Le circuit d'entrée/sortie 21 selon la présente invention représenté en figure 4 comprend tous les éléments de la figure 3 désignés par les mêmes références et un registre supplémentaire (TEST-R) 34 relié au bus de données et à une ligne de sélection interne CSi. La fonction de décodage du décodeur d'adresses interne 32 a été modifiée pour pouvoir sélectionner le registre supplémentaire 34. Dans 1' exemple de la figure 4, les trois lignes d'adresses de poids faible AL prévues dans le circuit classique de la figure 3 sont suffisantes pour pouvoir adresser ce registre supplémentaire 34. En effet, pour adresser les six registres existants, il fallait au moins trois lignes d'adresses, ce qui autorisait huit combinaisons dont six seulement étaient utilisées.Avec le registre de test supplémentaire 34, on utilisera donc sept combinaisons et on n'aura pas besoin d'augmenter le nombre de lignes d'adresses arrivant sur le circuit d'entrée/sortie. Dans la majorité des circuits d'entrée/sortie existants, le nombre de registres que lton doit pouvoir adresser est inférieur au nombre de combinaisons binaires possibles sur les lignes d'adresses arrivant sur le circuit. Lors d'une phase de test de la connexion du circuit 21 au bus de données D, l'invention prévoit les étapes suivantes - établir le mode écriture, sélectionner le registre 34 et présenter un mot de test sur le bus de données D - établir le mode lecture, sélectionner le registre 34 et lire le mot présent sur le bus de données D. Les mots de test sont écrits et lus à travers les chemins d'accès testés comprenant la connexion du bus de données D au circuit 21, l'amplificateur 33 et la connexion de l'amplificateur au bus de données à l'intérieur du circuit 21. En supposant que l'absence de signal sur les lignes du bus de données D est interprétée comme un niveau logique 0 par les circuits qui reçoivent ces lignes en entrée, certains résultats des comparaisons peuvent, par exemple, être interprétés de la manière suivante. Si le mot de test comprend un seul bit à "1" et si ce bit est à "0" dans le mot lu, le chemin d'accès correspondant à ce bit est coupé. Si, dans le même cas, le mot lu comprend plusieurs bits à "1", les chemins d'accès correspondant à ces bits à "1" sont court-circuités. La présente invention permet de détecter diverses autres pannes. On peut détecter des couplages inductifs entre des lignes du bus de données en essayant des mots de test comprenant un nombre élevé de bits à "1". En effet un nombre élevé de bits à "1" pourrait, par couplage inductif et pendant un temps bref mais suffisamment long pour que des valeurs erronées soient stockées dans le registre, forcer à "1" le faible nombre de bits normalement à "0". En utilisant des mots de test avec un grand nombre de bits à "1", on peut aussi tester le bon découplage des lignes d'alimentation. En effet, le passage de "0" à "1" d'un grand nombre de bits entraine un pic de courant de charge de capacités parasites. Si la ligne d'alimentation devant fournir ce pic est mal découplée, sa tension chute brusquement pendant la durée du pic et les bits devant être mis à "1" peuvent rester à "O" pendant cette durée. Cette durée peut être suffisamment longue pour que des données erronées soient stockées dans le registre. La présente invention a été décrite en relation avec un circuit d'entrée/sortie à titre d'exemple, mais elle s 'appli- que facilement à tout circuit comprenant des connexions à des bus d'adresses et de données, et dans lequel on peut ajouter selon l'invention un registre supplémentaire comprenant autant de bits qu'il y a de lignes de données à tester. On peut citer l'exemple d'un circuit d'horloge programmable. Une horloge programmable dans un système informatique comprend généralement des registres reliés au bus de données, dans lesquels on écrit, par exemple, une durée de déoemptage, des heures de déclenchement d'un avertissement... Les registres de ces horloges sont souvent à écriture seule et n'autorisent donc pas une relecture de mots écrits pour tester la connexion au bus de données. La présente invention s'adapte avec des modifioetions mineures à des circuits existants fabriqués à la demande (ASIC), le registre additionnel occupant peu de place et étant relié à des connexions existantes. Il apparaîtra à l'homme de l'art diverses variantes et modifications de la présente invention, notamment en ce qui concerne le type et l'utilisation du registre. REVENDICATIONS 1. Procédé pour tester la connexion d'un circuit d'entrée/sortie (21) d'un système informatique à un bus de données (D), le circuit comprenant au moins un premier registre destiné à transmettre des données entre un périphérique et le système informatique et couplé au bus de données, à un bus d'adresses (A), à un bus de contrôle (C), et à un autre élément, caractérisé en ce qu'il comprend les étapes suivantes - prévoir dans le circuit d 'entrée/sortie (21) un registre supplémentaire (34) couplé seulement aux bus de données (D), d'adresses (A) et de contrôle (C) - adresser le registre supplémentaire par une adresse ignorée par le premier registre ; - écrire un mot de test présenté sur le bus de données (D) dans le registre supplémentaire ; et - lire le mot stocké dans le registre supplémentaire sur le bus de données (D) et le comparer au mot de test. 2. Système informatique dans lequel est mis en oeuvre le procédé selon la revendication 1, comprenant - un microprocesseur (20) relié à des bus de données (D), d'adresses (A) et de contrôle (C) ; et - un circuit d'entrée/sortie (21) comprenant au moins un premier registre couplé aux bus de données (D), d'adresses (A) et de contrôle (C) et à un autre élément caractérisé en ce que le circuit d'entrée/sortie (21) comprend un registre supplémentaire (34) couplé seulement aux bus de données (D), d'adresses (A) et de contrôle (C), et adressable par une adresse ignorée par le premier registre. 3. Procédé pour tester la connexion d'un circuit (21) d'un système informatique à un bus de données (D), le circuit comprenant au moins un premier registre couplé au bus de données, à un bus d'adresses (A), à un bus de contrôle (C), et à un autre élément, caractérisé en ce qu'il comprend les étapes suivantes - prévoir dans ledit circuit (21) un registre supplémentaire (34) couplé seulement aux bus de données (D), d'adresses (A) et de contrôle (C) - adresser le registre supplémentaire par une adresse ignorée par le premier registre - écrire un mot de test présenté sur le bus de données (D) dans le registre supplémentaire ; et - lire le mot stocké dans le registre supplémentaire sur le bus de données (D) et le comparer au mot de test. 4. Système informatique dans lequel est mis en oeuvre le procédé selon la revendication 3, comprenant - un microprocesseur (20) relié à des bus de données (D), d'adresses (A) et de contrôle (C) ; et - un circuit (21) comprenant au moins un premier registre couplé aux bus de données (D), d'adresses (A) et de contrôle (C) et à un autre élément ; caractérisé en ce que ledit circuit (21) comprend un registre supplémentaire (34) couplé seulement aux bus de données (D), d'adresses (A) et de contrôle (C), et adressable par une adresse ignorée par le premier registre.