Brevet FR2566554A1 — publié le 19851227

PRINCIPE DE L'INVENTION 1. DOMAINE DE L'INVENTION L'invention concerne le domaine des ordina- teurs numériques employant des microcodes. 2. TECHNIQUE ANTERIEURE Le microcode est fréquemment utilisé dans les ordinateurs numériques de toutes tailles. (On se réfère également au microcode comme à des microinstructions, des instructions microprogrammées, et autres termes). En général, le microcode utilise des opérations secondaires qui ne sont pas ordinairement accessibles au programmeur. Dans les microprocesseurs, le microcode est délimité le plus souvent en permanence sur une puce par programmation à masque. Dans les ordinateurs plus grands, les mémoires ROM (lecture seule) et les mémoires à accès aléatoire (RAM) sont utilisées pour stocker les microinstructions, et l'on s'y réfère souvent comme à des mémoires de commande inscriptibles. Il existe de nombreux circuits intégrés disponibles dans le commerce conçus spécifique- ment pour mémoriser et réaliser le microcode. Par exemple, les générateurs de séquences de microcode qui produisent les adresses d'accès au microcode sont disponibles dans toute une variété de configurations. D'autres composants tels que les registres désignés sous le vocable anglo saxon de "pipe-lines'", les multiplexeurs de code conditionnels, les contrôleurs d'adresse suivante, etc. sont également disponibles. Les problèmes de matériel rencontrés avec les ordinateurs à microcode, et particulièrement les cas o l'on utilise de longs mots de microinstructions et o l'ordinateur est réalisé sur plusieurs cartes de circuits imprimés, sont discutes en se référant à la Figure 1. Généralement, les difficultés portent sur la dissipation thermique des mémoires de commande inscrip- tibles et le diagnostic des problèmes dans les grands systèmes. La technique antérieure se rapportant à la présente invention est citée comme exemple dans les manuels de données des fabricants pour les composants utilisés commercialement dans les ordinateurs micro- programmés, par exemple, dans Logique et interface bipolaire pour microprocesseur, Manuel de données 1983, ADVANCES MICRODEVICESD pages 5108 à 5-139 et 8-22 à 8-26. Deux niveaux de mémoires de commande sont utilisés dans certains ordinateurs de la technique antérieure. Le séquenceur adresse une mémoire verti- cale (généralement une mémoire profonde mais de largeur de mot étroite). Cette mémoire verticale fournit les adresses à des mémoires horizontales séparées {mémoires généralement peu profondes et avec de larges mots). Dans certains cas, la sortie de la mémoire verticale est distribuée aux mémoires horizontales sur différentes cartes. La grande largeur de mot des mémoires horizontales assure la délivrance du signal de commande (et notamment des microinstructions). On utilise cette disposition pour optimiser l'utilisation de la capacité de mémoire. Ceci présente l'inconvénient de la nécessité d'un cycle supplémentaire pour fournir les adresses aux mémoires horizontales. RESUME DE L'INVENTION La présente invention est destinée à être utilisée dans un ordinateur équipé d'un séquenceur de microadresses pour le séquencement d'une mémoire de commande (un niveau) qui délivre des microinstructions à l'ordinateur. Dans la présente invention, on utilise une pluralité de mémoires de commande dont chacune est matériellement séparée des autres. Les signaux d'adresse de microinstructions provenant du séquenceur sont dis- tribués sur un bus aux mémoires de commande séparées. De cette façon, la chaleur provenant de la mémoire de commande est distribuée à plusieurs emplacements différents dans l'ordinateur. De plus, des diagnos- tics peuvent, par exemple, être effectués sur chaque carte portant une mémoire de commande sensiblement indépendante du reste de l'ordinateur. COURTE DESCRIPTION DES DESSINS La Figure 1 est un schéma synoptique d'une partie d'un ordinateur selon la technique antérieure employant une mémoire de commande inscriptible à un niveau. La Figure 2 est un schéma synoptique d'une partie d'un ordinateur comprenant la présente invention. DESCRIPTION DETAILLEE DE LA PRESENTE INVENTION Une amélioration apportée à un système infor- matique numérique est décrite. Dans la description suivante sont exposés de nombreux détails spécifiques tels que les longueurs spécifiques des mots, etc. afin d'assurer une parfaite compréhension de la présente invention. Cependant, il sera évident pour un spécialiste que la présente inven- tion peut être mise en oeuvre sans ces détails spécifiques. Dans d'autres cas, des circuits bien connus sont représen- tés sous forme de schémas synoptiques pour ne pas encombrer la présente invention de détails inutiles. TECHNIQUE ANTERIEURE Si l'on se réfère à la Figure 1, dans un ordina- teur typique de la technique-antérieure utilisant un seul niveau de microinstructionsr un registre d'instruction 11 est couplé au bus de données 10 de l'ordinateuro Une par- tie de l'instruction du registre 11 est utilisée comme une entrée pour le séquenceur d'instructions micro- programmées 12. Le séquenceur reçoit-typiquement d'autres entrées telles que les-entrées conditionnelles non reprO- sentées dans la Figure 1. Le séquenceur 12 fournit une adresse à la mémoire de commande inscriptible 13. La sortie de cette dernière est couplée à un registre d'instructions microprogrammées 14 -et, de là, les signaux commandent divers aspects du fonctionnement de l'ordinateur. Le registre 14 est également couplé à un contrôleur de diagnostic et de mémoire de commande inscriptible 15 qui délivre les signaux au registre d'instruction 11. Dans la mémoire de commande inscriptible de la technique antérieure de la Figure 1, la dissipation thermique constitue un problème particulièrement lorsqu'on utilise un mot de microinstruction très large. La mémoire de commande inscriptible est le plus souvent fabriquée à partir de mémoires RAM statiques car ces dispositifs ont des temps d'accès plus rapides. Supposons pour faciliter la discussion que la mémoire de commande inscriptible délivre un mot de microinstruction de 64 bits au registre 14 et mémorise des mots de 16K. Si l'on utilise des RAMs statiques de 16K, il faudra 64 puces. Ces RAMs statiques produisent plus de chaleur que la plupart des autres circuits intégrés et créent donc une zone chaude. Des précautions devront être prises pour évacuer la chaleur en excès de la mémoire à commande inscriptible. Pour les diagnostics, des instructions spéciales peuvent être placées dans le registre 11 par le contrôleur 15. Les microinstructions spécifiquement conçues pour les essais peuvent être rendues disponibles au registre 14. Pour que les essais puissent se produire, la totalité du système de microcode de la Figure 1 doit pouvoir être mise en oeuvre. De plus, un contrôle effectif d'une seule portions d'un ordinateur se produit à tout moment, c'est-à-dire que la sortie du registre 14 peut examiner le circuit d'une première carte, puis de la carte sui- vante, et ainsi de suite. Le long mot de microinstruc- tion provenant du registre 14 est typiquement distribué à travers tout l'ordinateur. Ce bus de distribution doit être intact pour que se produise les essais. Un problème qui se poserait avec un connecteur qui distribue tout ou partie de la sortie du registre 14 d'une carte de circuit imprimé à une autre peut empêcher la mise en oeuvre des sous-programmes de diagnostics. MODE DE REALISATION PREFEREE DE LA PRESENTE INVENTION La présente invention est utilisée dans un système informatique qui est décrit en détails dans une demande de brevet également en cours et qui est attribuée au cession- naire de la présente demande. En ce qui concerne la présente invention, il n'est pas nécessaire de connattre le fonctionnement détaillé de cet ordinateur, mais il est utile de savoir que l'ordinateur est fabriqué sur plu- sieurs cartes de circuits imprimés (et notamment la carte mémoire, la carte séquenceur, la carte VAL et la carte d'interface du système). Cet ordinateur utilise un microcode d'une longueur de mot d'approxi- mativement 200 bits (mots de 16K).o Comme on peut s'en rendre compte, les problèmes décrits ci-dessus avec les ordinateurs de la technique antérieure sont fortement aggravés avec de plus grandes longueurs de mots de l'ordre de 200 bitso. Dans la présente invention, l'adresse de micro- code est distribuée à une pluralité de mémoires de commande inscriptibles séparées, directement depuis le séquenceur. Ceci s'écarte de l'ordinateur de technique antérieure de la Figure 1 dans lequel le séquenceur 12 fournit une adresse à une unique mémoire de commande inscriptible comprenant généralement une pluralité de circuits qui sont tous groupés sur une carte unique). La présente invention distribue la microadresse plutôt que la microinstruction. Il faut noter que même dans les ordinateurs de technique antérieure utilisant deux niveaux de mémoires microcodées, le premier niveau d'adresses n'est pas distribué. L'ordinateur sur lequel est utilisée la présente invention est réalisé sur plusieurs cartes de circuits imprimés dont trois sont représentées à la Figure 2 (cartes 1, 2 et 3). Les lignes pointillées 24 et 26 sont utilisées pour représenter la démarcation entre les cartes de circuits imprimées matériellement séparées les unes des autres. La séparation spécifique de l'ordinateur sur des cartes séparées n'est pas critique pour la présente invention et, à titre d'exemple: une carte pourrait contenir un système de mémoire, un autre une unité arithmétique et logique, et une troisième une logique d'entrée/sortie. Seul est représenté dans la Figure 2 le dispositif de microadressage distribué et les circuits correspondants de la présente invention, c'est-à-dire que le circuit commandé par la microinstruction n'est pas représenté. Avec la présente invention, un séquenceur de microprogrammes 22 est à nouveau utilisé comme dans la technique antérieure. Cependant, la sortie du séquenceur (microadresses) est distribuée par un bus 20 aux cartes 1, 2 et 3 de l'ordinateur. Le bus de microadresses est couplé à un multiplexeur 30 monté sur chaque carte de l'ordinateur qui emploie le microcode. La sortie du multiplexeur 30 est utilisée pour adresser une mémoire de commande inscriptible 32 La sortie de cette mémoire de commande inscriptible est couplée à un registre de microinstructions 34, la sortie de ce dernier étant utilisée de la façon habituelle pour commander diffé- rentes fonctions des circuits de la carte. Dans le mode de réalisation actuellement préféré, la mémoire 32 est chargée en série à partir de la commande de diagnostic lors de l'initialisation depuis la ligne 42 à travers le registre de microinstructions 34. Dans la présente inventions la mémoire de com- mande inscriptible (premier niveau) est séparée en une pluralité de mémoires séparées et montée sur chacune des cartes de circuits imprimés comme le montre la Figure 2. Les portions de microinstructions nécessaires pour une carte particulière sont mémorisées sur cette carte. Ceci signifie que les portions d'une micro- instruction exigées par la carte 1 sont mémorisées dans la mémoire de commande inscriptible 32 et ne sont pas dupliquées dans la mémoire de commande inscriptible 32 sur la carte 3. Identiquement, les portions des microinstructions qui ne sont nécessaires que sur la carte 3 ne sont mémorisées que dans la mémoire 32. Donc, une capacité moins importante de mémoire est exigée pour la mémoire de commande inscriptible sur chaque carte par comparaison avec la capacité totale de mémoire de commande inscriptible. Ceci distribue la chaleur depuis la plus grande mémoire unique 13 de la Figure 1 parmi plusieurs cartes de l'ordinateur, améliorant ainsi la dissipation thermique. La capacité des mémoires de commande inscrip- tibles peut varier d'une carte à l'autre, et cette diffé- rence se rencontre typiquemento Ceci signifie que la largeur de mot de la portion de la microinstruction utilisée sur chaque carte peut être différente. Dans le mode de réalisation actuellement préféré, un bus de diagnostic 40 est aussi distribué à chacune des cartes 1, 2 et 3. Ce bus est couplé à un contrôleur de diagnostic 38 qui existe sur chaque carte. Chaque con- tr8leur 38 comprend un microprocesseur (Pièce n 8051) et un compteur pour fournir les adresses à la mémoire de commande inscriptible 32 à travers le MUX 30 (depuis la ligne 36). De cette façon, l'essai de la carte 1 peut se produire de façon indépendante (ou sensiblement indépen- dante) des essais effectués sur les autres cartes. Il est à noter qu'il est inutile pour cet essai que le séquenceur 22 soit en action et l'essai peut être effectué même s'il existe des discontinuités dans le bus 20. Ceci est important lorsqu'on fait une comparai- son avec les essais selon les techniques antérieures o le séquenceur comme les lignes de distribution sont nécessaires pour les essaiso Dans la présente invention, un moins grand nombre de lignes de bus doivent être distribuées à travers l'or- dinateur pour les opérations microprogrammées. Le nombre de lignes d'adresse est typiquement beaucoup moins élevé que le nombre de lignes à la sortie du registre de micro- adresses. Par exemple, 14 lignes de microadresses fournis- sent une capacité de 16K microinstructions. Par comparai- son, dans un ordinateur d'une largeur de mot de 200 bits, on doit typiquement utiliser bien plus que 14 lignes pour appliquer le code à chaque carte imprimée de l'ordinateur. Tandis que dans le mode de réalisation préféré ici l'ordinateur est représenté réalisé sur plusieurs cartes séparées de circuits imprimés, la présente invention peut être utilisée lorsque l'ordinateur est séparé d'une autre façon en structures physiques individuelles. Par exemple, lorsqu'un ordinateur est réalisé sur plusieurs circuits intégrés, un bus de microadresses peut être connecté à des circuits dont chacun possède sa propre mémoire de commande inscriptible. Donc une amélioration a été décrite pour un ordi- nateur utilisant un microcode. La mémoire de commande inscriptible est subdivisée en plusieurs mémoires de commande espacées les unes des autres, la microadresse étant distribuée à ces mémoires séparées. R E V E N D ICATIONS 1.- Dans un ordinateur utilisant un séquenceur de microadresses pour adresser une mémoire de commande qui délivre des microinstructions à l'ordinateur, une amélio- ration comprenant: 5. une pluralité de mémoires de commande dont chacune est physiquement séparée des autres; un bus couplé à ladite pluralité de mémoires de commande pour distribuer les adresses depuis le séquen- ceur à ladite pluralité de mémoires de commande, ledit bus étant couplé audit séquenceur, ce qui permet de réaliser un système de microcode amélioré. 2.- L'amélioration définie par la revendication 1 et dans laquelle la mémoire de commande est une mémoire de commande inscriptible comprenant des mémoires statiques à accès aléatoire. 3.- Dans un ordinateur comportant une pluralité de cartes de circuits imprimés qui sont partiellement commandés par des instructions microprogrammées, une amélioration comprenant: un séquenceurdemicroadresse une pluralité de mémoires de commande à raison d'une mémoire sur chacune des cartes de circuits imprimés; -. un bus de microadresses transférant l'adresse dudit séquenceur de microadresses à chacune des mémoires de commande; ce qui permet de réaliser un système de microcode amélioré. i1 4.- L'amélioration définie par la revendication 3 _ '3, et dans laquelle chacune desdites mémoires de commande comporte une mémoire de commande inscriptible formée par des mémoires statiques à accès aléatoire. 5.- L'amélioration définie par la revendication 3 et comportant une pluralité de multiplexeurs, dont chacun sert à transférer ladite adresse depuis ledit bus de micro- adresses à l'une desdites mémoires de commande. 6.- L'amélioration définie par la revendication 5, dans laquelle chacune desdites cartes de circuits imprimés reçoit un second bus utilisé pendant les diagnostics, ledit second bus étant couplé aux microprocesseurs, l'un desdits microprocesseurs étantmontésurchacunedesdites cartes, et dans laquelle, pendant les diagnostics, lesdits micro- processeurs transfèrent les signaux à travers lesdits multiplexeurs auxdites mémoires de commande pour permettre un essai indépendant sur chacune desdites cartes. 7.- Dans un ordinateur utilisant un séquenceur de microadresses pour adresser une mémoire de commande qui délivre des microinstructions à l'ordinateur, une amélio- rations comportant - la séparation de ladite mémoire de commande en une pluralité de mémoires de commande physiquement espacées les uns des autres de façon à pouvoir obtenir une dissipation plus aisée de la chaleur desdites mémoires de commande; et la présence d'un bus de microadresses qui transfère la microadresse dudit séquenceur de micro- adresse à ladite pluralité de mémoires de commande séparées, ce qui permet de réaliser un système de microcode amélioré. 8.- Dans un ordinateur qui comporte une pluralité de cartes de circuits imprimés qui sont commandés du moins partiellement par des instructions microprogrammées reçues depuis une mémoire de commande qui est adressée par un séquenceur de microadresses, une méthode pour améliorer le fonctionnement dudit ordinateur comportant: o la séparation de ladite mémoire de commande en une pluralité de mémoires de commande séparées, dont chacune sera montée sur chaque carte imprimée de façon -10 que les portions des microprogrammes nécessaires pour chacune desdites cartes ne soient mémorisées quesur celle desdites cartes qui nécessite ces portions des microprogrammes; et la présence d'un bus pour transférer la microadresse depuis ledit séquenceur de microadresses d ladite pluralité de mémoires de commande séparées î ce qui permet de réaliser un système de microcode amélioré.