FR 2258668 A1 19750818 FR 7401755 A 19740118 La présente invention concerne un système informatique et plus parti culièrement un dispositif de mémorisation destiné àgarder la trace d'une partie ou de la totalité des échanges effectués entre l'unité centrale d'un système et sa mémoire, sous la forme d'une liste de mots contenant des adresses successives auxquelles l'unité centrale a accédé. Il est connu, pour effectuer la mise au point du matériel et des programmes d'un système complexe, d'utiliser, simultanément avec les programmes de travail, des programmes de test destinés å contrôler le bon état des circuits du calculateur d'une part, le déroulement normal des instructions des programmes d'autre part et des programmes de trace permettant dtexaminer le fonctionnement du système instruction par instruction. On sait également, lorsqutun cas de faute se présente, vider par programme la mémoire du calculateur de son contenu de pinière å déterminer, à partir de l'état du calculateur au moment de la faute, l'origine de celle-ci.Il est classique aussi de faire appel à des moyens prograsiés ou cabrés pour extraire des informations particulières destinées à faciliter l'optimisation des programmes de travail. En fonctionnement normal le système est habituellement pourvu de circuits de contrôle et de moyens pro grsTds propres 8 assurer la sécurité du fonctionnement et è fournir à l'opérateur des informations suffisantes, notamment sur les fautes possibles des équipements et des programmes de manière å ce que celles-ci puissent être éliminées dans des limites de tesps acceptables. les principaux inconvénients de ces techniques de test ou de diag nostic sont la place importante occupée en mémoire par ces programmes et, notamment dans le cas de fonctionnement en temps réel, leur temps d'exécution qui limite la capacité de traitement du système ; pendant le fonctionnement normal, l'encombrement en #temps réel de l'unité centrale rend souvent prohi bitive l'utilisation de tels programmes (programmes de trace par exemple).Or il peut se présenter des cas de fautes résultant soit d'une situation logique non prévue ou d'une manoeuvre extéricure imprévisible ou encore une faute non décelée par les circuits et programmes de contrôle et dont on ne peut, le plus souvent, déterminer l'origine qutau prix d'une analyse longue et conteuse des listes (listings) volumineuses fournies par le calculateur. il est donc particulièrement interessant, lorsque de tels cas de faute arrivent, de pouvoir connai -tre les opérations effectuées par l'unité centrale du système avant que la faute n'apparaisse.Il en est de meme lorsquton veut faire des sondages en vue de detenniner statistiquement la fréquence d'utilisation de certaines instructions critiques pour l'optimisation du système. Aussi un objet de la présente invention est un dispositif de trace qui permet, à partir des échanges effectués entre une unité centrale et sa mémoire d'une part, de certains signaux issus de ladite unité centrale d'autre part, de connattre les opérations successives que ladite unité centrale a exécutées, soit just#avant l'arrêt de celle-ci, soit pendant un intervalle de temps déterminé. Outre la perte de temps et de place causée par l'utilisation de techniques programmées, le traitement simultané des programmes de diagnostic et des programmes de travail peut créer des fnterférences dans la circulation des données et engendrer alors des résultats erronés. Aussi la présente invention repose sur le principe suivant : lorsque l'unité centrale d'un système est engagée dans une opération de lecture ou d'écriture en mémoire, dite "opération mémoire", elle fournit à celle-ci l'adresse à laquelle doit être lue ou rangée ltinformatlon concernée par l'opération en cours, les signaux de mode de fonctionnement requis et éventuellement les données à enregistrer ; si donc on garde dans une mémoire auxiliaire, dite 'mémoire de trace11, la liste des adresses successives accompagnées du mode de fonctionnement fourni par l'unité centrale, cette liste sera représentative du fonctionnement de l'unité centrale. la capacité de la mémoire de trace étant limitée, il est évident que le contenu maximum de cette mémoire permet l'analyse des opérations effectuées par l'unité centrale pendant un temps plus ou moins long selon que les informations enregistrées dans cette mémoire concernent des opérations dont la fréquence d'apparition est moins ou plus élevée.En d'autres termes si l'on n'enregistre dans la mémoire de trace que les informations relatives à des instructions, le contenu de cette mémoire réprésentera un temps de fonctionnement plus long que si l'on enregistre les informations relatives à toutes les opérations mémoire effectuées par l'unité centrale et correspondant à des opérations de lecture ou d'écriture de données ou d'instructions. Selon une caractéristique de l'invention, le dispositif de trace comporte essentiellement : - un dispositif de :6morisation connecté à l'unité centrale observée et recevant de celle-ci, à chaque opération mémoire effectuée par ladite unité centrale, une information de trace constituée à partir de signaux d'adresse et de mode de fonctionnement transmis par ladite unité centrale à sa mémoire d'une part et de signaux définissant le type de ladite opération mémoire d'autre part - une un;.::e logique d'adressage, recevant d'une part lesdits signaux définissant le type d'opération mémoire issus de l'unité centrale, d'autre part des signaux de commande issus de l'unité de contrôle dudit dispositif de trace et indiquant le mode de fonctionnement requis dudit dispositif de mémorisation et, s'il y a lieu, le type d'opération dont l'enregistrement est désiré ; ladite unité logique d'adressage indiquant audit dispositif de mémorisation, soit l'emplacement où doit être rangée ladite information de trace, soit l'emplacement dont le contenu doit être transféré à ladite unité de contrôle. Le dispositif de trace selon l'invention a l#avantage de n'imposer aucun ralentissement à l'unité centrale observée si le temps d'accès à la mémoire de trace est inférieur à l'intervalle de temps séparant deux références successives faites par l'unité centrale à sa mémoire et dont on veut garder la trace. Cela implique donc que lton utilise une mémcire de trace en technologie rapide, par exemple en circuits intégrés. D'autres objets, caractéristiques et avantages de la présente invention apparaitront au cours de la description qui va suivre, ladite description étant faite en relation avec les dessins joints dans lesquels - La figure 1 est un schéma synoptique d'un système comprenant une unité cen trale et sa mémoire et du dispositif de trace, objet de l'invention, pourvu de son unité de contrôle, associé à ce système - La figure 2 est un schéma du dispositif de trace montrant ses relations avec les autres éléments du système conformément aux principes de l'invention. La figure 1 représente un schéma synoptique du dispositif de trace, objet de l'invention, associé à un système comprenant une unité centrale et sa mémoire et à une unité de contrôle dudit dispositif. L'unité centrale l est reliée à sa mémoire 2 par un "bus mémoire" par 11 intermédiaire duquel s'effectuent les échanges d'informations. En particulier, l'unité centrale l transmet à la mémoire 2 les signaux d'adresse et de mode de fonctionnement impliqués dans l'opération mémoire en cours et qui, selon l'invention, sont également transmis au dispositif de trace 3 et plus particulièrement à un registre tampon 33 associé à la mémoire de trace 31.Le registre tampon 33 reçoit également de unité centrale 1 les signaux, dits "signaux indicateurs", définissant le type d'opération mémoire et qui constituent, avec les signaux d'adresse et de mode de fonctionnement, l'information de trace que ledit registre tampon 33 applique à la mémoire de trace 31. Lesdits signaux indicateurs sont aussi appliqués à l'unité logique d'adressage 32 qui reçoit de l'unité de contrôle 4 des signaux reprsentant le mode de fonctionnement de la mécroire de trace et s'fil y a lieu le type d'opération mémoire à enregistrer. L'unité logique d'adressage 32 indique à la mémoire de trace 31, soit l'emplacement de la mémoire de trace où doit trc rangée l'information de trace présente dans le registre tampon 33 si un enreetstrement est requis par l'unité de contrôle 4, soit l'eraplacement mémoire où-llinformation doit être lue Si an veut connaître le contenu de la mémoire de trace. L'unité de contrôle 4 comprend un organe de contre 41 contrôlant le fonctionnement du dispositif de trace et recevant les informations fournies par la mémoire de trace lorsqu'une lecture de cette mémoire est requise.Les signaux de commande peuvent également être fournis à partir d'un pupitre 42, ce qui permet à un opérateur de choisir le mode de fonctionnement du dispositif, l'instant de démarrage et d'arrêt de ltenregis- trement, ou l'instant de démarrage de la lecture. Dans l'exemple de réalisation considéré, les signaux de commande indiquent notamment au dispositif de trace, si un enregistrement ou une lecture de la mémoire de trace est requise, et dans le cas d'un enregistrement ils indiquent si celui-ci doit Outre continu ou non et le type d'informations de trace à garder en mémoire. Différents types d'informations de trace peuvent ainsi être fixés, soit par l'organe de contrale 41, soit par l'opérateur par l'intermédiaire du pupitre 42.Si une analyse fine du fonctionnement de l'unité centrale observée est désirez, il convient alors de garder la trace de toutes les opérations mémoire effectuées par cette unité centrale ce qui implique que chaque information de trace relative à une opération mémoire d'un type quelconque soit enregistrée dans la mémoire de trace. Par contre, si par exemple on veut que le contenu de la mémoire de trace représente un temps de fonctionnement plus long, on peut n'enregistrer que les informations de trace relatives à des instructions d'un type quelconque ou des instructions de branchement ; dans le cas des instructions de branchement il importe de garder les informations relatives à l'origine et à la destination du branchement. Outre le type d'informations de trace à enregistrer, le dispositif selon l'invention permet de choisir le mode d'enregistrement suivant que l'on désire faciliter le diagnostic des fautes ou effectuer des sondages. Ainsi lorsque le dispositif de trace est utilisé pour permettre à l'utilisateur de reconstituer, à partir du point où une faute a été détectée, les opérations que l'unité centrale a exécutées, le mode d'enregistrement est continu ; c'est-à- dire, que la mémoire de trace est adressée de manière circulaire et si sa capacité mémoire capacité mémoire est 2 mots, l'information de trace suivant celle rangée à l'adresse 2 -l sera rangée à l'adresse 0. Par contre, pour des opérations de sondage, l'enregistrement est arrêté dès que 2 informations de trace ont été rangées en mémoire.Il est bien évident que, quel que soit le mode choisi, le maximum d'informations de trace disponible est égai Y la capacité maximum de la mémoire de trace 31 (2N dans l'exemple considéré) ; ces informations représentent, soit les 2 dernières opérations mémoire du type choisi (opération quelconque ou instruction) dans le cas d'un enregistrement continu, soit les 2N opérations qui ont été traitées après le démarrage de l'enregistrement en mode non continu. Le schéma de la figure 2 permet de mieux comprendre les relations existant entre le dispositif de trace, objet de l'invention, et les autres éléments du système ainsi que les principes de fonctionnement dudit dispositif et plus particulièrement de l'unité logique d'adressage 32.#0n retrouve l'unité centrale I et sa mémoire 2 reliées par le bus mémoire de l'unité centrale, le registre tampon 33 associé à la mémoire de trace 31, l'organe de contre 41 et son pupitre 42.L'unité logique d'adressage 32 comprend - une unité logique de commande 321 générant les ordres nécessaires au fonc tionnement du dispositif à partir des signaux de commande issus, soit de L'organe de contre 41, soit du pupitre 42 ; - un registre 322 mémorisant le type d'opération mémoire dont on veut garder la trace ; - un circuit de décodage 324 décodant les signaux indicateurs que l'unité centrale L transmet au dispositif de trace à chaque opération mémoire ; - un circuit logique 323 effectuant principalement la comparaison entre le contenu dudit registre 322 et l'information envoyée par le circuit de déco dage 324 ; - un compteur d'adresse réversible 325 et ses circuits associés, les portes ET 326 et 327, la bascule 328 et la bascule 329 ; ledit compteur fournit à la mémoire de trace 31, soit l'adresse où doit être rangée l'information de trace contenue dans le registre tampon 33, soit l'adresse à laquelle doit être lue l'information lorsque la lecture de cette mémoire est requise. flous avons vu précédesment que l'unité centrale I fournit au dispositif de trace des signaux d'adresse, de mode de fonctionnement de la mémoire 2 et des signaux indicateurs indiquant le type d'opération mémoire effectuée. Supposons que l'on désire enregistrer de manière continue les informations de trace relatives à la lecture d'instructions de type quelconque : l'unité de contrôle 4 (soit l'organe de contrôle 41, soit le pupitre 42) transmet donc à l'unité logique de commode 321 des signaux de commande comp#renant l'ordre de démarrage de l'enregistrement et le type dlopération choisi (lecture d'instruc- tion). L'unité logique 321, après décodage des ordres envoyés par l'unité de contrôle 4, range le type d'opération choisi dans le registre 322 et commande l'enregistrement dans la prétoire 31 du contenu du registre tampon 33 en même temps qu'elle met à 1 la bascule 328. A chaque opération mémoire effectuée par l'unité centrale 1 les signaux indicateurs correspondants et décodés par le circuit de décodage 324 sont appliqués as circuit logique 323 qui compare le contenu du registre 322 et le type indiqué par lesdits signaux indicateurs. Ce circuit logique 323 active la porte ET 327 lorsque le type fourni par l'unité certralè 1 correspond au type choisi (ciest-à-dire la lecture d'instruction). La porte ET 327 est donc activée par le circuit logique 323 lorsque l'infor- mation de trace fournie par l'unité centrale correspond à un type d'opération dont on veut garder l'enregistrement. La mémoire de trace 31, ayant reçu de l'unité logique de commande 321 l'ordre d'enregistrement, enregistre succ2ssi- vement toutes les informations de trace contenues dans le registre tampon 33, à l'adresse indiquée par le compteur adresse revers bye 325.Ce compteur d'adresse a été initialisé (remis à zéro) par l'unité logique de commande 321 avant le démarrage de l'enregistrement et son contenu est augmenté d'une unité à chaque impulsion fournie par la porte ET 327, c'est-à-dire chaque fois que, simultanément, la bascule 328 est dans l'état I et le signal de comparaison vraie fourni par le circuit logique 323 existe. Ainsi le compteur d'adresse n'est augmenté d'une unité que lorsque l'information de trace enregistrze dans la mémoire de trace doit astre conservée, sinon il indique le meme emplacement mémoire de sorte qu'une nouvelle information d; trace est enregistrée à la méme adresse que la précédente et détruit celle-ci.Cette solution consistant à indiquer l'emplacement mémoire où doit être enregistrée la prochaine information de trace a l'avantage de rendre le temps d'enregistrement dans la mémoire de trace indépendant du temps de calcul de adresse. Puisque le mode de fonctionnement du dispositif de trace requis par l'unité de contrôle 4 est un enregistrement continu, l'information de trace appartenant au type choisi N de rang 2N + 1 (si la mémoire de trace a N et de rang 2 + l (si la mémoire de trace a 2 emplacements) aura pour adresse 0, détruisant l'information précédemment rangée à cette adresse. Le compteur d'adresse 325 fonctionne alors en compteur circulaire. Par contre, si l'on désire effectuer un sondage, le compteur d'adresse 325 ne sera plus utilisé en compteur circulaire ; l'unité logique de commande 321 peut par exemple, d'une part générer un signal d'interruption à destination de organe de contrôle 41 lorsqu'une information de trace a été N rangée à l'emplacement de rang 2 , d'autre part signifier à la mémoire de trace l'arrêt de l'enregistrement de nouvelles informations de trace et mettre la bascule 328 dans l'état 0. Le compteur d'adresse 325 est donc arrêté et l'unité de contrôle 4 est informée que des informations de trace sont disponibles et qu'une lecture de la mémoire de trace peut être effectuée. Cependant, l'enregistrement dans la mémoire 31 des informations de trace trace peut être arrêté sur une adresse quelconque K (O# K ç 2N - 1), soit parce qu'une faute a été détectée dans l'unité centrale observée 1, soit parce qu'un ordre d'arrêt a été envoyé par l'unité de contrôle 4 ; aussi est-il nécessaire de disposer d'une information supplémentaire précisant si le compteur d'adresse indique cette adresse k pour la première fois ou non de manière que l'on puisse déterminer si les informations de trace contenues dans la mémoire 31 de l'adresse K + 1 à adresse 2N - 1 sont ou non à considérer.Cette information supplémentaire peut être aisément obtenue, par exemple à l'aide d'une bascule supplémentaire 329 mise dans l'état 1 lorsque le compteur d'adresse en fonctionnement circulaire passe de la valeur 2 - 1 à la valeur 0, chaque commande d'initialisation issue de l'unité logique de commande 321 ayant pour effet de remmetre ladite bascule supplémentaire 329 dans l'état 0. Lorsqu'une opération de lecture de la mémoire de trace est requise par l'unité de controle 4, celle-ci envoie-à L'unité logique de commande 321 les signaux de commande de lecture. L'unité logique 321, d'une part transmet l'ordre de lecture à la mémoire de trace 31 en même temps qu'elle met la bascule 328 dans l'état O, d'autre part lit la valeur K indiquée par le compteur d'adresse ainsi que l'état de ladite bascule supplémentaire 329. La mémoire de trace 31 transmet alors à l'organe de contrôle 41 l'information de trace lue à l'adresse indiquée par le compteur d'adresse 325. Le contenu dudit compteur est diminue d'une unité à chaque impulsion fournie par la porte ET 326 c'est-à-dire chaque fois qu'une information est reçue par ledit organe de contrôle 4. Lorsque le compteur d'adresse indique la valeur 0, ou bien l'opération N de lecture est arrêtée si la valeur lue K est égale à 2 - 1 ou si ladite bascule supplémentaire est dans l'état O, ou ladite lecture est poursuivie jusqu a ce que l'information de trace rangée à l'adresse K + 1 ait été lue si les conditions suivantes sont réunies à savoir : état 1 de ladite bascule supplémentaire et O N K Comme on l'a vu précédemment, plusieurs types d'informations de trace peuvent être enregistrés dans la mémoire de trace 31 :les informations relatives à des opérations mémoire d'un type quelconque ou relatives à des opérations de lecture en mémoire ou de lecture d'instruction ou de lecture d'instruction de branchement.En ce qui concerne les trois premiers types cités les signaux indicateurs décodés par le circuit de décodage 324 sont comparés par le circuit logique 323 au contenu du registre 322, mais en ce qui concerne le dernier type cité il est intéressant de connaître, outre l'information de trace correspondant à l'instruction de branchement, également l"nformation de trace correspondant à l'instruction de destination dudit branchement. Cette seconde information est aisément accessible puisqu'elle est relative à la pre- mièvre instruction qui suit l'instruction de branchement Afin d'en conserver l'enregistrement dans la mémoire de trace, le circuit logique 323 active la porte ET 327 lorsque cette dite seconde information a été enregistrée, ce qui implique que ledit circuit logique 323 puisse déterminer la première instruction qui suit une instrnction de branchement. Ainsi, pour enregistrer les informations de trace relatives aux instructions de branchement, le circuit logique 323 active la porte ET 327 lorsque soit la comparaison est vraie (les signaux indicateurs indiquent alors une instruction de branchement), soit les signaux indicateurs indiquent une instruction quelconque et cette instruction est la première instruction après une instruction de branchement. La réalisation de cétte fonction logique simple ne pose pas de probldme particulier. L'organe de contrôle 41 doit être capable de fournir au dispositif de trace 3 les signaux de commande nécessaires aux opérations d'enregistrement et de lecture des informations de trace requises. Dans l'exemple de réalisation considéré on utilise pour cela une unité centrale pour laquelle le dispositif de trace est une unité périphérique. Si l'unité centrale observée 1 fait partie d'un système comprenant plusieurs unités centrales de traitement, travaillant par exemple en partage de charge, l'une quelconque de celles-ci pourra être l'organe de contrôle du dispositif de trace associé à une autre unité centrale. Par contre, si le système ne comporte qu'une seule unité de traitement, celle-ci pourra être selon une variante de l'invention le propre organe de contrôle du dispositif de trace qui lui est associé. Il faut cependant noter que dans cette dernière configuration, le dispositif de trace est considéré comme une unité périphérique de l'unité centrale et,qu'à ce titre, il impose à celle-ci certaines contraintes. En particulier lorsque l'unité centrale lit les informations de trace, elle ne peut traiter d'autres données ; ce qui diminue ses performances à moins que-l1opé- ration de lecture ne suive l'arrêt de l'unité centrale après qu'une faute a été détectée, ce qui sera le cas le plus fréquent. Bien que les principes de la présente invention aient été décrits en relation avec un exemple particulier de réalisation, il est clair qu'elle n'est pas limitée audit exemple et qu'elle est susceptible d'autres variantes ou modifications sans sortir de son domaine. REVRNDIChTIONS 1. Dispositif de trace pour un système comprenant au moins une unité centrale de traitement et sa mémoire a#sociée, permettant à partir des échanges effectués entre ladite unité centrale et sa mémoire, et de certains signaux issus de ladite unité centrale de connaître les opérations successives que ladite unité centrale a exécutées; ledit dispositif comprenant un dispositif de mémorisation et une unité logique d'adressage et étant caractérisé en ce que - ledit dispositif de mémorisation est connecté à l'unites centrale observée et reçoit de celle-ci, à chaque opération mémoire effectuée par ladite unité cen trale, une information de trace constituée à partir des signaux d'adresse et de mode de fonctionnement transmis par ladite unité centrale à sa mémoire d'une part et de signaux indicateurs définissant le type de ladite opération mémoire d'autre part ;; - ladite unité logique d'adressage reçoit d'une part lesdits signaux définis sant le type d'opération. mémoire issus de ladite unité centrale, d'autre part des signaux de commande issus de l'unité de contrôle dudit dispositif de tra ce et indiquant le mode de fonctionnement requis dudit dispositif de mémori sation et, s'il y a lieu, le type d'opération dont l'enregistrement est dési ré; ladite unité logique d'adressage indiquant audit dispositif de mémorisa tion, soit l'emplacement où doit être rangée ladite information de trace, soit l'emplacement dont le contenu doit être transféré à ladite unité de contrtl$. 2. Dispositif de trace selon la revendication 1 caractérisé en ce que ladite unité logique d'adressage comprend - une unité logique de commande générant, å partir desdits signaux de commande issus de ladite unité de contrôle, les signaux définissant le type d'infor mation de trace à enregistrer et les ordres de lecture et d'erwritltre desdites informations de trace ; - un registre destiné à mémoriser ledit type d'information de trace à enregis trer fourni par ladite unité logique de commande ; - un circuit logique fournissant, à partir du contenu dudit registre et du dé codage desdits signaux indicateurs, un signal de comparaison vraie lorsque le type d'opération mémoire défini par lesdits signaux indicateurs correspond au type d'informationà àconserver en mémoire ;; - un compteur d'adresse réversible et ses circuits associés recevant ledit si gnal de comparaison vraie et lesdits ordres de lecture et d'écriture et indi quant l'emplacement où une information de trace d6it être rangée ou lue dans ledit dispositif de mémorisation. 3. Dispositif de trace selon la revendication 1 ou la revendication 2 caractérisé en ce que ledit dispositif de mémorisation comporte - un registre tampon dans lequel sont formées lesdites informations de trace à partir des signaux fournis par ladite unité centrale - une mémoire de trace capable suivant l'ordre fourni par ladite unité logique de commande, soit d'enregistrer lesdites informations de trace contenues dans ledit registre tampon, soit de fournir à ladite unité de contre les infor mations de trace prdcédement enregistrées, l'adresse desdites informations de trace à enregistrer ou à lire étant fournie par ledit compteur adresse. 4. Dispositif de trace selon la revendication 3 caractérisé en ce que, lorsqu'un enregistrement dans ladite mémoire de trace est requis, le contenu dudit compteur d'adresse est augmenté d'une unité chaque fois que ledit signal de comparaison vraie existe. 5. Dispositif de trace selon la revendication 3 ou 4 caractérisé en ce que lorsqu'une lecture de ladite mémoire de trace est requise, le contenu dudit compteur d'adresse est diminué d'une unité chaque fois qu'ne information de trace envoyée par ladite mémoire de trace est reçue par ladite unité de contrale. 6. Dispositif de trace selon l'une quelconque des revendications 1, 2, 3, 4 ou 5 caractérisé en ce que des moyens sont prévus pour mémoriser lin- formation supplémentaire indiquant si la valeur du contenu dudit compteur d'adresse a l'issue d'une opération d'enregistrement dans ladite mémoire de trace a déjà été, ou non, atteinte au moins une fois depuis le début de ladite opération d'enregistrement.