Brevet FR2292285A1 — publié le 19760618

L'invention concerne un dispositif d'enregistrement des instructions d'un ordinateur. Il s'agit d'une variante de la demande de brevet d'invention déposée le 24 janvier 1973 sous le n 73 02413. Dans certains cas, il est utile de connaitre avec précision les dernieres instructions qui viennent de se dérouler. Le dispositif, décrit selon l'invention, sert pour celà et est notam nient utile lors de l'étude et du dépannage d'ordinateurs. Ainsi, par exemple, une panne intermittente d'adressage mémoire peut être facilement résolue en quelques minutes avec un tel dispositif, tandis que dans la technique actuelle, la méthode consiste à remplacer les éléments un par un. La description se réfère au schéma l qui comprend - Plusieurs voies, l, constituées d'amplificateurs/ adaptateurs, 2 et de mémoire, 3. Dans la description suivante, à titre d'exemple, ces mémoires seront du type registre à décalage statique unidirectionnel n . - Des interrupteurs, 4, indiquant à une logique de comparaison, 5, soit une adresse d'arrêt, soit une zone d'adresse#. - Une logique à bistables, 6, commandant le départ et l'arrêt de l'enregistrement. - Une horloge, 7, commandée par deux entrées d'échantillonnage, 14. - Un dispositif, 8, destiné à détecter une boucle de programme. - Des compteurs, 9 servant, lors de la lecture, à faire -l aux mémoires 3, et dont la sortie est visualisée par un système de yflsualisation, 16, - Une unité 10, utilisée pour coupler les mémoires entre elles. - Des convertisseurs, ll, dont un programmable par une unité de programmation, 12. - Des afficheurs numériques ou à LED, 13, destinés à l'exploitation du résultat. - Une entrée d'arrêt extérieur, 15. Le fonctionnement de cet ensemble est décrit ci-dessous Dans une premiers étape précédant l'enregistrement, l'utilisateur indique à l'aide des interrupteurs, 4 soit - Une adresse d'arrêt - Une zone d'adresses. L'adresse d'arrêt sert dans le cas où l'utilisateur désire arrêter son enregistrement sur une adresse précise. La zone d'adresses sert dans le cas où l'utilisateur désire arrêter son enregistrement soit dans une zone de programme comprise entre une limite supérieure et inférieure ou soit, au contraire, comprise à l'extérieur de ces limites. Dans ces deux cas, l'utilisateur indiquera une adresse inférieure qui sera mémorisée dans 5 ettune adresse supérieure. Cette sélection de zone pourra se transformer en discrimination à seuil haut (dans ce cas mettre l'adresse inférieure à zéro) ou à seuil bas (dans ce cas, mettre l'adresse supérieure égale à la taille maximum de la mémoire de l'ordinateur). La deuxième étape consiste à enregistrer les données provenant de l'ordinateur. Ces données pourront être de nature quelconque mais, dans la description suivante, à titre d'exemple, il s'agira de l'adresse de l'instruction en cours et du contenu de cette adresse. L'adresse et son contenu sont donc enregistrés en continu dans 3. L'enregistrement a lieu au temps IItlfl pour l'adresse et au temps l't2" pour le contenu de cette adresse. Les temps tl et t2 sont issus des deux entrées d'échantillonnage 14. A chaque nouvelle adresse arrivant par 1, une comparaison est faite par 5. Si le résultat de cette comparaison est positif, l'enregistrement est arrêté. Il faut noter cependant que, dans le cas où l'utilisateur désire arrêter son programme sur une zone d'adresse, une double comparaison sera nécessaire, d'abord pour le seuil bas et ensuite pour le seuil haut. La troisième étape consiste à exploiter le résultat, c'està-dire à lire les mémoires 3. Pour des raisons de facilité d'exploitation, ces mémoires seront lues pas à pas à l'envers (système LIFO). Le résultat de chaque lecture sera transmis à l'utilisateur par un moyen visuel (ou display), 13, via une unité de décoda ge,-ll. Si les mémoires sont des registres à décalages unidirectionnels, il sera nécessaire de faire n-l lectures successives entre chaque display. En effet, si, par exemple, le registre à décalage comporte n = 128 bits, pour faire -1 il faudra effectuer + 127 (soit n-l) avec un recyclage sortis/entrés. Ceci explique la présen ce des compteurs 9 constitués de deux compteurs, l'un à "n", l'autre à "n-1". Le dernier sert donc à faire -1 tandis que le premier contient l'adresse du display de façon à revenir éventuel lement au point de départ. Ce point de départ sera aisément retrou vé grâce au système de visualisation 16, couplé au premier comp teur 9, et qui sert à indiquer à l'utilisateur l'adresse du display. Les convertisseurs, 11, sont du type binaire/hexadé cimal, binaire/octal et binaire/BCD. Les Les types de conversion désiré sera programmé par 12, donc par l'utilisateur. Cette unité de programmation sert également à scinder un mot en plusieurs parties. Par exemple, si le format d'une instruction de 16 bis est le suivant (MSB = bit 0) bits O à 3 : code fonction bits 4 à 7 : accumulateur bits 8 à l5 : adresse opérande et si le code interne utilisé est l'hexadécimal, nous aurons 1 digit pour la fonction 1 digit pour l'accumulateur 2 digits pour l'adresse opérande. L'utilisateur, par l'intermédiaire de l'unité de programmation, pourra décoder et découper son mot comme il le voudra. Cette programmation pourra être effectuée par un système de liens ou bien d'interrupteurs disposés sur le panneau arrière de l'appareil. Le rôle de la logique à bistables 6 consiste à donner les ordres d'écriture et de lecture mémoire en fonction des différents paramètres issus de 5,7,8,9 et 15. Le dispositif 8 sert à détecter les boucles de programme. Cela est possible à partir de la connaissance des paramètres suivants - "n" = Nombre de passages sur une même instruction - "t" = Temps écoulé entre deux passages - "k" = Nombre de passages autorisés. En fait, le dispositif 8 sera essentiellement cons titué d'un compteur rechargeable comptant le nombre "n", d'un monostable redéclenchable comptant le temps "t" et d'une mémoire mémorisant le nombre "k". Par ce dispositif, une boucle de programme sera déterminée si le programme passe plusieurs fois de suite sur une même adresse avec cependant comme condition initiale, un temps entre deux passages "t" donné. Si "n", le nombre de passages, atteint la valeur limite "k", l'enregistrement est arrêté. Si, entretemps, la boucle est rompue, le dispositif 8 est remis à zéro. L'unité 10 sert à coupler les mémoires entr'elles de façon à transformer par #exemple, un ensemble 8 X 128 en 4 X 256 ou 2 X 512. L'entrée d'arrêt extérieur 15 est employée lorsque l'utilisateur désire arrêter l'enregistrement non pas sur une adresse ou une zone d'adresse, mais sur un signal extérieur. Un avertisseur sonore 16 est prévu de telle façon que l'utilisateur puisse être averti de l'arrêt de ltenregistrement Cet arrêt pourra provenir, ainsi qu'il a été dit précédemment, soit de la détection d'une adresse, d'une zone d'adresse, d'une boucle de programme ou d'un signal extérieur émis par 15. Il faut noter enfin que les afficheurs 13 et 16 pour ront être des afficheurs numérique, alpha-numériques ou, tout simplement, des lampes ou diodes électro-luminescentes à raison d'une lampe par bit. REVENDICATIONS 1. Dispositif servant à exploiter un programme d'ordinateur, caractérisé par le fait qu'il comprend deux ensembles de mémoires commandé séparément par des circuits d'échantillonnage différents, un dispositif d'arrêt d'enregistrement, plusieurs systèmes d'affichage et de visualisation, des circuits logiques divers et un circuit logique approprié destiné à commander l'ensemble des opérations de telles façons qu'un programme d'ordinateur puisse être enregistré dynamiquement et relu ultérieurement pas à pas. 2. Dispositif, selon la revendication 1, dans lequel l'arrêt de l'enregistrement est issu d'un double comparateur binaire à seuil haut et seuil bas servant à comparer les données provenant de l'ordinateur avec les adresses indiquées par l'utilisa- teur. 3. Dispositif, selon l'une des revendications 1 et 2 dans lequel les mémoires sont lues pas à pas à l'envers suivant la méthode LIFO ("dernier entré, premier sorti") avec l'aide de deux compteurs, l'un à "n" états indiquent à l'utilisateur l'adresse de l'affichage en cours, l'autre à "n-l" états destiné à faire le -1 à chaque lecture, le nombre "n" étant la taille de la mémoire. 4, Dispositif, selon l'une des revendications 1 à 3, dans lequel le compteur à "n" états est couplé à un circuit de visualisation à décodage incorporé. 5. Dispositif, selon l'une des revendications 1 à 4, dans lequel les sorties des mémoires sont connectées à un dispositif de visualisation à travers un décodeur programmable conçu de telle façon que les mots en sortie mémoire peuvent être découpés et encodés suivant les instructions de l'utilisateur. 6. Dispositif, selon l'une des revendications 1 à 5, constitué par un ensemble de mémoires, monostables et compteurs, agencée de telle façon qu'une boucle de programme puisse être détectée. 7. Dispositif, selon l'une des revendications 1 à 6, dans lequel les mémoires sont subdivisées en deux groupes, un groupe adresse connecté au comparateurs, et un groupe "données" utilisé pour exploiter le contenu desdites adresses, ces deux groupes étant commandés par des entrées d'échantillonnage différentes. 8. Dispositif, selon l'une des revendications 1 à 7, constitué par un avertisseur sonore mis en marche lors d'un arrêt de l'enregistrement et destiné à avertir l'utilisateur que la phase d'écriture vient d'être terminée.