FR 2748833 A1 19971121 FR 8808926 A 19880701 La présente invention a pour objet un système de mémorisation d'informations pour la surveillance, en temps réel, d'un calculateur numérique, pourvu d'au moins un bus interne d'échange d'informations, système comprenant - des moyens pour prélever lesdites informations, - des moyens pour, en réponse aux informations prélevées, détecter des états déterminés dudit bus, et, - des moyens de mémorisation sélective desdites informations prélevées, commandés par lesdits moyens de détection d'états afin de ne pas mémoriser les informations préle vées non relatives à un desdits états déterminés. Un tel système est utilisé, en particulier,pour la mise au point d'un logiciel chargé sur un calculateur de navigation, de pilotage, de guidage, ou d'autres tâches analogues, et qui se trouve embarqué à bord d'un aéronef, par exemple. Par mise au point d'un logiciel, on entend ici la phase du développement de ce logiciel permettant de le rendre conforme à sa description fonctionnelle par correction des erreurs de programmation dont il est susceptible d'être affecté, par exemple. Un système de mémorisation du type défini ci-dessus fait partie d'un système informatique d'aide à la mise au point qui permet de surveiller le calculateur sur lequel est chargé le logiciel à mettre au point, encore appelé calculateur cible, en suivant l'exécution de ce logiciel. Un tel système permet la mémorisation d'une suite d'états du calculateur cible permettant à un opérateur, ou à un système de maintenance automatique, de juger de la conformité de ces états. Avec un système qui surveille en temps réel le calculateur cible par prélèvement des informations sur le ou les bus internes, le fonctionnement du calculateur cible n'est pas perturbé par la présence du système de surveillance, et il peut donc être testé dans des conditions réelles de fonctionnement, ce qui n'est pas le cas avec des systèmes comme les systèmes de validation fonctionnelle, ou comme les systèmes mettant en oeuvre, par exemple, un émulateur. Avec un système de validation fonctionnelle, le calculateur cible travaille en temps réel, mais en réponse à une suite de stimulations artificielles dont l'éventail est loin de reproduire la complexité des stimulations auxquelles il sera soumis dans la réalité. Avec un système mettant en oeuvre un émulateur, l'adjonction des fonctions logiques permettant la surveillance interdit le fonctionnement en temps réel. Pour un système de mémorisation en temps réel, il se pose néanmoins un problème, lié à la capacité limitée de la mémoire dans laquelle on conserve la trace des différents états du calculateur cible, encore appelée mémoire de trace. Par exemple, si la mémoire de trace comporte 4096 cases, si le pas du calculateur cible a une durée de 100 ns, et si l'on souhaite conserver la trace de chacun des états successifs, on ne peut analyser, de manière continue, qu'une tranche de fonctionnement réel du calculateur cible de durée égale à 0,4 ms, ce qui est une durée extrtmement brève, et oblige à découper toute période à surveiller, de durée raisonnable, en un très grand nombre de tranches. De plus, dans chacune des tranches, il s'avère qu'un grand nombre des informations mémorisées ne sont pas utiles à la surveillance. On connait déjà un système du type défini ci-dessus, décrit dans la demande française NO 2 598 001, qui vise à allonger la durée de chaque tranche de fonctionnement en temps réel continûment analysable, sans augmenter la capacité de la mémoire de trace. Dans ce système, afin que la mémoire de trace ne se trouve pas encombrée d'informations inutiles, on détermine un certain nombre d'états du ou des bus, états dont on est certain qu'ils comprendront les informations susceptibles d'être utiles à la surveillance, et on prévoit l'élimination des informations nonrelatives à ces états déterminés. Pour une même capacité de la mémoire de trace, la durée de chaque tranche est donc augmentée. Néanmoins, cette durée reste encore relativement faible. La présente invention vise à pallier cet inconvénient en procurant un système du type défini ci-dessus, dans lequel la durée d'une tranche d'analyse se trouve notablement augmentée. A cet effet, elle a pour objet un dispositif du type défini ci-dessus, caractérisé par le fait qu'il comprend, de plus - des moyens pour détecter des combinaisons déterminées des signaux en sortie desdits moyens de détection d'états, et, - des moyens pour détecter des séquences déterminées de mots binaires représentatifs des signaux en sortie desdits moyens de détection de combinaisons, et commander lesdits moyens de mémorisation sélective afin de ne pas mémoriser les informations prélevées non-relatives à une desdites séquences déterminées. Avec le système de l'invention, il est possible d'éliminer davantage d'informations dont il est inutile de conserver la trace, grâce aux moyens de détection de combinaisons déterminées, et grâce aux moyens de détection de séquences. Ces moyens réalisent, en fait, un véritable filtrage des informations utiles à la surveillance, parmi les informations échangées sur les bus.Ainsi, il est possible d'allonger considérablement la durée de chaque tranche continûment analysée, et l'exploitation des informations mémorisées est facilitée, du fait que celles-ci ne comprennent plus un grand nombre d'informations inutiles à la surveillance. De plus,, du fait que le nombre d'informations utiles par unité de temps est fortement réduit, on peut, en utilisant une mémoire de trace à double accès, exploiter en temps réel et sans pertes les informations utiles, en transférant les plus anciennes vers un dispositif de visualisation ou d'archivage, pendant que les plus récentes sont enregistrées. Une telle caractéristique est évidemment particulièrement avantageuse. A partir de l'analyse des informations mémorisées, on peut non seulement corriger les erreurs de programmation du logiciel, mais aussi optimiser les fonctions critiques de ce logiciel, notamment en taille mémoire et en temps d'exécution. Avantageusement, lesdits moyens de détection d'états comprennent une pluralité de circuits élémentaires, chaque circuit élémentaire recevant lesdites informations prélevées et délivrant un signal binaire de détection d'états, et chaque circuit élémentaire desdits moyens de détection d'états comprend - des moyens pour comparer, à un seuil bas et à un seuil haut, les dites informations prélevées, - des moyens de mémorisation, à accès aléatoire, d'une pluralité d'é léments binaires, ou bits, chaque bit étant adressé à l'aide des dites informations prélevées, et, - des moyens logiques, en sortie desdits moyens de comparaison et des dits moyens de mémorisation pour délivrer ledit signal binaire de détection d'états. En conséquence, l'ensemble d'états déterminés détectables est important et varié, et leur programmation est simple. Avantageusement encore, lesdits moyens de détection de combinaisons comprennent une pluralité de moyens de mémorisation, à accès aléatoire, chacun de ces moyens de mémorisation mémorisant une pluralité d'éléments binaires, ou bits, chaque bit étant adressé à l'aide des signaux en sortie desdits moyens de détection d'états. De même, lesdits moyens de détection de séquences comprennent : - des moyens de mémorisation, à accès aléatoire, organisés en cases, chaque case mémorisant une pluralité d'éléments binaires, ou bits, lesdits moyens de mémorisation rece vant sur une première partie, de plus faible poids, de leurs entrées d'adresse, les signaux en sortie desdits moyens de détection de combinaisons, - des moyens pour transférer vers la partie restante, de plus fort poids, desdites entrées d'adresse, une première partie des bits en sortie desdits moyens de mémorisation, - des moyens pour commander lesdits moyens de transfert en réponse à une autre partie des bits en sortie desdits moyens de mémorisation, et, - des moyens pour délivrer un signal binaire de détection de séquence en réponse à la partie restante des bits en sortie desdits moyens de mémorisation. Les moyens de détection de séquences comprennent donc au moins un automate microprogrammé pour reconnaitre les séquences à détecter. La présente invention sera mieux comprise grâce à la description suivante de la forme de réalisation préférée du système de l'invention, faite en se référant aux dessins annexés, sur lesquels - la figure 1 représente, de façon schématique, un calcula teur cible auquel est raccordé le système de l'invention, - la figure 2 représente l'organisation interne du détec teur d'états du système de la figure 1, - la figure 3 représente, de facon détaillée, un des cir cuits élémentaires du détecteur d'états de la figure 2, - la figure 4 représente l'organisation interne du détec teur de combinaisons du système de la figure 1, - la figure 5 représente l'organisation interne du détec teur de séquences du système de la figure 1, - la figure 6 représentée, de façon détaillée, un des cir cuits élémentaires du détecteur de séquences de la fi gure 5, et, - la figure 7 représente un exemple simplifié de graphe de transitions pour le circuit élémentaire de la figure 6. En se référant à la figure 1, un calculateur, par exemple un calculateur de navigation embarqué à bord d'un aéronef, et schématisé par le bloc portant la référence 1, est chargé avec un logiciel, à mettre au point à partir de résultats d'essais de fonctionnement de ce logiciel, essais effectués en temps réel. A cet effet, une sonde 2 prélève les informations échangées sur les bus internes du calculateur 1, ici et par exemple, le bus d'adresses, le bus de données et le bus de compteur ordinal, comprenant chacun 32 conducteurs, ou fils, représentant chacun ou élément binaire, ou bit. De façon connue, la sonde 2 comporte donc un dispositif contacteur pourvu d'une pluralité de broches, chacune des broches étant en contact avec un des fils de bus, fils dont le nombre total est de 3 x 32 soit 96. De façon connue encore, et donc non représentée, le dispositif contacteur est relié à un circuit d'interface à haute impédance, de façon à ce que le prélèvement des informations échangées sur les bus se fasse de façon totalement "transparente" pour le calculateur 1, c 'est-à-dire sans apporter de perturbations à son fonctionnement normal, en temps réel. Les informations prélevées, en sortie de la sonde 2, sont représentées sur la figure 1 par les signaux IP, supportés donc par un bus de 96 fils. Les signaux IP sont appliqués d'une part à un détecteur d'états 3, et d'autre part à un circuit 6 de mémorisation sélective. Le détecteur d'états 3 est agencé, comme cela sera mieux compris dans la suite, pour détecter des états déterminés du bus d'adresse, du bus de données ou du bus de compteur ordinal, et délivre en sortie, des signaux de détection d'états DE, supportés ici par un bus de 16 fils. Les signaux DE sont appliqués à un détecteur de combinaisons 4. Le détecteur de combinaisons 4 est agencé, comme cela sera mieux compris dans la suite, pour détecter des combinaisons déterminées des signaux DE et délivre, en sortie, des signaux de détection de combinaisons DC, supportés ici par un bus de 8 fils. Les signaux DC sont appliqués à un détecteur de séquences 5. Le détecteur de séquences 5 est agencé, comme cela sera mieu compris dans la suite, pour détecter des séquences déterminées de mots binaires représentatifs des signaux DC et délivre, en sortie, des siDnaux tie détection des séquences DS, supportés ici par un bus de 5 fils. Une première partie DSN des signaux DS, comprenant ici deux signaux binaires, est appliquée à l'entrée de commande dont est pourvu le circuit 6 de mémorisation sélective. Le circuit 6 de mémorisation sélective comprend une mémoire pourvue ici de 4096 cases, appelée mémoire de trace, non représentée car connue, à rythme d t écriture rapide, de façon à permettre, si nécessaire, la mémorisation, à la volée, de toutes les informations prélevées IP successives, au rythme de travail réel du calculateur 1. Entre la mémoire de trace et les signaux IP est disposé un dispositif de transfert commandé par les signaux DSM, afin que, comme cela sera mieux compris dans la suite, ne soient pas mémorisées dans la mémoire de trace des informations prélevées IP dont on peut être certain, à priori, qu'elles seront inutiles à la surveillance. Le nombre de bits de chacune des cases de la mémoire de trace est suffisant pour la mémorisation des 96 bits des informations prélevées sur les bus, et pour la mémorisation de bits de protocole, notamment de datation, indiquant à quel moment les informations ont été prélevées. Un calculateur 7, encore appelé calculateur hôte, programme le détecteur d'états 3, le détecteur de combinaisons 4, et le détecteur de séquences 5 par l'intermédiaire de signaux de programmation P, supportés ici par un bus de 32 fils. Le calculateur 7 peut examiner le contenu de la mémoire de trace, et le transférer, le cas échéant, dans une mémoire de masse i rythme d'écriture plus lent que la mémoire de trace, par l'intermédialra de signaux M, supportés ici par un bus de 32 fils. Dans le bloc 7, schématIsant le calculateur hôte, sont inclus des circuits a'interface homme-machine tels qu'un écran de vIsualisation et un clavier qui permettent à un opérateur d'intervenir sur le système. De même, la mémoire de masse où sont transférées les données en provenance du circuit 6 de mémorisation sélective est incluse dans le bloc 7. La deuxième partie des signaux DS comprend ici trois signaux binaires IT, AC et SE. Le signal IT, d'interruption de test, est appliqué au calculateur hôte 7. Le signal AC, d'arrêt du calculateur cible, est appliqué au calculateur cible 1, et le signal SE, de synchronisation externe est disponible pour le déclenchement d'un deuxième système, identique à celui actuellement décrit, et utilisé par exemple pour la surveillance d'un deuxième calculateur associé au premier. Avant qu'une description plus détaillée des blocs 3, 4 et 5 ne soit abordée, le fonctionnement du système qui vient d'être décrit est expliqué. Avant de procéder à un essai, ou test, en temps réel du calculateur cible 1, en vue de la mise au point du logiciel chargé sur ce calculateur, une pluralité états du bus de données, du bus d'adresse et du bus de compteur ordinal sont déterminés, pour que seules les informations prélevées sur les bus, lorsqu'ils sont dans l'un de ces états, soient susceptibles d'être utiles à la surveillance du déroulement du logiciel. De môme, une pluralité de combinaisons des signaux DE de détection d'états, et une pluralité de séquences de mots binaires représentatifs des signaux DC de détection des combinaisons sont déterminées, de façon à satisfaire le même critère. Les états, combinaisons et séquences ainsi déterminées sont programmées dans le détecteur d'états 3, le détecteur de combinaisons 4 et le détecteur de séquences 5, respectivement, grâce aux signaux P de programmation. Le système est alors prêt à fonctionner, et le calculateur 1 est commandé pour exécuter, en temps réel, la suite des tâches relatives au logiciel, ou à la partie de logiciel à mettre au point. Au cours de cette exécution, les informations prélevées à chaque pas de calcul ne sont pas toutes mémorisées, du fait que le circuit 6 de mémorisation sélective ne mémorise les informations prélevées que lorsque les signaux DSM l'y autorisent, c'est-à-dire lorsque des séquences déterminées de combinaisons déterminées d'états déterminés des bus a été détectée. Lorsque la mémoire de trace est remplie, le calculateur 1 peut être arrêté, et le contenu de la mémoire de trace est transféré, grâce aux signaux M, vers le calculateur hôte 7 pour examen ou archivage. Toutefois, du fait que la mémoire de trace n'est pas encombrée d'informations prélevées inutiles à la surveillance, la durée de la tranche continue de fonctionnement en temps réel du calculateur 1 qui se trouve ainsi analysable est très largement supérieure à 4096 pas. I1 est également possible de transférer les informations utiles les plus anciennes pendant que les informations utiles les plus récentes sont enregistrées, pour une exploitation continue et en temps réel, sans pertes d'évènements et sans aucune interruption. Ce résultat est atteint en particulier grâce au détecteur de séquences 5, qui, comme cela sera mieux compris dans la suite, permet un filtrage particulièrement efficace des informations susceptibles d'être utiles. Lorsque, le cas échéant, la mémoire de trace a été vidée de son contenu, le système est prêt pour l'analyse d'une nouvelle tranche de fonctionnement bntinu,ou bien pour l'analyse d'une autre partie du logiciel, après modification de la programnation des détecteurs 3, 4 et 5. Les signaux IT, AC et SE sont élaborés dans le détecteur de combinaisons 5 pour, en cours d'essai, et si cela est nécessaire, provoquer une interruption du test, un arrêt d'un calculateur cible 1, et une synchronisation d'un autre système, respectIvement. En référence maintenant à la figure 2, le détecteur d'états 3 est maintenant décrit de façon plus détaillée. I1 comporte une pluralité de circuits élémentaires identiques, ici au nombre de 16, à savoir les circuits 311, 312,.... 31i,... et 3116. Chaque circuit 31i est pourvu dtune entrée principale recevant les 96 fils du bus supportant les signaux IP, d'une entrée de programmation recevant les 32 fils du bus supportant les signaux P, et d'une sortie binaire comprenant donc un unique fil. Les 16 fils de sortie respectifs des 16 circuits élémentaires 311, 312,..., 31i,... et 3115 sont regroupés pour former le bus de 16 fils de sortie du détecteur d'états 3, qui supporte les signaux DE de détection d'états. En référence à la figure 3, chaque circuit élémentaire 31i est maintenant décrit de façon détaillée. I1 comprend tout d'abord un commutateur 311, pourvu d'une entrée principale recevant les 96 fils du bus supportant les signaux IP, d'une entrée de programmation recevant les signaux P, et d'une sortie pourvue de 32 fils. Le commutateur 311 est agencé pour, en réponse à des signaux de programmation P appropriés, relier les 32 fils de sa sortie à l'un des trois groupes de 32 fils de son entrée qui représentent respectivement le bus d'auresses, le bus de données, et le bus de compteur ordinal, comme cela a été indiqué ci-dessus. Le mot binaire de 32 bits présent sur les 32 fils de sortie du commutateur 311 est comparé d'une part à un seuil haut, programmé grâce aux signaux P dans un registre 313, par un comparateur 32 bits 31 pourvu d'une sortie binaire, et d'autre part à un seuil bas, programmé grâce aux signaux P dans un registre 312, par un comparateur 32 bits 316 pourvu d'une sortie binaire également. Les 16 bits de plus faible poids en sortie du commutateur 311 servent à adresser une première mémoire 314 à accès aléatoire, ou mémoire RAM, de 216, soit 65 536 cases de 1 bit, et dont le contenu est programmé grâce aux signaux P. Les 16 bits de plus fort poids en sortie du commutateur 311 servent à adresser une deuxième mémoire RAM 315, de capacité identique à la première mémoire 314, et dont le contenu est programmé grâce aux signaux P. Une porte logique ET 318, à quatre entrées, reçoit les quatre sorties binaires respectives de la mémoire 314, de la mémoire 315, du comparateur 316 et du comparateur 317. La sortie binaire de la porte ET 318 est la sortie du circuit élémentaire 31i. Chaque circuit élémentaire 31 peut ainsi détecter, ou reconnaitre, des états déterminés soit du bus d'adresses, soit du bus de données, soit du bus de compteur ordinal, selon la programmation du commutateur 311. La pluralité d'états déterminés que peut détecter un circuit élémentaire donné 31i peut autre spécifiée, par exemple, de trois manières différentes, correspondant chacune à un type de programmation différent. Ce sont 1) Détection de tous les états dans lesquels le bus sup porte un mot binaire de 32 bits dans lequel la valeur d'un certain nombre de bits est précisée, la valeur des bits restants étant indifférente, par exemple le mot binaire : ll1lOOOOxxxxxxxxOOOOxxxx1l1l dans lequel x représente indifféremment O ou 1. Dans ce cas le registre 312 est rempli de O, le registre 313 de 1, et chaque case de la mémoire 314, ou de la mémoire 315, est remplie avec un 1 si et seulement si son adresse est conforme à la partie de plus faible poids, où à la partie de plus fort poids respectivement, du mot en question. Alors, les sorties binaires des comparateurs 316 et 317 étant toujours au niveau haut, pour que la sortie du circuit 31i soit au niveau haut, il suffit que les sorties des mémoires 314 et 315 le soient simultané ment, ce qui est bien réalisé pour chacun des états déterminés. 2) Détection de tous les états dans lesquels le bus supporte un mot binaire de 32 bits dont la valeur est comprise dans un intervalle déterminé défini par une borne infé rieure et une borne supérieure. Dans ce cas, le registre 312 est rempli avec la valeur de la borne inférieure, le registre 313 avec la valeur de la borne supérieure, et toutes les cases des mémoires 314 et 315 systématiquement avec des 1. Alors, les sorties binaires des mémoires 314 et 315 sont toujours au niveau haut, et pour que la sortie du circuit 31i soit au niveau haut, il suffit que les sorties des comparateurs 316 et 317 soient au niveau haut simultanément, ce qui est bien réalisé pour chacun des états de l'intervalle déterminé. 3) Détection de tous les états dans lesquels le bus supporte un mot binaire de 32 bits dont la valeur est comprise dans un des intervalles d'une pluralité déterminée d'intervalles, définis chacun par une borne inférieure et une borne supérieure, sous réserve, ici, que la différence entre la plus grande des bornes supérieures et la plus petite des bornes inférieures n'excède pas 2 , c'est-à-dire 65 536. Dans ce cas, le registre 312 est rempli avec la valeur de la plus petite des bornes inférieures, le registre 313 avec la valeur de la plus grande des bornes supérieures, toutes les rases de la mémoire 315 systématiquement avec des 1, et chaque case de la mémoire 314, si et seulement si son adresse est comprise dans un des intervalles de la pluralité d'intervalles précédents. Alors, la sortie binaire de la mémoire 315 est toujours au niveau haut, et pour que la sortie du circuit 31i soit au niveau haut, il suffit que les sorties des comparateurs 316 et 317 et de la mé moire 314 soient au niveau haut simultanément, ce qui est bien réalisé pour chacun des états de la pluralité d'in- tervalles déterminés. On notera que la limitation, à 65 536, de la différence entre la plus grande des bornes supérieures et la plus petite des bornes inférieures n'est liée qu'à la taille de la mémoire 314 employée ici, et que, si l'on peut augmenter cette taille, la limitation correspondante se trouve repoussée. Naturellement, il est à la portée de l'homme de métier de combiner, en totalité ou en partie, les trois types de spécification et de programmation qui viennent dtêtre décrits. En référence maintenant à la figure 4, le détecteur de combinaisons 4 est maintenant décrit de façon plus détaillée. I1 comporte une pluralité de mémoires RAM identiques, ici au nombre de 8, à savoir les mémoires 4 1 412'* 41 41j,. . 418. Chaque mémoire 41j comprend 216, soit 65 536 cases de 1 bit, et elle est adressée par les signaux DE de détection d'états, qui, comme cela vient d'être décrit, comprennent les 16 signaux binaires de sortie des circuits élémentaires 311, 312,..., 31i,... 3116. Le contenu de chaque mémoire 41j est programmé grâce aus signaux P. Les 9 fils de sortie respectifs des 8 mémoires 411, 41z,.... 41.,... 418 sont regroupés pour former le bus de 8 fils de sortie du détecteur de combinaisons 4, qui supporte les signaux DC de détection des combinaisons. Le fonctionnement du détecteur de combinaisons 4 est le suivant. Chaque mémoire 41j est programmée pour que chacune de ses cases contienne un 1 si et seulement si son adresse correspond à une combinaison déterminée à détecter. Ainsi, chaque mémoire 41 . fonctionne comme un circuit combi J natoire à 16 entrées binaires et 1 sortie binaire, la fonction réalisée par ce circuit étant programmable grâce aux signaux P de programmation. I1 est prévu une pluralité de mémoires 41j, ici en nombre égal à 8, de façon à pouvoir distinguer, en sortie, et si cela est nécessaire, entre la détection d'une combinaison, ou d'un groupe de combinaisons, et une autre combinaison, ou un autre groupe de combinaisons. En référence maintenant à la figure 5, le détecteur de séquences 5 est maintenant décrit de façon plus détaillée. I1 comporte une pluralité de circuits élémentaires identiques, ici au nombre de 5, à savoir les circuits élémenta ires 51 512,..., 51k,... 515. Chaque circuit élémentaire 51k est pourvu d'une entrée principale recevant les signaux DC de détection de combinaisons, qui, comme cela vient dire décrit, comprennent les 8 signaux binaires de sortie des 8 mémoires 411, 412,..., 41j,... 418 Chaque circuit élémentaire 51k est pourvu d'une entrée de programmation recevant les signaux P, d'une entrée recevant un signal H et d'une sortie binaire. Le signal H représente le signal d'horloge du microprocesseur cible 1, signal d'horloge prélevé de façon non représentée car connue. Les 5 sorties binaires respectives des 5 circuits élémentaires 511, 512,..., 51k,,..., 515 sont regroupées pour former le bus de 5 fils en sortie du détecteur de séquences 5, qui supporte les signaux DS de détection de séquences. En référence .ì la figure 6, chaque circuit élémentaire 51k est maintenant décrit de façon détaillée. Un registre 512, de type parallèle à 16 bits, reçoit, sur les 8 fils correspondant à ses entrées de plus faible poids, les signaux DC, et sur les 8 fils correspondant à ses entrées de plus fort poids, les signaux de sortie dtun registre 514, de type parallèle à 8 bits. Le registre 512 reçoit le signal H sur son entrée d'horloge. Les seize bits de sortie du registre 512 servent à adresser une' mémoire 513, de type RAM, de 216 soit 65 536 cases de 18 bits chacune. Le contenu de la mémoire 513 est programmé grâce aux signaux P. Les 18 fils en sortie de la mémoire 513, correspondant aux 18 bits de chaque case-mémoire, sont divisés en ici quatre groupes comprenant respectivement 8 fils, 1 fil, 8 fils et 1 fil. Le premier groupe de 8 fils est appliqué aux 8 entrées du registre 514, dont la sortie est rebouclée sur le registre 512 d'adressage de la mémoire 513. L'unique fil du deuxième groupe est appliqué à l'entrée de décomptage dont est pourvu un premier compteur 515. Le troisième groupe de 8 fils est appliqué à l'entrée de chargement dont est pourvu le premier compteur 515. Enfin, l'unique fil du quatrième groupe est appliqué:à l'entrée de décomptage dont est pourvu un deuxième compteur 516. Le deuxième compteur 516 est pourvu d'une entrée de chargement recevant les signal2 P de programmation. Les premier et deuxième compteurs 515 et 916 sont chacun pourvus d'une entrée d'horloge recevant le signal , et d'une sortie binaire qui passe au niveau haut lorsque le compte devient négatif. La sortie binaire du premier compteur 515, désignée par CP, est reliée d'une part à l'entrée d'horloge - les S bits du premier groupe représentent le numéro de la nouvelle page sur lequel on peut passer, soit au coup d'horloge suivant, si le bit du deuxième groupe est à 1 et les 8 bits du troisième groupe tous égaux à 0, soit après un certain nombre de coups d'horloge si le bit du deuxième groupe est à 1 et si les 8 bits du troisième groupe représentent ce nombre de coups d'horloge, - le bit du deuxième groupe est le bit de changement de page, - les 8 bits du troisième groupe représentent le facteur de répétition interne, et, - le bit du quatrième groupe est le bit de déclenchement. Ainsi, si dans la case mémoire de la page O sur laquelle on se trouve, le bit de changement de page est à O, la mémoire 513 va rester sur la même page et attendre le changement du mot de 8 bits représentés par les signaux DC. Si par contre, le bit de changement de page est à 1 et les 8 bits du facteur de répétition interne à O, la mémoire 513 change de page au coup d'horloge suivant, car le premier compteur 515 décompte le bit de changement de page et le compte du premier compteur 515 dévient négatif. Ceci active le signal CP de changement de page, et transfère les 8 bits du numéro de la nouvelle page à l'entrée d'adressage de la mémoire. Si le bit de changement de page est à 1 et les 8 bits du facteur de répétition interne représentent un nombre non nul, le facteur de répétition interne est chargé dans le premier compteur 515, et il faut attendre autant de bits de changement de page qu'il y a d'unités dans ce nombre pour que le signal CP soit activé par le passage du compte du premier compteur 515 à une valeur négative. Enfin, lorsque le bit de déclenchement est à 1, le signal de sortie du deuxième compteur 516 passe au niveau haut. I1 est possible de charger, dans le deuxième compteur 516 un facteur de répétition global, afin que le signal de sortie du deuxieme compteur 516 ne passe'au niveau haut qu'après plusieurs bits de déclenchement. De même, le signal CP est appliqué au deuxième compteur 516 afin que ne soient pas pris en compte les bits de déclenchement lors des répétitions internes. Ainsi, le circuit élémentaire 51k fonctionne comme un automate microprogrammé, comme le montre le graphe de la figure 7, qui est un exemple de graphe de transitions, de type connu de l'homme de métier. Sur le graphe de la figure 7, chaque chiffre encerclé figure le numéro d'une page sur laquelle est susceptible de se trouver le circuit élémentaire 51k. On a ici volontairement limité le nombre de ces pages à 6. Les flèches référencées DCa, DCb, DCC, DCd, DCe et DCf représentent les changements de pages se produisant lorsque, la mémoire étant sur une page, le mot binaire représenté par les signaux DC prend l'une des valeurs correspondantes DCa, DCb, W c' e DCe ou DCf, dont le nombre a été également limité à 6, d DC ou dans un souci de simplicité. Les flèches marquées A indiquent que l'on ne change pas de page pour tous les autres cas. Ainsi le graphe de la figure 7 montre que l'on passe de la page 1 à la page 2 lorsque DC = DCa, et de la page 1 à la page 3 lorsque DC = DC . On passe de la page 2 à la c page 4 lorsque la condition DC = DCf s'est produite 5 fois (le facteur de répétition interne est égal à 5). On passe de la page 4 à la page 6 lorsque DC = DCb ou lorsque DC = DC . On passe de la page 3 à la page 5 lorsque DC = DCf c et de la page 3 à la page 1 lorsque DC = DCa. On passe de la page 5 à la page 6 lorsque DC = DCd ou DC = DC e On constate qu'un tel circuit est un outil très puissant pour détecter une séquence déterminée de mots binaires, ici les mots binaires représentés par les signaux DC. En effet, si les bits de déclenchement des cases de la page 6 sont tous à 1, et si l'on s'arrange pour que le circuit élémentaire 51k se trouve sur la page 1 en début de test, le passage au niveau haut du signal de sortie du circuit 51k signifie que l'une des séquences du graphe de la figure 7 a été détectée, par exemple DCa, DCf, DCf, DCf, DCf, DCf, DCc OU : DCa, Df, DCf, Df, DCf, DCf, DCb ou encore DCc, DCf, DCd et ainsi de suite Les 5 circuits 511, 512,..., 51k,... 515 sont donc programmés grâce aux signaux P pour délivrer les signaux DS de détection de séquences. Comme cela a déjà été signalé, deux de ces cinq signaux, les signaux DSM sont utilisés pour commander le circuit 6 de mémorisation sélective, les trois autres signaux étant les signau IT, AC et SE, dont le rôle a déjà été décrit. Ici les deux signaux DSM comprennent avantageusement un signal dit "d'enregistrement", et un signal dit "de trace". Si l'on appelle "évènement" les informations sur les bus lors d'un pas de calcul donné, on peut dire que le signal d'enre- gistrement est au niveau haut au moment où un évènement utile à la surveillance du calculateur cible se produit et doit donc être enregistré, et au niveau bas dans le cas contraire d'un évènement inutile à la surveillance. Les évènements utiles sont enregistrés les uns à la suite des autres dans la mémoire de trace, qui possède ici 4096 cases. Lorsque l'on a enregistré 4096 évènements utiles, on recommence à écrire au début de la mémoire, effaçant ainsi les évènements utiles les plus anciens pour écrire les plus récents. On peut dire que la mémoire de trace fonctionne de manière tournante. Le signal de trace indique l'instant où l'on arrête les enregistrements de façon à geler les évènements utiles enregistrés dans la mémoire de trace. I1 peut y avoir plusieurs modes d'utilisation du signal de trace. Dans un premier mode, celui-ci définit la fin de la trace, c'est-à-dire que lorsqu'il apparat, on arrête le système pour conserver les 4096 évènements utiles apparus avant le signal de trace. Dans un deuxième mode, le signal de trace définit le milieu de la trace, c'est-àdire que, après son apparition, on enregistre encore 2048 évènements utiles, et on arrête le système pour conserver les 4096 évènements utiles centrés sur le signal de trace. Dans un troisième mode, le signal de trace définit le début de la trace, c'est-à-dire que, après son apparition, on enregistre 4096 évènements utiles, et on arrête le système pour conserver les 4096 évènements utiles apparus après le signal de trace. Un exemple simplifié de programmation du système qui vient d'être décrit est maintenant donné. Pour simplifier l'expression des valeurs numériques, celles-ci ne sont pas fournies en code binaire, mais en code hexadécimal, où chaque symbole représente 4 bits. Programmation du détecteur d'états 3 - le circuit élémentaire 311 est programmé pour détecter les états du bus de données de l'intervalle suivant (6aOOOO , ab7ffff) et on appelle DE1 son signal binaire de sortie. - Le circuit élémentaire 312 est programmé pour détecter les états du bus d'adresses de l'un des intervalles suivants (100, 134) (160, 521) et on appelle DE2 son signal binaire de sortie. - Le circuit élémentaire 313 est programmé pour détecter les états du bus de compteur ordinal tels que fxOxxOxf expression dans laquelle x représente n'importe quelle combinaison de 4 bits. On appelle DE3 son signal binaire de sortie. - Les circuits élémentaires 314 à 3116 sont inutilisés. Programmation du détecteur de combinaisons 4 - La mémoire 411 est programmée pour détecter la combinaison DE1 ET DE2 et on appelle DC1 son signal binaire de sortie. - La mémoire 412 est programmée pour détecter la combinaison DE1 OU DE3 et on appelle DC2 son signal binaire de sortie. Les mémoires 413 à 418 ne sont pas utilisées. Programmation du détecteur de séquences 5 On appelle DCa, DCb et DCc les mots suivants DC = DC ET DC a I 2 DCb = DC DC = DC2 c 2 Le circuit élémentaire 511 est programmé pour détecter, avec un facteur de répétition global de 3, la séquence DCa,DCa,DCa,DCa,DCa,DCc le mot DCb provoquant systématiquement une réinitialisation de la recherche. Les circuits élémentaires 512 à 515 sont, dans cet exemple simplifié, inutilisés. Naturellement, la portée de la présente demande n'est pas limitée à la description qui vient d'être faite, et dans laquelle le nombre de circuits de chaque type, les tailles des mémoires et leur organisation n'ont été données qu'à titre d'exemple, et peuvent être facilement adaptés, par l'homme de métier, à chaque type d'application. Revendications 1 - Système de mémorisation d'informations pour la surveillance, en temps réel, d'un calculateur numérique (1), pourvu d'au moins un bus interne d'échange d'informations, système comprenant - des moyens (2) pour prélever lesdites informations, - des moyens (3) pour, en réponse aux informations préle vées (IP), détecter des états déterminés dudit bus, et, - des moyens (6) de mémorisation sélective desdites infor mations prélevées (IP), commandés par lesdits moyens (3) de détection d'états afin de ne pas mémoriser les informa tions prélevées (IP) non-relatives à un desdits états déterminés, dispositif caractérisé par le fait qu'il comprend, de plus - des moyens (4) pour détecter des combinaisons déterminées des signaux (DE) en sortie desdits moyens (3) de détec tion d'états, et, - des moyens (5) pour détecter des séquences déterminées de mots binaires (DC DC ,.,., DC ) représentatifs des si a, b g gnaux (DC) en sortie desdits moyens (4) de détection de combinaisons, et commander lesdits moyens (3) de mémorisa tion sélective afin de ne pas mémoriser les informations prélevées (IP) non-relatives à une desdites séquences déterminées. 2 - Système selon la revendication 1, dans lequel lesdits moyens (3) de détection d'états comprennent une pluralité de circuits élémentaires (311, 312,..., 31i,... 3116), chaque circuit élémentaire (31i) recevant lesdites informations prélevées (IP) et délivrant un signal binaire de détection d'états. 3 - Système selon l'une des revendications 1 ou 2 dans lequel chaque circuit élémentaire (31i) desdits moyens (3: de détection d'états comprend - des moyens (312, 313, 31o, 31;) pour comparer, à un seuil bas et à un seuil haut, lesdites informations pré levées (IP), - des moyens de mémorisation (314, 315), à accès aléatoire, d'une pluralité d'éléments binaires, ou bits, chaque bit étant adressé à l'aide desdites informations prélevées (IP), et, - des moyens logiques (318), en sortie desdits moyens de comparaison (312, 313, 316, 317) et desdits moyens de mémorisation (314, 315) pour délivrer ledit signal binaire de détection d'états. 4 - Système selon l'une des revendications 1 à 3, dans lequel lesdits moyens (4) de détection de combinaisons comprennent une pluralité de moyens de mémorisation (411, 412,...., 41j,... 418), à accès aléatoire, chacun de ces moyens de mémorisation (41.) mémorisant une pluralité J d'éléments binaires, ou bits, chaque bit étant adressé à l'aide des signaux (DE) en sortie desdits moyens (3) de détection d'états. 5 - Système selon l'une des revendications 1 à 4, dans lequel lesdits moyens (v) de détection de séquences comprennent - des moyens de mémorisation (513), à accès aléatoire, orga nisés en cases, chaque case mémorisant une pluralité d'éléments binaires, ou bits, lesdits moyens de mémorisa tion (513) recevant sur une première partie,de plus faible poids, de leurs entrées d'adresse, les signaux (DC) en sortie desdits moyens (4! de détection de combinaisons, - des moyens (spi4) pour transférer vers la partie restante, de plus fort poids, desdites entrées d'adresse, une première partie des bits en sortie desdits moyens de mémorisation (513), - des moyens (515) pour commander lesdits moyens de trans fert (514) en réponse à une autre partie des bits en sortie desdits moyens de mémorisation (513), et, - des moyens (516) pour délivrer un signal binaire de dé tection de séquence en réponse à la partie restante des bits en sortie desdits moyens de mémorisation (513).