FR 2497588 A1 19820709 FR 8123697 A 19811218 La présente invention se rapporte aux contrôleurs servant à effectuer le traitement des données entre une unité de traitement et un visuel dans un système graphique interactif. Le contrôleur assure un traitement plus rapide des données ce qui, à son tour, permet à de plus grands volumes de données d'être affichés en de plus courtes périodes de temps. Avec les systèmes graphiques interactifs, on exécute des taches de conception et on prépare des programmes de fabrication grâce aux efforts conjoints des capacités humaines et de la machine. Le concepteur humain est aidé par la capacité de traitement d'une machine pour produire des données de conception et de fabrication de manière plus détaillée et plus précise et en de plus courtes périodes de temps que ne le pourrait le concepteur seul. Les systèmes interactifs comprennent, en général, une unité de traitement centrale ou principale et un poste de travail où l'opérateur humain communique avec l'unité de traitement par l'intermédiaire d'un pupitre de commande et observe visuellement le développement du modèle sur un dispositif d'affichage graphique. Dans certains systèmes, plusieurs postes de travail peuvent être connectés à l'unité de traitement et les opérateurs peuvent communiquer avec les divers postes de travail ainsi qu'avec l'unité de trai tent. Les dispositifs d'affichage graphique utilisent des tubes à rayons cathodiques pour engendrer les images des données sur un écran disposé devant l'opérateur de la machine. Divers types de tubes sont utilisés à cette fin. Un de ces types est un tube à balayage ligne par ligne classique qui est balayé suivant une trame à haute fréquence pour engendrer une image et un autre type est le tube à mémoire dans lequel les données sont divisées en deux classes dont l'une présente un caractère plus permanent que l'autre et est continuellement mémorisée dans les images affichées par des canons de flux et dont l'autre est de nature moins per manente et est conservée pendant une période de temps qui dépend de la persistance du tube, Des modifications et des changements peuvent être apportés à la seconde classe de données au moyen d'un système interactif sans effacer et sans redessiner ltensemble de l'affichage mais les données de la seconde classe de données doivent être également ravivées à des intervalles périodiques pour empêcher les images de disparaitre progressivement. Encore un autre type d'affichage utilise un processus de représentation vectorielle suivant lequel l'image d'un tube à rayon cathodique classique est produit par déviation directe ou déplacement vectoriel du faisceau é- lectronique sur un écran à faible persistance suivant le dessin désiré sans laisser d'enregistrement permanent0 Pour retenir l'image sous une forme perceptible visuellement, il est nécessaire de "redessiner" l'image, à une fréquence de cinquante Hertz, par exemple. Les systèmes d'affichage décrits ci-dessus pré- sentent divers avantages et inconvénients pour la manipulation des données. Les tubes à balayage ligne par ligne traitent des volumes plus importants de données tandis que les tubes vectoriels permettent à des données d'être engendrées plus rapidement en volumes plus limités. Les tubes à mémoire conservent les données pendant de plus grandes périodes de temps mais rendent la révision plus difficile et longue. Pour effacer des données choisies de l'écran, il est nécessaire tout d'abord d'extraire les données "mémorisées" de la mémoire, puis d'effacer toute l'image de l'écran et de reproduire à nouveau l'image avec les données choisies omises0 Des opéra- tions de ravivage sont périodiquement nécessaires pour conserver la seconde classe de données sous une forme visible mais, comme avec tous les systèmes de traitement de données, il existe une limite supérieure à la quantité de données ou de vecteurs qui peuvent être entretenus sur des tubes à mémoire entre les opérations de ravivage0 Cette limitation en ce qui concerne la quantité de données qui peuvent être affichées limite nécessairement les dimensions et la complexité des images qui peuvent être observées et sur lesquelles on peut travailler au moyen du terminal de commande interactif Tous les systèmes interactifs qui utilisent les systèmes d'affichage décrits ci-dessus bénéficieraient d'un traitement plus rapide des données pour l'affichage Un traitement plus rapide réduit le temps d'attente pour le redessinage et accroit la quantité de données qui peut être affichée entre les opérations de "ravivage".Par conséquent, l'un des buts généraux de la présente invention est d'accroître la vitesse à laquelle les données sont manipulées entre l'unité de traitement des données et le dispositif d'affichage graphique d'un système graphique interactif La présente invention a pour objet un système graphique interactif ayant une unité de traitement connectée à un dispositif d'affichage interactif disposé sur un pupitre d'opérateur, Un contrôleur d'affichage perfectionné faisant partie du système assure un traitement plus rapide des données entre l'unité de traitement et le dispositif d'affichage de sorte que des volumes plus importants de données peuvent être représentés sur l'écran en de plus courtes périodes de temps, Le contrôleur d'affichage comporte une série d'éléments spécialisés qui exécutent des opérations mathématiques et logiques spécifiques liées à la génération et à l'affichage de données graphiques dans le dispositif d'affichage. Dans un mode de réalisation préféré de l'invention, les opérations mathématiques choisies pour être exécutées dans le contrôleur d'affichage sont celles qui sont exécutées de manière parfaitement satisfaisante sans utilisation de logiciel, de telles opérations conprenant les multiplications, les comparaisons et les additions, Des unités arithmétiques et logiques sont utilisées spécifiquement pour exécuter de telles fonctions. Une mémoire de contrôle qui coopère avec les éléments spécialisés comporte un jeu de mots d'instruction propres dans un format à organisation horizontale pour permettre leur transmission directe aux éléments spécialisés lorsque les mots d'instruction sont exécutés. Chacun des mots d'instruction peut être adressé individuellement afin d'être lu et exécuté sur commande De préférence, la mémoire de contrôle est composée d'une ou de plusieurs mémoires mortes programmables (MMP)o Des moyens de mise en séquence de programme sont connectés à la mémoire de contrôle pour extraire séquentiellement des mots d'instruction, adressés individuellement, de la mémoire de contrôle* Les moyens de mise en séquence engendrent l'information d'adresse suivant une séquence numérique ou en réponse à des commandes externes qui ordonnent des sauts ou branchements à des adresses spécifiées indépendamment d'un ordre prédéterminé quelconque d'adresses Des moyens de commande déclenchés sont associés à la mémoire de contrôle pour recevoir individuellement les mots d'instruction lorsqu'ils sont commandés ou reçoivent une impulsion d'horloge Ces moyens de commande sont, en outre, connectés aux éléments spécialisés de sorte que les mots extraits provoquent 11 exécution des instructions Du fait de l'emploi d'un format de mot organisé horizontalement pour les mots d'instruction, les bits des mots choisis sont transmis à des éléments donnés et les bits du mot eux-mêmes peuvent servir de commandes pour actionner ces éléments sans autre décodage* Une horloge de commande mère produit séquentiellement des signaux d'horloge avec un cycle d'horloge prédéterminé. L'horloge est connectée aux moyens de mise en séquence de programme et aux moyens de commande déclenchés pour piloter les moyens de mise en séquence et lire un mot d'instruction pendant un cycle d'horloge et pour déclencher les moyens de commande déclenchés et exécuter le mot d'instruc tion lu pendant le cycle d'horloge suivant. Ainsi, le contrôleur a une construction à double pipeline dans laquelle la lecture en mémoire et l'exécution sont effectuées pendant des cycles d'horloge séparés.La construction à double pipeline permet d'avoir des cycles d'horloge plus courts et un débit de données plus rapide du fait que les retards de propagation associés à la lecture du mot d'instruction et à l'exécution du mot d'instruction dans les éléments spécialisés se produisent simultanément, En d'autres termes, les retards se chevauchent et les cycles d'horloge sont tronqués pour permettre l'application plus fréquente des signaux d'horloge et un traitement plus rapide des données pour l'affichage. Du fait du traitement plus rapide, de plus grandes quantités de données peuvent être engendrées dans l'affichage avant les opérations de ravivage et la reproduction ou la recopie d'un affichage se produit en une plus courte période de temps. En outre, certains des éléments spécialisés du contrôleur qui exécutent les opérations mathématiques possèdent des caractéristiques qui accroissent la vitesse de traitement. Dans une unité arithmétique et logique qui exécute les opérations arithmétiques pour l'affichage, des caractéristiques d'accélération des opérations de multiplication provoquent l'exécution des opérations de multiplication d'une manière abrégée lorsque des zéros apparaissent dans le multiplicateur. Une caractéristique de prévision des reports est également incluse pour réduire le temps de la propagation des impulsions de report transférées d'un étage à un autre, En outre, il est prévu une caractéristique de sélection de longueur de mot pour réduire le temps de traitement lorsque la longueur des mots de données qui sont traités est réduite. Par conséquent, les opérations de traitement des données sont considérablement accélérées. Le ravivage et la reproduction des données dans l'affichage s'effectuent plus rapidement et de plus grandes quantités de données peuvent être présentées sur l'affichage en une seule fois* D'autres caractéristiques de l'invention apparai- tront à la lecture de la description qui va suivre et à l'e- xamen des dessins annexés dans lesquels la figure 1 est une vue en perspective qui représente les éléments de base d'un système graphique interactif dans lequel la présente invention peut être employée; la figure 2 est un schéma-bloc du système graphique interactif montrant les interrelations qui existent entre les divers éléments à un niveau d'organisation;; la figure 3 est un schéma du contrôleur de données et de ses interconnexions avec divers dispositifs périphériques par l'intermédiaire d'un bus d'informations graphiques; la figure 4 est un schéma de la partie d'unité de contrôle du contrôleur d'affichage représenté sur la figure 3; la figure 5 est un schéma représentant une partie de ''unité d'opérations du contrôleur d'affichage qui comporte les unités arithmétiques et logiques; la figure 6 est un schéma représentant une autre partie de l'unité d'opérations qui comporte la pile d'applications, le registre d'état et l'interface avec le bus d'informations graphiques; la figure 7 est un schéma détaillé du séquenceur de microprogramme de l'unité de contrôle; la figure 8 est un schéma détaillé des circuits de manipulation des données de l'unité d'opérations. La figure 1 représente les éléments principaux d'un système graphique interactif qui comporte une unité de traitement (UT) 10, un dispositif d'affichage graphique ou visuel 12 constitué par un tube à rayons cathodiques, un processeur satellite 14, un pupitre satellite et un curseur graphique 180 L'unité de traitement 10 exécute les fonctions de clacul et de commande complexes et est, en règle générale, un ordinateur de grande capacité, tel que l'ordinateur HP 1000 fabriqué par Hewlett-Packard qui peut prendre en charge un ou plusieurs postes de travail sa stellites. Le pupitre satellite 16 du système graphique interactif permet à un opérateur de communiquer avec l'unité de traitement 10 et avec le processeur satellite pour exécuter une multiplicité de fonctions de conception complexes avec l'aide du dispositif d'affichage graphique interactif 120 Le processeur satellite, qui peut également être un ordinateur HP1000, contient le fichier d'affichage ou le programme graphique qui définit les fonctions graphiques qui peuvent être exécutées dans l'unité d'affichage 12 seule ou avec l'aide du contrôleur d'affichage et de données 240 De telles fonctions comprennent le ravivage de l'affichage, le positionnement de symboles, la génération de vecteurs, le découpage des images, la génération de vues panoramiques, le changement de plan et autres fonctions. Le curseur graphique 18 commande le positionnement du point index 20 sur l'écran d'affichage de sorte que l'opérateur peut visuellement identifier les points de données sur lesquels il désire agir. Par exemple, si l'opérateur désire repositionner le coin d'un objet rectangulaire, tel que celui représenté sur la figure 1, il déplace le curseur 18 pour positionner l'index 20 au-dessus de ce coin et ensuite il entre un code approprié dans le pupitre satellite 16 pour indiquer qu'il désire repositionner ce point. Il déplace alors le curseur jusqu'au nouvel emplacement et l'affichage est modifié pour refléter les données modifiées. En même temps, les données d'affichage sont mises à jour pour représenter l'état le plus récent de L'affichage.Des données supplémentaires sont entrées dans l'affichage à partir de divers dispositifs d'entrée, tels que la tablette d'entrée de données de symbole (TADSY) 22 qui comporte une matrice de blocs de touches à effleurement correspondant à des symboles présélectionnés* Lorsqu'on touche un symbole particulier de la matrice avec le doigt ou avec un stylet, le symbole apparait dans l'affichage graphique et on le positionne ensuite au moyen du curseur ou du clavier du pupitre satellite. Etant donné que le tube à rayons cathodiques qui constitue le principal élément du dispositif d'affichage graphique ne peut pas conserver indéfiniment une image non mémorisée, l'affichage doit être périodiquement ravivé Etant donné qu'une partie limitée de l'Image ne peut pas être effacée seule, des parties importantes de l'affichage doivent etre régénérées lorsque des changements sont apportés aux données. Ainsi, l'équipement de traitement des données qui engendre les images sur l'écran d'affichage doit exécuter rapidement les opérations de traitement pour traiter toutes les opérations mathématiques et logiques en une brève période de temps après que l'opérateur a indiqué ses intentions par l'intermédiaire du pupitre 16.Conformément à la présente invention, on réalise un traitement plus rapide des données en répartissant la charge de travail de calcul entre l'unité de traitement 10, le processeur satellite 14 et, plus particulièrement, le contrôleur d'affichage de données 24. Comme représenté sur la figure 2, le contrôleur de données 24 est connecté entre le processeur satellite 14 et le dispositif 12 d'affichage graphique. Les données sont échangées entre le contrôleur et le dispositif 12 d'affichage graphique par l'intermédiaire d'un générateur de vecteurs/caractères 26 qui est couplé au dispositif d'affichage graphique par l'intermédiaire d'une commande analogique 28 Le contrôleur d'affichage 24 comporte des éléments qui sont consacrés à des fonctions de traitement spécifiques attribuées au contrôleur et qui utilisent des mots de commande ou d'instruction organisés horizontalement pour accélérer le traitement à l'intérieur du contrôleur.Un format de mot organisé horizontalement se réfère à des mots d'instruction qui contiennent un nombre minimal de zones codées, Au coût d'un accroissement de la longueur du mot, il n'est attribué à chacun des bits du mot qu'une fonction ou qu'un nombre limité de fonctions et ces bits sont transmis directement aux éléments récepteurs sans décodage. Un élément spécialisé est un élément spécialement conçu ou assemblé qui exécute une fonction spécifique ou un nombre limité de fonctions spécifiques. Le contrôleur d'affichage 24 a également une construction à double pipeline comme décrit ci-dessous qui permet à certains retards de propagation dans différentes parties du matériel de se produire simultanément, Par exemple, les opérations du contrôleur sont pilotées par une horloge mère et la lecture d'un mot de données est effectuée pendant un cycle d'horloge tandis que ltexécu- tion de ce mot est effectuée pendant un autre cycle dthor- loge. Les retards liés à la lecture et à l'exécution de mots d'instruction consécutifs se chevauchent, ce qui rend les opérations de traitement plus efficaces.Naturellement, le cycle d'horloge a une plus courte durée que celle qui serait nécessaire si la lecture et l'exécution d'un mot de commande étaient effectuées au cours d'un seul et même cycle et le temps de cycle plus court est choisi pour permettre l'opération la plus longue exécutée par les éléments spécialisés du système. Il en résulte que les données sont fournies en sortie à un débit plus rapide pour leur présentation sur l'écran d'affichage. La figure 3 représente la manière suivant laquelle un mode de réalisation du contrôleur d'affichage 24 est connecté au processeur satellite, au dispositif d'affichage graphique et à un certain nombre d'autres périphériques au moyen d'un bus d'informations graphiques 30. Dans le mode de réalisation décrit ici, le contrôleur d'affichage 24 est divisé en deux parties, l'unité de contrôle (UC) 32 qui commande principalement la séquence d'opérations exécutée pour traiter les données et une unité d'opérations (uo) qui exécute les fonctions mathématiques et logiques du contrôleur0 Les communications entre les deux unités 32 et 34 et le processeur satellite 14 de la figure 2 sont effectuées au moyen d'un coupleur ou connecteur 36 d'accès de satellite connecté au bus d'informations graphiques 30 De même, les communications entre les unités et le dispositif d'affichage graphique sont effectuées par l'intermédiaire du connecteur 38 d'accès du visuel connecté au bus 30. En outre, certains autres équipements périphériques peuvent être connectés au bus d'informations graphiques à des fins de diagnostic ou à d'autres fins spéciales* Un point d'accès de diagnostic 40 est prévu pour permettre de connecter le système graphique interactif à un équipement de diagnostic externe, tel qu'un récepteur/émetteur asynchrone universel (REVU). Le récepteur/émetteur en combinaison avec le microprogramme produit des signaux ou configurations d'essai qui produisent des réponses connues du système si le système est en état de fonctionnement correct. Les données provenant du récepteur/émetteur sont transmises, par l'intermédiaire de l'accès de diagnostic, au bus d'informations graphiques et les réponses de l'unité de contrôle, de l'unité d'opérations et du dispositif d'affichage graphique sont retournées par l'intermédiaire du point d'accès au récepteur/émetteur pour comparaison avec les résultats escomptés, Une mémoire de messages 42 est également utilisée à des fins de diagnostic et fonctionne en combinaison avec le connecteur 40 de diagnostic, Les commandes entrées dans le système au moyen du récepteur/émetteur peuvent extraire, par exemple, des configurations d'essai contenues dans la mémoire de messages et afficher ces configurations sur le dispositif d'affichage visuel afin de permettre une analyse visuelle. Un générateur de symboles 44 constitué par un groupe de mémoires programmables contenant des commandes vec torielles nécessaires pour engendrer les caractères spéciaux sur le dispositif d'affichage 12 peut être également connecté au bus 30 d'informations graphiques. Normalement, les données produites dans l'affichage proviennent soit de l'unité de traitement soit du processeur satellite soit du contrôleur d'affichage; cependant, pour les symboles de routine, tels que les nombres, les lettres, et les symboles électroniques ou hydrauliques, le générateur de caractères 44 peut être utilisé pour soulager ces autres éléments de la charge de la génération des commandes de segment pour les symboles couramment utilisés. Des dispositifs spécialisés, tels que le générateur de symboles, réduisent le temps de calcul et présentent les données plus rapidement dans le dispositif d'affichage. Une commande 46 de mémoire graphique peut être connectée au bus 30 d'informations graphiques afin de mettre en mémoire des données qui définissent des figures secondaires qui doivent être représentées sur le dispositif d'affichage graphique. La commande 46 est un élément facultatif qui soulage également le processeur satellite d'une partie de la charge de mise en mémoire et de traitement des données. En raccordant la commande 46 de mémoire directement au bus d'informations graphiques de façon qu'elle puisse communiquer avec le dispositif d'affichage, on réduit le temps de transformation et de transmission entre le processeur satellite et le dispositif d'affichage. On décrira maintenant plus précisément la présente invention en se référant à la figure 4 qui représente les détails de l'unité de contrôle 32 du contrôleur 24 d'affichage de données. Un circuit d'horloge mère-et circuit logique d'initialisation 50 est connecté aux éléments à la fois de l'unité de contrôle 32 et de l'unité d'opérations 34 et à tous les périphériques pour provoquer l'exécution des étapes de traitement de données et des opérations en des cycles d'horloge d'une longueur prédéterminée. Ainsi, le circuit d'hor loge 50 comporte une série de sorties dont certaines mettent des registres et séquenceurs dans une condition initiale et dont d'autres produisent des impulsions d'horloge simultanées pour divers éléments du système.En outre, des signaux de commande qui mettent en marche l'horloge et arrêtent son fonctionnement sont reçus par le circuit0 Etant donné que les opérations des unités de commande et d'opérations sont pilotées par l'horloge, la vitesse à laquelle les données sont traitées par ces unités est déterminée, en partie, par la longueur du cycle d'horloge et, en partie, par la quantité de traitement qui peut se produire au cours de chaque cycle. Les opérations qui doivent être exécutées l'une après l'autre telles que la lecture des mots d'instruction puis l'exécution de telles instructions, nécessiteraient des cycles d'horloge relativement longs et réduiraient le débit de données si les opérations consécutives étaient exécutées au cours d'un unique cycle d'horloge.Pour cette raison, on utilise une construction à double pipelines grâce à laquelle la lecture d'un mot d'instruction est effectuée pendant un cycle d'horloge et l'exécution du mot d'instruction est effectuée au cours du cycle d'horloge suivant, Des sorties de données se produisent à chaque cycle et, étant donné que les temps de cycle sont plus courts, le débit est plus élevé. Dans l'unité de contrôle, une mémoire de contrôle 52, de préférence une mémoire morte programmable (MMP), contient des parties de mots d'instruction adressées dans un programme microcodé qui définit les opérations exécutées par les éléments dans le contrôleur d'affichage de données. Les mots d'instruction sont extraits des adresses de mémoire de la mémoire de contrôle au moyen d'un séquenceur 54 de microprogramme La partie de sortie du séquenceur comporte un registre d'adresse 56 dans lequel est généralement chargée l'adresse d'un nouveau mot d'instruction au début de chaque cycle d'horloge Le registre 56 est mis à zéro au début d'une opération par l'un des signaux de commande qui est appliqué au registre par le circuit d'horloge mère 50 et, ensuite, une adresse est chargée dans le registre au front avant de chaque impulsion d'horloge. La sortie du registre d'adresse 56 est connectée à la mémoire de contrôle 52 afin de lire la partie du mot d'instruction de l'adresse de mémoire identifiée. La longueur du cycle d'horloge est choisie de telle sorte que la transmission de l'adresse par l'intermédiaire du registre 56 à la mémoire de contrôle et la lecture de la partie de mot d'instruction dans la mémoire de contrôle est achevée et toutes les données sont stabilisées à la sortie de la mémoire de contrôle avant la fin du cycle.Au front avant du cycle d'horloge suivant, la partie lue du mot est chargée dans un registre de pipeline 58 situé à la sortie de la mémoire de contrôle 52 et divers bits du mot de contrôle sont transmis à divers bus et éléments pour l'exécution des instructions voulues. Par conséquent, l'unité de contrôle de la figure 4 a une construction à double pipeline qui permet au mot d'instruction d'être lu pendant un cycle d'horloge et exécuté au cours du cycle suivant. Cette construction réduit la longueur du cycle d'horloge en permettant aux retards de propagation et aux temps de stabilisation dans différentes parties des circuits de contrôle de se produire simultanément et non consécutivement au cours d'un unique cycle de temps prolongé. D'autres étapes de traitement des données effectuées dans l'unité de contrôle ou d'opérations, qui ne nécessitent pas de tels cycles d'horloge de longue durée, peuvent ainsi se produire plus fréquemment avec un accroissement global du débit de données du système.Par exemple, dans un mode de réalisation de l'invention, il a été possible de réduire le temps de cycle d'environ un tiers, de 295 nanosecondes à 205 nanosecondes, grâce à l'incorporation de la construction à double pipeline. Un tel accroissement de la vitesse de traitement permet à un plus grand nombre de vecteurs d'être représentés dans un dispositif d'affichage à tube à mémoire avant le ravivage et la reproduction d'un affichage après effacement peut se produire également plus rapidement. Il en résulte une capacité de traitement de données plus élevée et l'opérateur passe moins de temps à attendre que les informations soient mises à jour ou révisées, Un autre accroissement de la capacité de traitement des données du système est produit par le format de mot horizontal du mot d'instruction qui réduit au minimum le nombre des zones codées.Les bits du mot sont respectivement associés aux éléments spécialisés du système et sont transmis à ces éléments à l'intérieur d'un cycle d'horloge, sans autre décodage, Sur la figure 4, on voit que les bits de mot sont transmis en sortie par le registre de pipeline 58 à des éléments spécifiés, tels que le séquenceur de microprogramme 54,et à des éléments connectés à un bus sélecteur 60. Dans un mode de réalisation de l'invention, le registre de pipeline reçoit 24 bits d'information au cours de chaque cycle d'horloge* Trois de ces bits sont utilisés dans un décodeur 62 pour engendrer certains signaux de conditionnement et d'horloge pour d'autres éléments du système. Le décodeur est l'un des quelques éléments qui reçoivent des bits de mot codés destinés à être décodés à l'intérieur du même cycle d'horloge. Pour cette raison, le décodeur contient, de préférence, des composants de Schottky afin de réduire les retards de propagation à l'intérieur du décodeur, Douze des bits sont appliqués au bus sélecteur 60 pour des fonctions de données associées à des éléments connectés à ce bus, comme décrit ci-après* L'un des bits est un bit de commande direct qui est réappliqué au séquenceur de programme 54 pour charger dans un registre utilitaire une information d'adresse spéciale.Un autre groupe de quatre bits est réappliqué au séquenceur de programme pour déterminer le mot d'instruction suivant, Deux autres bits sont transmis à l'unité d'opérations (UO) par l'intermédiaire d'un connecteur 64 pour commander la longueur des mots de données traités et deux autres bits sont transmis à l'unité d'opérations par l'intermédiaire d'un connecteur 66 pour commander la lecture et l'écriture d'informations entre le bus d'informations graphiques et les périphériques au moyen d'une opération "d'identification mutuelle complète", Un registre de diagnostic 70 est connecté au bus sélecteur 60 ainsi qu'à un affichage 72 à diodes électroluminescentes (DEL) et à une commande 74 de logique d'essai. Au cours d'une opération, on peut effectuer des essais de diagnostic sur le séquenceur de programme et la mémoire de contrôle en actionnant la commande d'essai 74. Les données de sortie du bus sélecteur 60 sont chargées dans le registre 70 de sorte que les données de sortie de la mémoire de contrôle peuvent être examinées ou confirmées au moyen de l'affichage 72 à diodes électroluminescentes lorsque l'interrupteur sélecteur (I) 82 est enfoncé. Un connecteur externe 84 peut être également prévu pour permettre de connecter au système d'autres équipements de diagnostic. Le circuit logique d'aiguillage 78 et l'interrupteur d'aiguillage 80 constituent un autre élément de diagnostic prévu dans l'unité de contrôle. Tandis que la commande d'essai 74 permet l'examen des données de la mémoire de contrôle à un point donné quelconque du microprogramme, l'interrupteur d'aiguillage dirige ou aiguille le microprogramme à une étape spécifique en introduisant l'adresse relative à cette étape dans le registre 560 En même temps, le circuit logique interrompt le séquenceur pendant deux cycles d'horloge pendant que le registre de pipeline est chargé et l'interrupteur 80 de mise hors service actionne le séquenceur de programme par l'intermédiaire de la porte 88 de sorte que la séquence de programme peut se poursuivre à partir de l'adresse d'aiguillage, Dans certains cas, le mot d'instruction provenant de la mémoire de commande 52 comporte des constantes qui sont utilisées dans des opérations mathématiques ou logiques exécutées dans l'unité d'opérations 340 De telles constantes sont transmises par le registre de pipeline 58 au début d'une impulsion d'horloge soit à un registre (G) 90 des bits les plus siguificatifs (bits de gauche) soit à un registre (D) 92 des bits les moins significatifs (bits de droite).Chacun des registres peut avoir une capacité de bits égale à la capacité de bits maximale du bus sélecteur 60 et, en chargeant respectivement les données de constante à partir de mots d'instruction consécutifs dans les registres au cours de cycles d'horloge consécutifs, on peut transmettre une constante de données ayant une longueur double de la capacité du bus sélecteur à l'unité d'opérations par l'intermédiaire d'un connecteur 94 lors de la réception de signaux d'horloge appropriés fournis par le décodeur 62 Comme indiqué ci-dessus, le séquenceur de programme 54 avance dans le microprogramme en engendrant une nouvelle adresse après l'autre à chaque cycle d'horloge.Le programme peut être suivi en engendrant les adresses de mémoire suivant une séquence numérique; cependant, dans la plupart des cas, les fonctions de traitement des données dépendent de nombreuses variables indépendantes et il n'est pas possible de prévoir qu'elles suivront une séquence définie quelconque Des variables différentes dictent des séquences d'instructions différentes Deux caractéristiques sont incluses dans l'unité de contrôle pour rendre l'operation de mise en séquence souple; le circuit de code condition 100 et une mémoire morte programmable de table de correspondance 110 Le circuit logique 100 de code condition, qui comporte un registre de sélection 102 et une porte de commande 104 permet à divers éléments de l'unité d'opérations d'interrompre, de retarder ou d'embrancher le processus séquentiel selon que certains tests ont ou non été satisfaits dans d'autres parties du système. Le registre de sélection 102 reçoit des bits choisis du registre ~de pipeline 58 par l'in termédiaire du bus sélecteur 60 et ces bits déterminent, le cas échéant, celle des diverses entrées connectées à la porte de commande 104 qui est rendue active.Par exemple, l'une des entrées peut indiquer qu'un périphérique, tel que le processeur satellite 14, connecté au bus 30 d'informations graphiques a des données qui sont prêtes à être transférées à l'unité d'opérations, Un signal "Unité asservie prête" est transmis du bus 30 à la porte de commande 104 et, en admettant que le registre de sélection a rendu active cette entrée de la porte, un signal de commande est transmis, par l'intermédiaire d'un amplificateur inverseur 106, au séquenceur de programme 54. L'amplificateur 106 permet au signal de code condition d'être transmis sous forme d'un état binaire "1" ou "0" lorsqu'un signal d'activation est appliqué par le registre de sélection 102 à cet amplificateur.L'un des bits de commande provenant du registre de sélection est également transmis à la porte de commande 104 pour mettre hors service le circuit de code condition dans son ensemble, Une diode électroluminescente 108 est prévue pour avertir l'opérateur de l'état conditionnel du séquenceur. Par exemple, si les données ne sont pas disponibles en provenance d'un périphérique, le programme du séquenceur peut être écrit de façon à attendre un nombre limité de cycles d'horloge avant de passer à une autre instruction. La mémoire morte programmable 110 de table de correspondance est prévue pour assurer un branchement rapide à travers le séquenceur de programme indépendamment du circuit de code condition ou en combinaison avec ce circuit. Par exemple, lorsque certaines conditions existent dans les éléments de l'unité d'opérations, la lecture d'une instruction prédéterminée dans la mémoire de commande 52, hors de la séquence peut être ordonnée et un branchement rapide à cette instruction est effectué en mettant l'adresse de cette instruction dans la mémoire programmable de table de correspondances 110 et en extrayant l'adresse de la mémoire programmable 110 en réponse directe aux signaux reçus de l'unité d'opérations par l'intermédiaire des bornes 112 et 114. L'adresse extraite est alors transmise au registre d'adresse 56 par l'intermédiaire du séquenceur de programme soit directement soit après que le code condition a été satisfait sans indexer le séquenceur dans le microprogramme au moyen d'une série d'étapes. Un autre élément accessoire prévu dans l'unité de contrôle est un circuit logique 120 de dépassement de capacité de pile et une diode électroluminescente 122 qui produit un signal d'avertissement lorsque la capacité d'une pile de mémoire contenue dans le séquenceur et que l'on décrira en plus de détail ci-après est dépassée. La figure 7 représente la structure de base du séquenceur de microprogramme 54. Un produit disponible dans le commerce approprié pour être utilisé en tant que séquenceur est le modèle AM 2910 fabriqué par la société Adanced Micro Devices, Sulmyvale, Californie, E0U.A. Il y a quatre sources différentes pour l'adresse qui est transmise par l'intermédiaire d'une porte de validation 133 au registre d'adresse 56 situé à la sortie du séquenceur.Toutes les sources sont connectées à une porte commandée 132, et la source dont les signaux sont transmis par la porte est déterminée par un signal provenant du circuit logique d'instruction 130 du séquenceur* Le circuit logique d'instruction 130 reçoit les commandes d'instruction suivante du registre de pipeline 58 situé à la sortie de la mémoire de contrôle 52 et il remplit les fonctions appropriées pour commander le fonctionnement du séquenceur dans ses divers modes. La source primaire des adresses est un compteur numérique composé d'un registre compteur 143 et d'un incrémenteur 136 qui accroit d'une unité (+1) l'adresse transmise par la porte 132 à chaque cycle d'horloge. Ainsi, lorsque le microprogramme se poursuit en l'absence de signaux de branchement rapide ou de condition provenant de sources externes, les adresses produites par le compteur 134 sont engendrées et apparaissent dans le registre d'adresse 56 en ordre numérique. Une autre source d'adresses contenu dans le séquenceur est la pile de mémoire 138 qui conserve en mémoire la dernière adresse du séquenceur avant un saut dans la séquence numérique. Par exemple, si une sous-routine spéciale contenue dans la mémoire de contrôle 52 est requi se pour exécuter une opération graphique particulière en dehors de la séquence programmée, le circuit logique 130 refoule l'adresse suivante de la séquence numérique dans la pile 138 pendant que la sous-routine est exécutée. Ensuite, la séquence normale du microprogramme est reprise par un retour à l'adresse enregistrée dans la pile. Dans le cas où la pile est pleine au moment où une adresse est refoulée dans la pile, un signal d'erreur ou "complet" est transmis par l'intermédiaire du connecteur 139 au circuit logique 120 de dépassement de capacité de la figure 4. Ce même signal d'erreur indique un fonctionnement incorrect de l'unité de contrôle et il est réinjecté par l'intermédiaire du circuit 100 de code condition pour permettre la remise du séquenceur de programme au départ d'une sous-routine de diagnostic. En même temps, la pile est vidée, l'horloge mère 50 de la figure 4 est arrêtée et la diode électroluminescente 137 est allumée* La diagnose de la difficulté qui a contribué au dépassement de capacité peut alors être effectuée. Une autre source d'adresses est le registre utilitaire 140. Ce registre est chargé d'adresses qui, par exemple, peuvent être utilisées sous condition selon les données de sortie d'une étape précédente du programme, ou bien ce registre peut être utilisé pour contenir une adresse qui est dictée par le résultat d'une étape précédente La source des données d'adresse du registre 140 est une entrée de données 142 qui est connectée, à l'extérieur du séquenceur, à une porte 144 commandée par le circuit logique d'instruction 130. Les signaux d'entrée de la porte 144 proviennent de la mémoire programmable de table de correspondances 110, du registre de pipeline 58, par l'intermédiaire du bus sélecteur 60, ou de l'interrupteur d'aiguillage 80.Lorsque des commandes appropriées sont fournies par le circuit logique d'instruction 130, les données d'adresse choisies sont transmises à une autre porte de commande 146 située à l'intérieur du séquenceur et, à la suite de la réception d'un signal de transfert d'un circuit logique 148 de chargement de registre, l'adresse choisie est transmise au registre utilitaire 140. On observera que le circuit logique 148 reçoit un signal de chargement du registre de pipeline pendant les étapes du programme au cours desquelles les données d'adresses peuvent être requises dans le registre utilitaire Le registre utilitaire fonctionne également pour fournir les données d'adresse soit dans des circonstances conditionnelles soit dans des circonstances obligatoires.Par exemple, lorsqu'un saut jusqu'à un point spécifique du microprogramme doit être effectué, le mot d'instruction précédent peut fournir l'adresse au registre pour effectuer un branchement au cours de l'étape suivante, les données d'adresse étant prélevées du bus sélecteur et chargées dans le registre utilitaire par l'intermédiaire de l'entrée de données 142 Une fois que ces données d'adresse sont contenues dans le registre utilitaire, le circuit logique d'instruction 130 choisît 1entrée en provenance du registre dans la porte 132 et, lors de la réception du signal d'horloge, les données d'adresse sont transmises par le séquenceur au registre d'adresse 56. Le circuit logique d'instruction, dans de telles circonstances, répond directement aux bits de commande du mot d'instruction contenu dans le registre de pipeline 58 externe au séquenceur. En dehors de son emploi comme source d'adresses le registre utilitaire 140 peut également remplir d'autres fonctions. Par exemple, s'il est nécessaire d'attendre les données provenant d'un des périphériques sur le bus d'informations graphiques, il est désirable de fixer une limite au temps d'attente Un nombre égal au nombre maximal de cycles d'horloge que peut durer l'attente peut être chargé dans le registre utilitaire et un décrémenteur 150 diminue ce nombre d'une unité (-1) à chaque cycle. Lorsque ce nombre a été réduit à zéro avant que les données provenant du périphérique soient prêtes, un détecteur de zéro 152 informe le circuit logique d'instruction qu'il peut passer à l'instruction suivante.Ainsi, le séquenceur s'arrête et fonctionne en boucle fermée jusqu'à ce que l'information du périphérique soit prête ou jusqu'à ce qu'une période de temps prédéterminée se soit écoulée, puis il poursuit le traitement sans les données, On notera également que la porte 146 a une entrée directe du registre utilitaire raccordée à la sortie de ce dernier de sorte que la même instruction ou les mêmes données peuvent être conservées dans le registre utilitaire pendant un nombre de cycles prédéterminé. En plus des données d'adresse du compteur 134, de la pile 138 et du registre utilitaire 140, la porte de commande 132 peut également recevoir des données d'adresse directement de l'entrée 142 sans que ces données passent par le registre utilitaire 140. Par exemple, si un saut à une adresse spécifiée est inconditionnel, cette adresse peut être prélevée directement de la mémoire programmable de table de correspondances 110 ou du registre de pipeline 58 et peut être transmise directement à travers la porte de commande 132 à la sortie du séquenceur et au registre d'adresse 56. Le fonctionnement du séquenceur, après que le microprogramme a commencé, se poursuit principalement en réponse aux mots d'instruction ou, plus correctement, aux parties des mots d'instruction reçues du registre de pipeline 58. En plus des commandes de continuation qui provoquent la poursuite du programme dans son ordre normal, des instructions de saut et des instructions de code condition sont également transmises au circuit logique 130.Dans le cas d'une commande de saut, les données d'adresse, soit contenues dans le registre utilitaire 140, soit présentes à l'entrée de données 142, peuvent être transmises directement au registre d'adresse 560 Une instruction de code condition indique au séquenceur que l'instruction suivante est conditionnelle ou non et où se trouvent les adresses conditionnelles dans le séquenceur0 Une telle instruction est reçue du décodeur 62 de la figure 4, par l'intermédiaire de 1'en- trée 158 du circuit logique d'instruction de la figure 7. Le code condition effectif est reçu du circuit 100 de la figure 4 et le circuit logique d'instruction détermine alors à partir de ce code condition celle des diverses sources d'adresses qui doit être connectée à la sortie du séquenceur. La construction à double pipeline de l'unité de contrôle grâce à laquelle la lecture et l'exécution des mots d'instruction provenant de la mémoire de contrôle 52 sont effectuées au cours de cycles d'horloge consécutifs doit être prise en considération pour chaque opération de branchement conditionnel du fait que le registre d'adresse 56 et le registre de pipeline 58 sont constamment pleins et que le mot d'instruction contenu dans le registre 58 est exécuté quelles que soient les décisions prises dans le séquenceur en ce qui concerne le branchement conditionnel.Ainsi, il est nécessaire d'assurer que l'instruction à exécuter est toujours une instruction qui est compatible avec le branchement conditionnel, et, dans de nombreuses circonstances, cette instruction peut être simplement une instruction de "non opératoire" qui est simplement traitée par le décodeur sans agir sur aucun des autres éléments du système. La figure 5 représente une partie (UOS) de l'unité d'opérations (U0)34 qui contient le circuit mathématique et logique et le reste de la mémoire de contrôle dans laquelle les parties restantes des mots d'instruction sont contenues pour commander l'unité d'opérations. La mémoire de contrôle 160 de l'unité d'opérations est construite de la meme manière que la mémoire de contrôle de l'unité de contrôle et est composée d'une série de mémoires mortes programmables, Les parties des mots d'instruction contenues dans la mémoire 160 de l'unité d'opérations ont la même adresse que les parties des mots correspondantes contenues dans la mémoire de contrôle 52 de sorte qu'une adresse chargée dans le registre 56 de l'unité de contrôle extrait simultanément les deux parties adressées du mot d'instruction au cours de chaque cycle d'horloge. La mémoire de contrôle multiple 52 et 160 est utilisée du fait du format horizontal des mots d'instruction* Dans un mode de réalisation de l'invention, le mot d'instruction a 72 bits, 48 bits étant mis en mémoire dans la mémoire de contrôle 160 et 24 bits étant contenus dans la mémoire de contrôle 52.En fait, il y a une unique mémoire de contrôle qui est physiquement répartie entre l'unité de contrôle et l'unité d'opérations simplement du fait que les bits associés aux parties des mots d'instruction contenues dans les deux mémoires de contrôle 56 et 160 sont utilisés dans les unités respectives 32 et 340 La sortie de la mémoire de contrôle 160 de l'unité d'opérations comporte également un registre de pipeline 162 qui est piloté par horloge pour recevoir les bits des mots d'instruction adressés en vue de leur exécution pendant le cycle d'horloge qui suit immédiatement le cycle d'horloge de lecture. Les bits du mot d'instruction contenus dans le registre de pipeline 162 sont utilisés pour diverses fonctions de commande dans ltensemble de l'unité d'opérations, Un certain nombre des bits de données sont utilisés pour choisir les sources et les destinations des signaux qui circulent à travers le circuit mathématique et logique désigné par la référence générale 170.Ce circuit reçoit les données d'un certain nombre de sources situées soit dans l'unité de contrôle soit dans l'unité d'opérations, par l'intermédiaire d'un bus de données 172, et il transmet l'in formation traitée par l'intermédiaire d'un bus de distribution 174 Par exemple, l'information provenant des registres de constantes 90 et 92 contenus dans l'unité de contrôle est appliquée aux bus de données 172 par l'intermédiaire d'une porte de commande 1760 Un signal de transfert appli qué aux portes sur une ligne de commande 178 est produit par un multiplexeur 180 en réponse à des bits codés provenant du registre de pipeline 162 D'autres sources de données situées à l'intérieur de l'unité d'opérations sont également connectées aux bus 172 chaque fois que ces données présentent une importance critique pour les fonctions mathématiques ou logiques exécutées dans le circuit 170. Ainsi, certains des bits du mot provenant du registre de pipeline 162 sont utilisés pour déterminer la source des données qui sont entrées dans le circuit mathématique et logique 170. Le registre de pipeline 162 contient également des bits du mot provenant de la mémoire de contrôle 160 qui commandent la distribution des données de sortie du circuit mathématique et logique 170 au bus de distribution 174. A cette fin, un multiplexeur 182 est connecté au bus et les bits de commande provenant du registre de pipeline 162 établissent les destinations que doivent avoir les données de sortie . A cet égard, on notera que le mot "données" est utilisé dans un sens large et désigne non seulement des données numériques mais également des signaux de commande, tels que les signaux d'horloge et de validation, qui sont utilisés dans l'ensemble de l'unité d'opérations. Par exemple, la porte de commande 184 reçoit un signal de validation du multiplexeur 182 afin de réinjecter des signaux à l'intérieur du circuit 170. La plupart des données sont, cependant,distribuées par le bus 174 à la partie graphique (UDG) de l'u- nité d'opérations qui a été représentée sur la figure 6 De préférence, le multiplexeur 180 utilise des éléments de Schottky afin de réduire le temps de transmission entre les bus 172 et 174 et les éléments récepteurs et émetteurs. Les principales parties du circuit 170 qui exécute les opérations mathématiques et logiques sont le circuit de commande 190 des circuits mathématiques et logiques et les multiples étages en cascade de circuits de manipulation des données 192 à 206. Uniquement par commodité, on a seulement représenté les connexions entre le circuit de commande 190, les étages 192 et 194 et les autres éléments; cependant, des connexions semblables sont établies avec les autres étages 196 à 2060 Les circuits de manipulation sont connectés ensemble en cascade de sorte que chacun des étages traite un nombre restreint et choisi des bits de données des mots de données qui sont appliqués au bus 172. Les bits spécifiques traités par les étages ont été indiqués sur la figure 5, le circuit 192 traitant les bits 0-3 et le circuit 206 traitent les bits 28-31.Ainsi, un total de 32 bits de données peut être appliqué en entrée au circuit mathématique et logique et le même nombre de bits peut être produit en sortie par les circuits 192-206 sur le bus de distribution 174. La figure 8 représente les détails d'un des circuits de manipulation, chacun des autres circuits ayant la même structure, Il n'est pas essentiel pour la présente in vention qu'une structure spécifique quelconque soit incluse dans les circuits de manipulation et le circuit représenté sur la figure 8 ne constitue qu'un exemple du matériel qui peut être utilisé pour exécuter des fonctions mathématiques et logiques générales. Le matériel représenté peut être obtenu dans le commerce de la société Advanced Micro Devices, Sunnyvale, Californie, EUA, Modèle AN 2901. Une unité de colmande des circuits mathématiques et logiques appariée 190 est fabriquée par la même société sous l'appellation Modèle AN 2904. Sur la figure 8, l'unité principale qui exécute des fonctions arithmétiques est l'unité arithmétique et logique (UAL) 210 qui a deux entrées de données (R et S) provenant de portes commandées 212 et 214. L'une des sources de données connectées à la porte 212 est le bus de données ex terne 172 Les autres sources sont l'un (A) de deux fichiers de mémoire contenus dans une mémoire à accès sélectif 216 ou une valeur "zéro" qui peut être utilisée pour effectuer des comparaisons avec des données fournies par la porte 214.La porte 214 reçoit des données d'entrée de l'autre (B) fichier de mémoire de la mémoire 216 ainsi que du fichier A, des données d'un registre Interne 218 et une valeur "zéro". Des registres à décalage 220 et 222 pilotés par des commandes sont connectés respectivement à la mémoire à accès sélectif 216 et au registre interne 218 pour permettre le décalage des données qui sont chargées dans le registre, Le décalage, comme indiqué par les flèches, peut être effectué dans l'un ou l'autre sens et cette caractéristique est utilisée pour accroître et accélérer la vitesse des processus de multiplication. L'unité arithmétique et logique (UAL) 210, outre qu'elle effectue des additions, soustractions et multiplications au moyen d'un algorithme de décalage et d'addition- exécute également certaines opérations logiques, telles que des comparaisons, des opérations OU exclusif ou des opérations OU, avec les données qui sont appliquées aux deux en triées, Les données de sortie de l'unité arithmétique et logique peuvent être réintroduites soit dans le registre interne 218 soit dans la mémoire 216 par l'intermédiaire du registre à décalage 220. En outre, également, les données de sortie peuvent être transmises au bus de distribution 174 par l'intermédiaire d'une porte de commande 224 et d'une porte de validation 226.La porte de commande 224 peut également recevoir des données directement d'un des fichiers de la mémoire 216 ce qui permet la lecture directe de données dans le fichier sans traitement par l'unité UAL. Le circuit de commande logique 190 de la figure 5 est connecté à chacun des étages en cascade pour commander la condition des circuits dans lesquels les opérations mathématiques et logiques sont exécutées. Lorsque les données de sortie d'une opération logique ou mathématique particuliè re indiquent qu'une certaine condition a ou n'a pas été satisfaite, le circuit de commande logique 190 produit un signal de code condition sur une borne de sortie 230. Cette borne est connectée au circuit de code condition 100 de l'unité de contrôle (figure 4) pour provoquer l'exécution ou la non exécution par le séquenceur de programme d'un branchement selon ce qui est spécifié par le signal de code particulier. Ainsi, le microprogramme effectue ou non un branchement à une nouvelle instruction, selon le contenu du code condition. Pour exécuter les opérations mathématiques et logiques d'une manière plus rapide, le circuit mathématique et logique 170 est connecté à plusieurs circuits spécialisés et il apporte les changements appropriés à la logique interne des circuits de manipulation 192-206 et il transmet des signaux de commande et de données au circuit de commande logique 190 pour accroître la vitesse à laquelle les calculs et opérations de traitement sont exécutés. En particulier, un circuit 240 d'accélération des multiplications, connecté à la fois au circuit de commande logique 190 et aux divers circuits de manipulation 192-206, accélère les opérations de multiplication au moyen de ce qui est essentiellement dans le multiplicateur, le processus de multiplication est abrégé en indexant ou décalant les nombres à ajouter sans achever une étape complète de multiplication pour chaque chiffre. Etant donné qu'un zéro apparait relativement fréquemment lorsque des données binaires sont multipliées, le circuit d'accélération 240 accroit la vitesse de traitement des données en réponse à des signaux provenant du registre de pipeline 162. Sans une telle caractéristique, les processus de multiplication serait exécuté à l'aide de plusieurs étapes avec intervention des unités logiques et arithmétiques en cascade. Un circuit de prévision des retenues 242 est également connecté à chacun des étages de manipulation 192-206 et il répond aux signaux de commande provenant du circuit de commande 190 des circuits mathématiques et logiques pour permettre aux unités arithmétiques et logiques 210 en cascade de remplir leurs fonctions respectives sans tenir compte ou sans attendre les signaux de report des étages moins significatifs. A la fin d'une opération arithmétique particulière, lorsque toutes les données se sont stabilisées aux sorties des étages, les impulsions de report ont été transférées entre les étages à l'intérieur d'un unique cycle d'horloge et se retrouvent dans les données de sortie.Des circuits de prévision des retenues compatibles avec le circuit de commande logique 190 et les circuits de manipulation de données 192-206 sont fabriqués par la société Advanced Micro Devices, Modèle 2902. Il est prévu un sélecteur de longueur de mot 246 de façon à n'utiliser que les données provenant des étages du circuit mathématique et logique 170 qui sont nécessaires pour remplir des fonctions spécifiques, Par exemple, les mots de données provenant des périphériques comprennent 8, 16, 24 ou 32 bits. En n'utilisant que le nombre essentiel de bits de données, le nombre total des étapes de programme requises pour exécuter des fonctions spécifiques est réduit et il en résulte une économie de temps correspondante.Le sélecteur de longueur de mot répond directement à des bits d'instruction qui proviennent du registre de pipeline 58 de 1'unité de contrôle (figure 4) qui lui sont appliqués par l'intermédiaire de la borne 64 et il applique des signaux de commande au circuit de commande logique 190 pour rendre actif ceux des étages 192-206 qui sont nécessaires pour les données qui sont traitées au cours de chaque phase du microprogramme. En résumé, les bits ou mots de commande contenus dans les mémoires de contrôle 58 et 160 sont utilisés pour piloter les données dans et hors du circuit de manipulation logique et mathématique 170 Une construction à double pipeline entre la mémoire de contrôle et le registre de pipeline 162 est utilisée pour réduire la longueur des cycles d'horloge et accroître le débit du contrôleur 24 La figure 6 représente la partie restante de l'unité d'opérations, qui traite la plupart des fonctions graphiques entre les périphériques connectés au bus d'informations graphiques et l'unité d'opérations 34. La communication entre le bus de distribution 174 et les périphériques connectés au bus 30 d'informations graphiques est établie par l'intermédiaire d'un registre d'écriture 250 et d'un registre d'adresse 252. Chacun de ces registres est commandé par un signal de validation qui lui est appliqué par le multiplexeur 182 (figure 5) en réponse à des bits de mot provenant du registre de pipeline 162. L'adresse d'un périphérique est chargée dans le registre 252 et les données à transmettre sont chargées dans le r egistre 250.Au cours d'une opération "d'identification mutuelle complète" pour la transmission ou la réception de données, le périphérique adressé répond à son signal d'adresse et retransmet un signal "d'unité asservie prete" par l'intermédiaire du bus d'informations graphiques et de l'amplificateur 254 au circuit de code condition 100 de l'unité de contrôle (figure 4) pour indiquer que le périphérique est prêt à recevoir les données. Lorsque l'unité de contrôle reconnait que le périphérique est prêt, une commande "d'écriture" est transmise au circuit logique 256 de commande du bus d'informations graphiques par l'unité de contrôle et le circuit logique actionne l'amplificateur 258 pour qu'il transmette les données au bus d'informations graphiques et au périphérique adressé. De la même manière, au cours d'une opération de "lecture" avec identification mutuelle complète, le périphérique est adressé par l'intermédiaire du registre 252 et, lorsqu'un signal d'unité asservie prête est reçu du périphérique, le circuit logique 256 de commande du bus d'informations graphiques actionne un registre de lecture 260 pour qu'il reçoive les données émises en sortie par le périphérique afin de les utiliser dans les unités de contrôle ou d'opérations. La totalité des données extraites du bus 30 est transmise au bus de données 172 par l'intermédiaire d'un circuit logique de manipulation 262 qui met les données provenant du périphérique sous un format qui est compatible avec le circuit mathématique et logique 170 (figure 5).En outre, des bits du mot choisis sont directement appliqués à la mémoire programmable de table de correspondancesde l'unité de contrôle (figure 4) pour provoquer un branchement direct à des mots d'instructions spéciaux du programme lorsque les données du périphérique le nécessitent. La figure 6 représente également un certain nombre d'éléments qui font partie de l'unité d'opérations et sont consacrés à des fonctions graphiques spécialisées. Une table de fonctions générales 264 constituée par une mémoire morte programmable ou autre dispositif de mémoire est programmée avec les facteurs sinusoldaux et cosinusoidaux pour permettre aux vecteurs et figures présentés sur le dispositif d'affichage graphique d'être déplacés en rotation dans différentes posItions, sur commande. Lorsqu'une rotation doit être effectuée, une commande qui définit l'adresse d'un facteur spécifique dans la table 264 est appliqué au bus de distribution 174. Cette adresse est reçue dans le registre 266 et, lorsque le facteur a été extrait de la table, il est appliqué en sortie sur le bus de données 172. Les données sont alors transmises au circuit mathématique et logique 170 de la figure 5 dans lequel elles sont utilisées au cours d'un processus de calculs pour déterminer la position après rotation des données de l'affichage. Si désiré, la table de fonctions générales 264 peut également contenir d'autres facteurs destinés à être utilisés dans des opérations arithmétiques et, étant donné que les valeurs cosinusoidales peuvent être facilement calculées à partir des valeurs sinusoldales, il suffit de mettre l'une de ces valeurs en mémoire dans la table. Le registre d'état 268 comporte un certain nombre de fonctions qui sont destinées principalement à commander d'autres parties du contrôleur de données 24 dans divers modes de fonctionnement. Divers types de données vectorielles traitées par les unités peuvent avoir différents formats. Afin de régler correctement les éléments du système pour traiter chaque type de données vectorielles, une commande de mode indicative du type de données qui est traité est chargée dans le registre d'état et d'autres éléments, tels que la mémoire programmable de table de correspondances 110 de l'unité de contrôle (figure 4), en sont avisés par voie de conséquence, Par exemple, si un type de commande vectorielle est entré à partir du bus d'informations graphiques dans le registre de lecture 260 et si cette commande nécessite un branchement à une section spéciale de la mémoire programmable de table de correspondance 110, cette information est transmise par le registre d'état à la mémoire 110 et les opérations de transformation sont exécutées dans cette mémoire en conséquence, Il est également possible de modifier des bits individuels des données contenues dans le registre d'état en lisant ces données , masquant les bits particulier qui doivent être changés, en introduisant les nouveaux bits et en rechargeant les données dans le registre d'état. Le registre d'état peut être utilisé lorsque le contrôleur de données 24 fonctionne dans le mode de diagnostic pour contrôler le fonctionnement du bus d'informations graphiques. Deux bits du registre d'état sont utilisés pour commander le circuit logique 256 de commande du bus d'information graphiques, Dans de telles circonstances, les données provenant du registre d'écriture 250 sont transmises au bus 30 d'informations graphiques puis réintroduites dans le registre de lecture 260 et, si les données de sortie sont les mêmes que les données d'entrée, le fonctionnement correct des voies de transfert de données est confirmé* Un autre bit contenu dans le registre d'état est utilisé pour mettre le bus d'informations graphiques dans un troisième état.Dans de telles circonstances, tous les am plificateurs ou voies de communication entre le bus 30 et les unités de contrôle et d'opérations sont mis dans un état de forte impédance pour empêcher le transfert d'informations au bus d'informations graphiques ou en provenance de ce bus. Dans de telles circonstances, un mode de multitraitement peut être établi suivant lequel l'unité de contrôle 32 et l'unité d'opérations 34 (figure 3) fonctionnent intérieurement sur des informations spécifiques tandis que des données sont transférées entre différents périphériques connectés au bus d'informations graphiques3 La pile 270 de mémoire d'applications et les commandes associées sont les éléments les plus complexes du controleur de données 24.Cette pile de mémoire met en mémoire toutes les données qui sont utilisées dans le circuit mathématique et logique 170 en vue de leur présentation, leur amplification ou leur modification dans les opérations graphiques pour le dispositif d'affichage 12 La pile contient -toutes les valeurs matricielles qui sont utilisées dans les circuits de manipulation des données, 192-206 pour effectuer le changement d'échelle des figures, les rotations, les changements de plan et les réflexions en plus de la définition de divers types de lignes et de leur épaisseur. La pile est divisée physiquement en deux parties, une pile graphique et une pile utilitaire. La plupart des données pour les opérations graphiques sont mises en mémoire dans la partie de pile graphique qui a son propre circuit logique pointeur ou d'adresse 272 qui répond au circuit logique de pile d'applications 274. L'autre partie, désignée la pile utilitaire, a son propre circuit logique pointeur ou d'adresse 276 qui fonctionne également en réponse au circuit logique 274. La pile utilitaire remplit une grande diversité de fonctions et, en général, elle est utilisée en tant qu'espace de mémoire supplémentaire pour des informations de texte ou des données de diagnostic.Ainsi des messages de texte peuvent être conservés dans la partie de pile utilitaire pour la génération dans le dispositif d'affichage ou, dans un mode de diagnostic, des données transmises par le processeur satellite 14 ou par un autre périphérique peuvent être enregistrées dans la pile utilitaire à des fins de référence. Lors de la génération de figures secondaires dans le dispositif d'affichage, la pile graphique est utilisée pour mettre en mémoire les données qui définissent la figure complète ou le milieu environnant la figure secondaire tandis que les données de la figure secondaire sont placées ou refoulées dans la pile au-dessus du niveau de données le plus élevé. Lorsque le travail relatif à la figure secondaire est achevé, les données de la figure secondaire sont remontées hors de la pile graphique et le niveau supérieur de la pile est à nouveau accessible. La pile 270 et les circuits logiques de commande 272, 274 et 276 permettent de charger ou de refouler des données dans la pile et de remonter ou décharger les données en ordre inverse.Le pointeur ou adresse qui désigne l'emplacement de la pile où les données de la pile peuvent être entrées en provenance du bus de données 172 ou transmises en sortie au bus de données 172 est remonté ou descendu le long de la pile d'une manière séquentielle par le circuit logique de pointeur 272 ou 276 pour lire et respectivement charger les données. Pour refouler les données de la pile, les données sont prélevées sur le bus de distribution 174 par le registre de refoulement 278 et chargées par ce registre dans la pile, sur commande. Il est également prévu un circuit logique 280 d'erreur de pile aussi bien pour la partie utilitaire,que pour la partie graphique de la pile 270 afin d'indiquer si la pile présente un dépassement de capacité supérieur ou inférieur. En d'autres termes, si l'on essaie de charger une trop grande quantité de données dans la pile, il se produit une condition d'erreur par dépassement de capacité supérieur et si une tentative est effectuée pour lire des données qui se trouvent situées une ou plusieurs adresses au-dessous de la base de la pile, une indication d'erreur par dépassement de capacité inférieur est produite par le circuit 280. Les deux indicatiolzs sont transmises au circuit de code condition 100 de la figure 4 pour permettre un branchement et la mise en route d'une sous-routine de diagnostic. L'un des avantages de l'emploi de la pile 270 en tant que dispositif de mémoire est que ceci permet à 11 opérateur de travailler sur un premier niveau de figures, puis de passer à un niveau de figures secondaires pour y effectuer un travail complémentaire puis de revenir aux données d'origine sans avoir à recalculer ces données et à dépenser un temps d'opération supplémentaire* Une autre difficulté qui se produit lorsqu'on recalcule les données d'origine après qu'on a travaillé sur une figure se condaire est le problème de la précision.La précision est limitée par le nombre de bits de données disponibles et chaque fois qu'un calcul est effectué un certain degré de précision est perdu du fait des erreurs d'arrondissage, Le rétablissement de la précision des données d'origine par le calcul n'est, de ce fait, pas possible, La conservation de ces données dans la pile d'applications maintient les données sous leur forme d'origine. En résumé, le contrôleur de données 24 est positionné entre le processeur satellite 14 et le dispositif d'affichage graphique 12 et il exécute des fonctions sélectionnées de traitement des données qui sont très facilement exécutées avec du matériel et une microprogrammation à des vitesses de traitement élevée. Le contrôleur a une construction à double pipeline pour réduire la durée des cycles d'horloge au cours de#squels des opérations sont ef fectuées sur des données et il utilise un format de mot d'instruction horizontal pour réduire le temps d'exécution grâce à l'emploi de bits de mot transmis directement et d'un nombre minimal de zones codées.Le circuit logique de prévision des reports 242 réduit le temps de propagation en série à l'intérieur des unités arithmétiques et logiques du circuit mathématique et logique 170 et le circuit d'accélération des multiplications 240 accroit la vitesse des étayes de multiplication. L'accroissement global du débit de données réduit la période de temps requise pour engendrer des données sur l'écran lors des opérations d'origine ou de ravivage. Bien qu'on ait décrit la présente invention en se référant à un mode de réalisation préféré, il est bien entendu qu'on peut y apporter de nombreuses modifications et substitutions sans s'écarter pour cela de l'esprit de l'invention. Par exemple, étant donné que l'invention porte essentiellement sur les vitesses de traitement des données et sur l'architecture de la construction, le type des données traitées et les étapes des microprogrammes peuvent varier en fonction des besoins particuliers du système graphique interactif, Le contrôleur de données 24 est particulièrement avantageux dans les systèmes interactifs qui utilisent des tubes à mémoire pour l'affichage mais d'autres types d'écrans d'affichage peuvent tirer avantage du débit élevé du contrôleur* La table de fonctions générales 264 et le registre d'état 268 sont des éléments à fonctions spéciales consacrés à des utilisations spécifiques dans l'unité d'opérations et ne sont pas essentiels pour le fonctionnement général et pour l'accomplissement des objectifs de l'invention* Par conséquent, le mode de réalisation de l'invention qui a été décrit n'a été donné qu'à titre d'exemple illustratif et ne doit pas être interprété dans un sens limitatif. REVENDICATIONS 1) Contrôleur d'affichage perfectionné (24) assurant un traitement rapide des données dans un système graphique interactif ayant une unité de traitement (10) connectée à un dispositif d'affichage interactif (12) et à un pupitre d'opérateur (16), caractérisé en ce qu'il comporte une série d'éléments spécialisés (figures 5 et 6) qui exécutent des opérations mathématiques et logiques spécifiques associées à la génération et à l'affichage de données graphiques dans le dispositif d'affichage; une mémoire de contrôle (52, 160) ayant un jeu de mots d'instructions propres dans un format organisé horizontalement pour commander le fonctionnement des éléments spécialisés,chacun des mots d'instruction contenus dans la mémoire étant adressable individuellement pour la lecture et l'exécution sur commande;; un séquenceur de programme (54) connecté à la mémoire de contrôle pour lire séquentiellement des mots d'instruction individuellement adressés dans la mémoire; une commande déclenchée (58, 162) associée à la mémoire de contrôle pour recevoir individuellement les mots d'instructions extraits de la mémoire et connectée aux éléments spécialisés pour exécuter les mots d'instruction sur commande; et une horloge de commande mère (so) produisant une succession de signaux d'horloge au cours d'un cycle dthor- loge prédéterminé, l'horloge étant connectée au séquenceur de programme (54) pour appliquer des impulsions d'horloge au séquenceur et lire un mot d'instruction au cours d'un cycle d'horloge et étant également connectée à la commande déclenchée (58, 162) pour déclencher la commande et exécuter le mot d'instruction lu pendant un cycle d'horloge suivant de telle sorte que la lecture et l'exécution sont exécutées pendant des cycles d'horloge séparés permettant ainsi l'emploi de cycles d'horloge plus courts et un traitement plus rapide des données pour le dispositi d'affichage. 2) Un contrôleur d'affichage perfectionné pour un système graphique interactif selon la revendication 1, caractérisé en ce que la mémoire de controle (52, 160) est constituée par une mémoire morte programmable programmée avec un jeu de mots d'instruction propres. 3) Un contrôleur d'affichage perfectionné pour un système graphique interactif selon la revendication 1, caractérisé en ce qu'il comporte une table de correspondances (110) fonctionnant en réponse à des conditions sélectionnées des éléments spécialisés et coopérant avec le séquenceur de programme pour effectuer un branchement rapide à des adresses choisies de la mémoire de contrôle en présence de telles conditions. 4) Un contrôleur d'affichage perfectionné pour un système graphique interactif selon la revendication 1, caractérisé en ce que le séquenceur de programme (54#) comporte un registre (134) dont le contenu est incrémentiellement accru pour produire une séquence d'adresses de mots d'instruction suivant une séquence numérique et un registre (140) pour recevoir des données qui identifient des adresses de mot d'instruction sélectionnées hors de la séquence et en ce qu'il comporte, en outre, un circuit logique de commande (130) connecté au séquenceur de programme pour interrompre le registre dont le contenu est accru incrémentiellement et choisir le registre (140) en tant que source des adresses qui servent à lire les mots d'instruction adressés individuellement dans la mémoire de contrôle. 5) Un contrôleur d'affichage perfectionné pour un système graphique interactif selon la revendication 4, caractérisé en ce qu'un circuit logique de code condition (100) est connecté au séquenceur de programme (54) et à des éléments spécialisés choisis pour interrompre le registre (134) dont le contenu est accru incrémentiellement et choisir le registre (140) et rendre les opérations du registre (140) et du registre incrémenté (134) fonction des conditions des éléments spécialisés* 6) Un contrôleur d'affichage perfectionné pour un système graphique interactif selon la revendication 1, caractérisé en ce qu'il comporte un bus (30) d'informations graphiques qui relie les éléments spécialisés au dispositif d'affichage interactif et à d'autres éléments du système et un circuit de commande logique (256) du bus d'informations graphiques pour commander les commandes de lecture et d'écriture qui transmettent des informations entre le dispositif d'affichage, les éléments spécialisés et les autres éléments. 7) Un contrôleur d'affichage perfectionné pour un système graphique interactif selon la revendication 1, caractérisé en ce que les éléments spécialisés comprennent des unités arithmétiques et logiques (210) disposées en de multiples étages en cascade, chacun des multiples étages traitant un nombre limité et sélectionné de bits de données d'un mot de données et des commandes de prévision de report (242) connectées aux multiples étages pour transférer les bits de report entre les multiples étages au cours d'un unique cycle d'horloge. 8) Un contrôleur d'afçichage perfectionné pour un système graphique interactif selon la revendication 1, caractérisé en ce que les éléments spécialisés comprennent un circuit arithmétique et logique (170) à plusieurs étages exécutant des opérations arithmétiques sur des mots de données comportant une multiplicité de bits et un sélecteur (246) de longueur de mot connecté aux multiples étages des circuits arithmétiques et logiques et les commandent pour choisir la longueur de mot des mots de données traitées par les circuits arithmétiques et logiques. 9) Un contrôleur d'affichage perfectionné pour un système graphique interactif selon la revendication 8, ca ractérisé en ce qu'il comporte des moyens (240) d'accélération des multiplications pour décaler des bits de données au cours d'un processus de multiplication abrégé.