FR 2026618 A1 19700918 FR 6938590 A 19691103 69 38990 1 2026618 La présente invention concerne les systèmes de traitement de données microprogrammés. L'invention permet de réaliser un système de traitement de données microprogrammé comprenant un circuit de traitement de données principal ayant des 5 positions d'emmagasinage-de bits qui réalisent le contrôle ou la commande de données du système et un système d'introduction de données qui peut être actionné sélectivement comprenant un registre d'injection emmagasinant des données simulées de contrôle ou de commande, des moyens pour connecter les positions d'emmagasinage de bite du registre d'injection aux positions d'emmagasinage de 1D bits respectives du circuit de traitement de données principal et des moyens d'identification répondant au circuit de traitement de données principal pour identifier un stade prédéterminé dans l'exécution d'un microprogramme, ces moyens d'identification étant adaptés, à l'identification du stade prédéterminé, à conditionner le moyen de connexion pour introduire le contenu d'une ou plu-15 sieurs positions d'emmagasinage de bits du registre d'injection dans les positions d'emmagasinage de bits respectives du circuit de traitement de données principal pour amorcer un test particulier du système ou répondre délibérément par un moyen autre que le microprogramme. D'autres objets, caractéristiques et avantages de.la présente invention 20 ressortiront mieux de l'exposé qui suit, fait en référence aux dessins annexés à ce texte, qui représentent un mode de réalisation préféré de celle-ci. La figure 1 représente un bloc diagramme d'un système de traitement de données conformément à l'invention. La figure 2 représente un bloc diagramme d'un système de traitement de 25 données conforme à la figure 1, utilisant une forme particulière de système d'introduction de données. La figure 3 représente un bloc diagramme du système de traitement de données de la figure 1, utilisant une autre forme particulière du système d'introduction de données. 30 La figure 4 représente un bloc diagramme d'une forme du système de traite ment de données conformément à la présente invention. Sur les dessins, les divers canaux de données sont représentés, dans un but de simplicité, par des lignes, mais on doit comprendre que ces lignes ne sont que des représentations et leur utilisation n'implique pas l'exclusion 35 du transfert des données en parallèle sur de telles lignes. Les systèmes de traitement de données microprogrammés du type représenté sur les figures 1 à 4, comportent un circuit de traitement de données principal constitué par une mémoire principale dans laquelle les données et un programme d'instructions sont emmagasinées et une unité centrale de traitement 40 CPU. Les données et instructions sont interchangées entre la mémoire principale 69 38990 2 2026618 et l'unité centrale de traitement et les données sont traitées dans l'unité centrale de traitement d'une manière définie par les instructions. Un système microprogrammé est un système dans lequel une instruction individuelle du programme ne spécifie pas toutes les opérations distinctes nécessaires pour réa-5 liser la fonction de l'instruction mais contient l'adresse du début d'un sous*-programme de microinstructions appelé microprogramme. Les micro-instructions définissent individuellement les opérations fondamentales qui doivent être réalisées par le système pour réaliser la fonction de l'instruction ou macro-instruction du programme quand elle est demandée normalement. Lès microprogrammes 10 peuvent être emmagasinés dans la mémoire principale mais, dans les réalisations décrites ici, ils sont emmagasinés dans leur propre mémoire' dans l'unité centrale de traitement. * Le circuit de traitement de données principal comporte des positions d'emmagasinage de bits qui se présentent par exemple sous la forme de bascules ou 15 registres, et qui fournissent l'information de contrôle ou de commande pour le système, par exemple l'information d'erreur ou d'état qui représente l'apparition d'une erreur de parité ou la disponibilité d'une unité périphérique pour une intervention. Lé système est conçu de façon qu'une réponse particulière du système puisse être déclenchée si certaines valeurs entrent dans ces po-20 sitions d'emmagasinage de bits. Par exemple, le système peut comprendre un moyen de réexcécution d'instructions qui répond à une indication d'erreurs pendant l'exécution d'un microprogramme en faisant tenter une réexécution du microprogramme par le système. Ou bien, un microprogramme peut provoquer l'interrogation de certaines 25 positions d'emmagasinage de bits du circuit de traitement de données principal à un point quelconque pendant son exécution, afin de faire une décision de branchement. Cette invention est fondée sur le fait que, pour le diagnostic ou le test, il est souhaitable de pouvoir injecter les données dans les positions d'emma-30 gasinage de bits à un stade prédéterminé pendant l'exécution d'un microprogramme, afin de simuler un état particulier du système et amorcer une réponse particulière du système délibérément par un moyen autre que par le microprogramme. Cette possiblité permet le test, par exemple, d'opérations d'un moyen de réexécution d'instructions à un stade quelconque pendant l'exécution d'un 35 microprogramme en simulant une erreur. Un tel test ne peut être réalisé par des micro-instructions du microprogramme lui-même. L'indication d'erreur peut être produite en déclenchant une position d'emmagasinage de bits comprenant une bascule de vérification d'erreurs. Ou bien elle peut être produite par 1' injection d'une erreur de parité dans les données correctes dans les positions 40 d'emmagasinage de bit du circuit de traitement de données principal, grâce 69 38990 3 2026618 à quoi la bascule de vérification est automatiquement enclenchée par le circuit de détection d'erreur. Une telle possibilité peut aussi permettre à une branche particulière d'un microprogramme d'être testée en simulant dans les positions d'emmagasinage de bit du circuit dB traitement de données principal 5 des états qui font suivre au système cette branche. Les systèmes de traitement de données microprogrammés représentés sur les figures 1 à 4 comprennent chacun un système d Introduction cfe données pour réaliser cette injection de données. Dans le brevet n° 1 439 980 déposé par la demanderesse en France le 1 10 Avril 1965, est décrit un système de traitement de données microprogrammé dans lequel, par une instruction du programme "diagnostic", une routine du microprogramme peut être réalisée, qui comprend une section d'un microprogramme emmagasinée La micro-instruction à laquelle va se terminer la routine peut être identifiée et lorsque cette micro-instruction est atteinte, une routine de re-1! cherche d'instruction est amorcée. Dans les réalisations préférées de la présente invention décrites ici, on utilise aussi une instruction de diagnostic mais il y a deux différences principales, premièrement l'instruction provoque l'injection des données simulées pour le système, c'est-à-dire des données de test ou de diagnostic artificielles correspondant aux données qui peuvent se 20 produire dans le système, et deuxièmement, l'instruction ne détermine pas d' elle même la fin du microprogramme à une micro-instruction intermédiaire. La construction de ces réalisations implique des changements de matériel dans les systèmes existants et au moins le registre d'injection et les moyens de connexion associés doivent être ajoutés. Un autre changement important sera apparent 25 d'après une caractéristique préférée de l'invention, à savoir qu'au moins une des positions d'emmagasinage de bits du circuit de traitement de données principal est accessible exclusivement par le système d'introduction de données pour introduire les données de contrôle ou de commande simulées pour le système. Par exemple, il est courant, pour des raisons de sécurité, de rendre cer-30 taines des positions d'emmagasinage de bits du circuit de traitement de données principal, par exemple la bascule de vérification d'erreurs, inacessi-bles pour l'introduction de données sous commande du programme, c'est-à-dire, qu'il n'est pas possible par la programmation d'introduire des données prédéterminées délibérément dans ces positions d'emmagasinage de bits. Avec la pré-35 sente invention cette limitation ne s'applique plus puisque les positions d' emmagasinage de bits peuvent être associées avec le système d'introduction de données comme expliqué ainsi qu'avec les circuits d'introduction de données existant (qui ne permettent pas l'introduction de données simulées). Sur la figure 1, un système de traitement de données conforme à la pré-40 sente invention comprend une unité centrale de traitement 11 et une mémoire 69 38990 4 2026618 principale 12 connectées pour échanger l'information dans les lignes 13 et 14. Certaines des positions d'emmagasinage de bits de l'unité centrale de traitement, par exemple des registres ou bascules, sont appelés positions d'emmagasinage de bits 15. Une source d'Information 21 est représentée dans la section 5 en pointillés dans un coin de l'unité centrale de traitement 11. Les pointillés signifient qu'il est facultatif que la source d'information 21 fasse partie de l'unité centrale de traitement. Cette source fournit les informations à partir desquelles le stade atteint dans l'exécution d'un microprogramme est déterminé. 10 Un système d'introduction de données comprend un registre d'injection 16, un moyen de connexion 17 et un moyen d'identification 22. Avant le début du microprogramme, les données qui simulent les données de contrôle ou de commande pour le système, et qui sont forcées dans les positions d'emmagasinage de bits 15, sont chargées dans le registre d'injection, par exemple à partir d'un 15 registre [non représenté) dans la mémoire principale 12. La ligne en pointillés 20 représente la circulation effective de ces données au lieu du chemin réel, qui passe normalement par l'unité centrale de traitement, si les données viennent de la mémoire principale. Une autre solution consiste à charger les données dans le registre d'Injection par l'intermédiaire d'un clavier. Les posi-20 tions d'emmagasinage de bitedu registre d'injection sont connectées aux positions d'emmagasinage de bits 15 par leignes 1B et 19 et le moyen de connexion 17. Ce moyen de connexion 17 empêche les données de circuler à partir du régis-tre d'injection 16 jusqu'aux positions d'emmagasinage de bits 15, jusqu'à ce qu'il soit conditionné par une instruction sur la ligne 24 provenant du dispo-25 sitif d'identification 22. Le moyen de connexion comprend par exemple plusieurs portes ET. L'information déterminant un stade particulier dans l'exécution d'un microprogramme est transféré à partir d'un registre général dans la mémoire principale Cou autre part) au moyen d'identification 22 avant le début du microprogramme comme indiqué par la ligne 20. Pendant l'exécution du microprogram-30 me, le moyen d'identification 22 reçoit l'information d'identification de stade comme indiqué par la ligne 23. Lorsqu'il identifie le stade particulier déterminé par l'information préchargée, il émet un signal de conditionnement sur la ligne 24, au moyen de connexion 17, ce qui provoque l'introduction des données dans les positions d'emmagasinage de bits 15 à partir du registre d'in-35 jection 16. La figure 2 représente le système de traitement de données de la figure 1 utilisant un procédé particulier pour l'identification de stage. Ce procédé utilise le fait que la plupart des systèmes du traitement de données fonctionnent de façon synchrone avec les signaux de sortie provenant d'une horloge dans 40 l'unité centrale de traitement représentée en 31 sur la figure 2. A chaque 69 38990 5 2026618 micro-opération d'un microprogramme est alloué un nombre fixe d'impulsions d' horloge pendant lesquels il réalise complètement sa fonction. En conséquence le stade atteint dans l'exécution d'un microprogramme peut être déterminé en comptant le nombre des impulsions d'horloge depuis le début du microprogramme. 5 Dans le système de la figure 2, un nombre correspondant au stade auquel l'injection des données doit avoir lieu est chargé dans le compteur 32 comme indiqué par la ligne 20, avant que l'exécution du microprogramme commence. Une fois que l'exécution a commencé, les impulsions provenant de l'horloge 31 sont utilisées pour diminuer le contenu du compteur 32 qui atteindra zéro au moment 10 correspondant au stade prédéterminé. Un détecteur de zéro 33 produit immédiatement une impulsion de conditionnement pour le moyen de connexion 17, à la suite de quoi les données du registre d'injection 16 sont injectées dans les positions d'emmagasinage de bits 15 de l'unité centrale de traitement. On peut apporter diverses variantes è ce procédé. Dans une variante, le 15 détecteur de zéros est remplacé par un autre détecteur auquel conduit la ligne indiquée 20 au lieu qu'elle conduise au compteur 32 et le contenu du compteur est incrémenté à partir de zéro de sorte que le détecteur produit l'impulsion de conditionnement pour le moyen de connexion 17 lorsque la valeur dans le compteur 32 est égale au nombre préchargé par l'intermédiaire de la ligne 20 20 dans le détecteur. Même lorsque le système de traitement de données n'est pas synchrone, c'est-à-dire dans 1b cas où les micro-opérations ont lieu à un instant variable, le procédé de la figure 2 peut être utilisé dans la mesure ou il y a une source de signal de sortie quelconque indiquant la fin des micro-opérations 25 successives et qui peut être utilisée pour modifier le compteur 32. La figure 3 représente le système de traitement de données de la figure i utilisant un autre procédé d'identification de stade. Dans les systèmes de traitement de données du type représenté sur les figures 1 à 4, le microprogramme est souvent emmagasiné dans une mémoire permanente comme indiqué sché-30 matiquement en 46 sur la figure 3. La mémoire permanente 46 est adressée au moyen d'un registre d'adresses de microprogramme 41. Dans le registre 41 est emmagasinée l'adresse de la micro-instruction nécessitée par l'unité centrale de traitement pour l'exécution. Quand une micro-instruction est exécutée, 1' adresse dans le registre 41 est mise à jour par l'unité centrale de traitement. 35 Ainsi, le stade atteint dans l'exécution du microprogramme est défini par l'adresse dans le registre 41. Dans le système de la figure 3, l'adresse de la micro-instruction à laquelle les données sont introduites dans les positions d'emmagasinage de bits 15, est chargée comme indiqué par la ligne 20 dans le registre de comparaison d'a-40 dresses 44. Pendant l'exécution du microprogramme, ^1'adresse dans le registre 69 38990 6 2026618 41 identifiant le stade atteint dans 1'exécution du microprogramme est transférée sur la ligne 45 à un registre d'adresses en cours 42 qui est mis à jour quand l'adresse change. Un dispositif de comparaison d'adresses 43 compare les adresses dans les deux registres 42 et 44 pour trouver leur égalité et condi-5 tionne le moyen de connexion 17 lorsque les adresses sont les mimes. Dans les réalisations qui ont été décrites, le contenu du registre d'injection est introduit complètement dans les positions d'emmagasinage de bits 15. Si on le désire, on peut utiliser des masques préréglables pour masquer effectivement les positions d'emmagasinage de bit sélectionnées duregistre d'in-10 jection pendant l'introduction des données provenant du registre d'injection et allant dans les positions d'emmagasinage de bits du circuit de traitement de données principal, par exemple suivant les techniques des mémoires associatives. Dans une autre variante de l'invention, plusieurs registres d'injection 15 sont utilisés pour permettre d'Introduire des données à plusieurs stades pendant l'exécution d'un microprogramme. Chacun de ces registres est connecté par son propre moyen de connexion aux positions d'emmagasinage de bits 15. Chaque position 15 est associée avec les positions d'emmagasinage de bits respectives dans tous les registres d'injection. Le moyen d'identification est modifié pour 20 identifier plusieurs stades au lieu d'un. Par exemple, dans une modification du système de la figure 2, plusieurs détecteurs de valeurs sont reliés au compteur, chaque détecteur étant connecté à un des moyens de connexion. Le contenu de chacun des registres d'injection est alors forcé dans les positions d'emmagasinage de bits 15 quand chaque détecteur de valeurs signale que son stade 25 correspondant a été-atteint. ■ La figure 4 représente un système de traitement de données oonforme à la présente invention, dans lequel on donne un exemple particulier d'utilisation de l'invention. Le système de traitement de données comprend un dispositif de réexécution des instructions 51 parfois connu comme unité de récupération d'en-30 registrement. Un moyen de réexécution est un dispositif qui permet au système de traitement de données de reprendre l'exécution d'une macro instruction ou d'une instruction de programme si une erreur se produit pendant qu'on essaie de l'exécuter. Pour cela il emmagasine le contenu d'un registre sélectionné et les états des bascules dans l'unité centrale de traitem'ent ainsi qu'un car-35 tain nombre de données provenant de la mémoire principale. L'information provenant de l'unité centrale de traitement est reçue sur la ligne 52 et à partir de la mémoire principale sur la ligne 53. Chaque instruction du programme a deux phases correspondant aux deux sections distinctes du microprogramme associé. Une phase est la phase d'exécution ou phase E, et elle est suivie par la 40 phase de recherche d'instructions ou phase I, Pendant la phase E l'information 69 38990 7 2026618 de la mémoire principale et de l'unité centrale de traitement utilisée peut §tre changée sous commande du programme mais pendant la phase I elle doit rester constante. L'unité de récupération d'enregistrement emmagasine cette information pendant une phase I et la suppose valable. Elle est alors bloquée pendant 5 la phase E de la macro-instruction suivante. Si une erreur se produit pendant la phase E de cette instruction, le système peut être remis à l'état qu'il avait avant le début de l'instruction et l'instruction peut être réexécutée en utilisant les données bloquées dans l'unité de récupération d'enregistrement. Une erreur est amenée à l'attention de l'unité par un registre 54 qui est représen-10 té comme faisant partie des positions d'emmagasinage de bit 15. En utilisant le système d'introduction de données décrit précédemment, le dispositif de réexécution est testé en forçant l'information d'indication d'erreurs dans le registre 54 à un moment approprié pendant l'exécution du microprogramme correspondant à la macro-instruction. On peut accéder au registre 15 54 exclusivement par le système d'introduction de données pour introduire les données d'erreurs simulées. Dans tous les systèmes décrits, l'injection des données simulées a lieu en pratique à la suite de l'exécution d'une instruction de programme spéciale connue sous le nom d'instruction de diagnostic. Cette instruction précède immédiatement l'instruction du programme pendant laquelle 20 on veut introduire les données dans certaines ou toutes les positions d'emmagasinage de bits 15 dans l'unité centrale de traitement. L'instruction de diagnostic contient un code opération identifiant uniquement l'opération à réaliser, c'est-à-dire l'injection des données et l'information d'adresses pour le point de départ d'un microprogramme associé qui commande en réalité les opéra-25 tions et une adresse de la mémoire principale. L'adresse de la mémoire principale est celle d'un registre contenant les données à injecter et par exemple dans le système de la figure 2, la valeur à placer dans le compteur. Ce registre de mémoire principal aura été rempli par les données appropriées par des techniques de programmation classiques par l'intermédiaire des moyens d'entrée 30 classiques. L'exécution du microprogramme d'instruction de diagnostic provoque le chargement du registre d'injection et du compteur. L'introduction des données désirées a alors lieu comme décrit en détail précédemment au stade prédéterminé de l'exécution du microprogramme demandé par l'instruction du programme suivant immédiatement l'instruction de diagnostic dans la mémoire prin-35 cipale. Poufc les réalisations décrites ici aucun circuit particulier n'a été représenté pour le registre d'injection, le moyen de connexion et les positions d'emmagasinage de bits du circuit de traitement de données principal, ces dispositifs étant classiques et connus de l'homme de l'art. Par exemple, dans un 40 montage possible, le registre d'injection comprend"plusieurs bascules bista- 69 389.90 8 2026618 bles dont les sorties 1 conduisent à des portes ET respectives formant le moyen de connexion, les portes ET étant conditionnées par une impulsion provenant du moyen d'identification. Les positions d'emmagasinage de bits du circuit de traitement de données principal, comprennent d'autres bascules bistables ayant 5 des entrées d'enclenchement et de restauration, les entrées d'enclenchement étant couplées aux sorties respectives des portes ET et les entrées de restauration étant couplées par l'intermédiaire d'un inverseur aux sorties respectives des portes ET, Sien que ce montage soit préféré, si l'on ne désire introduire que des "1", les couplages par l'intermédiaire des inverseurs aux entrées 10 de restau ration peuvent §tre éliminés. Un montage fonctionnant à vitesse plus lente comprend un registre à décalage classique. Bien que l'on ait décrit dans ce qui précède et représenté sur les dessins, les caractéristiques essentielles de l'invention appliquées à un mode de réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y ap-15 porter toutes modifications de forme ou de détail qu'il juge utiles, sans pour autant sortir du cadre de ladite invention. 69 38990 S 2026618 REVENDICATIONS 1.- Système de traitement de données microprogrammé comprenant une mémoire principale, une unité principale de traitement d8 données comportant des positions d'emmagasinage d'informations pour réaliser le contrôle bu la commande 5 du système et un dispositif d'introduction de données pouvant être actionné sélectivement, caractérisé en ce qu'il comporte: '- un registre d'injection emmagasinant des données simulées de contrôle ou de commande, - des moyens de connexion pour relier les diverses positions d'emmagasi-10 nage d'information du registre d'injection aux positions d'emmagasinage d'information de l'unité principale de traitement, - des moyens d'identification commandés par l'unité principale de traitement pour identifier un stade prédéterminé dans l'exécution d'un microprogramme, lesdits moyens d'identification étant adaptés pour que, à la suite de 15 l'identification dudit stade prédéterminé, ils conditionnent les moyens de connexions pour introduire le contenu d'une ou plusieurs positions d'emmagasinage d'information du registre d'injection dans, les positions d'emmagasinage d'informations de l'unité principale de traitement de données, pour amorcer une opération particulière du système ou pour commander le système par un 20 moyen autre que le microprogramme. 2.- Système de traitement de données selon la revendication dans lequel les données simulées de contrôle ou de commande comportent des informations d'erreurs simulées. 3.- Système de traitement de données selon les revendications 1 ou 2 dans le-25 quel au moins une des positions d'emmagasinage de données de l'unité principale de traitement de données est accessible exclusivment par le dispositif d'introduction de données pour l'entrée dans le système de données simulées ds contrôle ou de commande, 4.- Système de traitement de données selon la revendication 1 ou 2 ou 3 dans 30 lequel l'unité principale de traitement de données comporte une horloge et IBs moyen d'identification comportent un compteur dont le contenu est modifié à chaque réception des impulsions émises à intervalles réguliers par l'horloge., des moyens contrôlant le contenu du compteur et émettant un signal lorsque le contenu dudit compteur atteint une valeur prédéterminée. 35 5.- Système de traitement dB données selon la revendication 1, 2, ou 3 dans 69 38990 10 2026618 lequel l'unité centrale de traitement de données comporte un registre d'adresse contenant l'adresse de la microinstruction sn cours d'exécution et dans lequel des moyens d'identification comprenant un registre de comparaison d'adresse, des moyens pour enregistrer dans le registre de comparaison d'adresses l'adres-5 se de la microinstruction correspondant à un stade prédéterminé du déroulement du microprogramme, et des moyens de comparaison d'adresses.sont utilisés pour comparer le contenu du registre d'adresse au contenu du registre de comparaison d'adresses pour identifier ledit stade prédéterminé du microprogramme. 6.- Système de traitement de données selon l'une quelconque des revendications 10 précédentes comportant des moyens de masquage pour masquer certaines positions prédéterminées du registre d'injection durant l'entrée de données dans les positions d'emmagasinage de données de l'unité centrale à partir du registre d'injection. 7.- Système de traitement de données selon l'une des revendications précé-15 dentes dans lequel le dispositif d'introduction de données comprend plusieurs registres d'injection de données, plusieurs moyens de connexion, chacun de ces moyens étant prévu pour connecter les positions d'emmagasinage d'un registre d'injection aux positions d'emmagasinage correspondantes de l'unité centrale, des moyens d'identification, commandés par l'unité centrale. Identifient plu-20 sieurs stades prédéterminés du microprogramme et conditionnant, à la suite de l'identification de chacun desdits stades, l'un des moyens de connexion pour entrer le contenu de l'ureou de plusieurs positions d'emmagasinage d'un registre d'injection dans les positions d'emmagasinage correspondantes de l'unité centrale. 25 8.- Système de traitement de données selon l'une des revendications précédentes dans lequel l'unité centrale de traitement comporte des moyens permettant la réexécution d'instructions activés lorsqu'un registre d'indication se trouve dans on état prédéterminé, ledit registre d'indication étant formé par au moins une partie des positions d'emmagasinage de données de l'unité centrale 30 de traitement dans lesquelles les données simulées peuvent être entrées par le dispositif d'introduction de données.