FR 2065524 A1 19710730 FR 7037945 A 19701021 70 37945 1 2065524 L'invention concerne une mémoire pour microprogramme avec possibilité d'agrandissement, constituée par une mémoire à lecture invariable du point de vue électrique (mémoire morte) dans laquelle les emplacements de mots de microprogramme sont remplis à l'aide d'une ou 5 de plusieurs commandes de microprogramme (lignes de commande) et contenant par ailleurs un registre tampon de sortie de mémoire morte. Il est en général d'usage de fixer les mots de microprogramme dans une calculatrice dans une mémoire à lecture invariable du point de vue électrique (read-only store, mémoire morte). Pour ce faire, il existe plusieurs 10 raisons. En premier lieu les lignes de commande des mots de programme ne subissent pas de modifications. Une fois fixées celles-ci ne doivent plus être modifiés. Une mémoire morte donne la certitude que les ligneb de commandes qui sont une fois fixées ne peuvent être influencées de façon permanente de l'extérieur par des parasites. D*autre part la construc-15 tion d'une mémoire morte est en général telle que la vitesse de celle-ci est notablement supérieure à celle d'une mémoire vivante. Ceci est important du fait que la rapidité d'exécution du microprogramme dans le cadre du macroprogramme joue un rôle important. En effet le macroprogramme comporte de nombreuses références vers les microprogrammes (instructions) 20 de sorte que lors d'un traitement rapide des parties de microprogramme correspondantes la vitesse de déroulement du macroprogramme est également élevée. Toutefois une mémoire morte présente l'inconvénient d'être très coûteuse. Lors de l'agrandissement du jeu d'instructions 25 d'une calculatrice on s'efforce de faire en sorte que des dimensions de la mémoire morte soient limitées autant que possible. Une solution connue dans ce cas consiste à remplir la mémoire morte autant que possible à l'aide de mots de microprogramme qui ne comportent qu'une ou ua nombre limité de lignes de commande. Ceci offre l'inconvénient que les mots de 30 microprogramme sont applicables de façon plus générale. On peut expliquer cela de la façon suivante. S'il y a dans le programme une instruction "additionner décaler" ceci peut être placé dans le microprogramme dans un seul mot de programme à deux lignes de commande à savoir une pour "additionner" et une pour "décaler". Si d'autre part les instructions 35 séparées "additionner" et "décaler" sont encore possibles dans un programme ceci doit être également fixf chaque fois séparément dans un mot de microprogramme de la mémoire morte. Cela exige donc un espace de mémoire morte supplémentaire9 La solution précitée signifie dans ce.t exemple que l'instruction à deux lignes de commande "additionner et dé-40 caler" n'est pas emmagasinée en soi dans la mémoire morte mais unique- BAD ORIGINAL 70 37945 2 2065524 ment chaque ligne de commande comme mot de microprogramme séparé. Cela signifie que l'on ne peut pas emmagasiner dans le programme une étape avec l'instruction"additionner et décaler" mais que deux étapes, une pour l'instruction "additionner" et une pour l'instruction "décaler" sont né-5 cessaires. Pour pouvoir sélectionner dans un microprogramme déterminé un ordre de succession correct de mots de microprogramme dans la mémoire morte cela se fait dans la solution précitée à l'aide d'une mémoire & lecture destructive présente dans les calculatrices, dans laquelle sont emmagasinées dans l'ordre de succession correct les adresses des mots de 10 microprogramme à utiliser pour ce programme dans la mémoire morte. Avec cette utilisation de la mémoire à lecture destructive le teai>8 de comptage est cependant notablement augmenté. D'autre part il y a encore le fait que le microprogramme d'une calculatrice doit être agrandi avec un microprogramme très spécial, comme par exemple un microprogramme de 15 diagnostique„ un tel programme prendrait du temps de comptage additionnel du fait que dans le cas envisagé ci-dessus ce microprogramme ne peut être exécuté en grande partie qu'à l'aide d" instmotions de nature générale. Une instruction spéciale de ce genre doit alors en effet être scindée en un nombre d'instructions plus communes emmagasinées dans la mé-20 moire morte. L'invention vise i obvier à cet inconvénient de l'allongement du temps de comptage sans qu'il soit nécessaire d'agrandir la mémoire morte* L'invention consiste en la possibilité d'élargissement de la mémoire pour microprogramme et est caractérisée en ce qu'au moins line 25 partie d'une mémoire à lecture (non) destructive (mémoire vivante), pour 1'emmagasinage de mots de microprogramme est utilisable et en ce que, à cet effet, un certain nombre de lignes de commande sont prévues dans la mémoire morte a l'aide desquelles un mot de microprogramme emmagasiné dans la mémoire vivante peut être sélectionné dans cette mémoire vi-30 vante et lu à partir de celle-ci. "On obtient ainsi que dans la mémoire vivante des mots de microprogramme peuvent être emmagasinés. Lorsqu'un tel mot de microprogramme est nécessaire il est sélectionné dans la mémoire vivante et placé dans une mémoire tampon & partir de laquelle les lignes de 35 " commande peuvent être exécutées, Du fait que la mémoire vivante a une •grande capacité d'emmagasinage, il n'y a pas d'inconvénient à remplir les mots-de mémoire Vivante avec des mots de microprogramme très particulière* . Ces mots de .'microprogramme peuvent donc, être constitués par un '• ^grand nombre de lignes de commande qui ensemble sont utilisées spéciale-40' ment et î>àriexemple^ uniquement pour un microprogramme déterminé. Bans la BAD ORIGINAL 70 37945 3 2065524 mémoire aorte, il suffit de disposer de quelques lignes de commande qui sont chaque fois utilisées à nouveau pour rechercher les mots de microprogramme dans la mémoire vivante» La perte de temps qui se produit pour la recherche des mots de microprogramme hors de la mémoire vivante est 5 largement compensée par le fait qu'un tel mot de microprogramme peut contenir un grand nombre de lignes de commande de sorte que le nombre de recherches peut être limité* Un autre avantage accessoire est que dans une calculatrice à mémoire de microprogramme conforme à l'invention il n'y a pas de problème pour agrandir par la suite le jeu de microprogram-10 me avec un nouveau microprogramme spécial» étant donné que dans la mémoire vivante l'espace est rendu libre simplement et qu'il ne doit pas Be produire de modifications ni d'agrandissements de la mémoire morte elle-même* Il faut remarquer que les mots de microprogramme de 15 la mémoire vivante contrairement à ce qui est le cas poux les mots de microprogramme dans la mémoire morte» peuvent subir des modifications par suite de parasites* Une telle modification peut cependant être détectée à l'aide d'un test de parité sur l'information sélectionnée dans la mémoire vivante* Un test de parité de ce genre est d'autre part également 20 réalisé sur les mots lus hors de la mémoire morte, du fait que lors de la lecture et du transport de ces mots vers le registre tampon de sortie de mémoire morte il peut également se produire des perturbations qui modifient l'information lue* En pratique les mots de microprogramme viennent de la mémoire vivante dans le registre tampon de sortie de mémoire 25 morte de sorte qu'un test de parité sur ce registre tampon sert pour les deux sortes de mots de microprogramme. Une forme de réalisation simple de la mémoire pour microprogramme conforme à l'invention pour la recherche de mots de microprogramme successifs hors de la mémoire vivante est par ailleurs carac-30 térisée en ce quîon a prévu un registre d'adresse dans lequel 1*adresse du mot de microprogramme dans la mémoire vivante est présente, et cette adresse étant sélectionnable avec une ligne de commande de la mémoire morte dans la mémoire vivante et le mot de microprogramme correspondant peut être lu hors de la mémoire vivante alors que le contenu du regi&tre 55 d'adresses sur commande d'une autre ligne de commande de la mémoire morte peut être augmenté de telle façon que l'adresse d'un microprogramme suivant dans la mémoire vivante s'y présente alors qu'un mot de microprogramme dans la mémoire vivante en vue d'obtenir un mot de» microprogramme suivant hors de la mémoire vivante a une référence vers une a-40 dresse fixe dans la mémoire à partir de laquelle un cycle de recherche BAD ORIGINAL 70 37945 4 2065524 pour la recherche du mot de microprogramme de mémoire vivante suivant peut démarrer* On a ainsi un cycle de recherche à l'aide duquel les mots de microprogramme successifs peuvent être sélectionnés dans la mémoire vivante» Un autre agrandissement de cette forme de réalisation consiste 5 en ce qu'un des mots de microprogramme de la boucle de recherche emmagasiné dan» la mémoire morte pour la recherche d'un mot de microprogramme hors de la mémoire vivante consiste généralement en des zéros alors que lorsque ce mot de microprogramme se trouve dans le registre tampon de sortie de mémoire aorte, le mot de microprogramme de la mémoire vivante 10 peut y être ajouté avec une ligne de commande de la mémoire morte de sorte que l'exécution d'un mot de microprogramme de mémoire vivant® se fait à partir de ce registre tampon de sortie de mémoire morte» On obtient ainsi que l'exécution des lignes de commande se fait toujours à partir d'un même registre à savoir le registre tampon de sortie de mé-15 moire morte. La description qui va suivre en regard des dessins annexés, fera bien comprendre comment l'invention peut être réalisée. La fig. 1 est un schéma d'une mémoire pour microprogramme conforme à l'invention» 20 La fig» 2 est une forme de réalisation plus fouil lée de la mémoire pour microprogramme açnforme & l'invention» Il faut remarquer que les parties correspondantes des deux figures portent les mêmes références» Lorsqu'on parle dans la description d'une ligne, il 25 peut dans certains cas s'agir d'un faisceau de lignes étant donné que des mots peuvent être transportés de façon usuelle en parallèle à partir par exemple d'un registre vers un autre registre. Il faut remarquer que les exemples donnés ci-après ne sont pas limitatifs des formes de réalisation possibles» Bans le schéma de la fig. 1 la mémoire à lecture non 30 destructive (mémoire morte) est désignée par BG et la mémoire (non) destructive (mémoire vivante) est désignée par L6. La mémoire morte BG comporte des moyens de sélections 1 et un registre tampon de sortie 2» La mémoire vivante LG comporte des moyen» de sélection 3 et un registre tampon de sortie 4 et des moyens d'inscription 6 pour la réinscription d'in-35 formation* ABq est un registre d'adrssse de début qui par l'intermédiaire de sa sortie 0 peut être muni à partir d'une calculatrice non représentée et/ou à partir de la mémoire vivante d'une adresse pour mots de microprogramme de la mémoire morte » La référence 5 désigne une porte de passage commandée par une ligne 05* 40 Banc la aémoirs sorte BG sont emmagasinés des mots BAD ORIGINAL 70 37945 5 2065524 de aicroaots de aicrograaae dg1, dg2 etc. Bans la mémoire vivante LG sont emmagasinés notamment des aots Ig1, lg2 etc. Un aot de aicroprograaae dgx ou lgx coaporte une partie d'adresse dax ou lax qui indique au aoins une partie de l'adresse d'un aot suivant et qui peut être placée dans 5 une partie BAR ou LAR des registres 2 ou 4 respectivement. B'autre part les aots de aicroprograaae dgx et lgx comportent une ou plusieurs lignes de commande cx1, cx2, c'xl, c*x2. Ces lignes de commande peuvent être placées dans les parties de registre tampon BCR et LCR des registres taa-pon 2 ou 4. 10 Le dispositif fonctionne de la façon suivante: En supposant que dans le registre de départ AR0 se trouve l'adresse du aot de aicroprograaae de mémoire morte dg1. Cette adresse est désignée dans cette aéaoire à l'aide des moyens de sélection 1 de la méaoire aorte BG et de ce fait le aot de aicroprograaae dg1 est envoyé vers le regis-15 tre tampon 2. Bans le registre taapon 2 se trouve alors dans la partie BAR par exeaple la partie d'adresse da2 du aot de aicroprograaae suivant dg2. Les lignes de coamande c11, c12, c13 et c14 se trouvent dans la partie de registre tampon BCR à partir de laquelle les lignes de coamande peuvent être exécutées par l'intermédiaire de la sortie CL. Après 20 exécution des lignes de commande c11 . . . c14 l'adresse da2 est sélectionnée à l'aide du aot dg2 et le aot dg2 est lu. Ce aot dg2 comporte des lignes de commande c21 et c22 et une adresse da3 pour le mot de méaoire aorte suivant dg5. Après traitement du aot de microprogramme dg2 dg3 est sélectionné. Le mot de aéaoire morte dg3 comporte dans cet exea-25 pie une partie d'adresse avec un code désigné par 05 à l'aide de laquelle la porte de passage 5 est préparée par l'interaédiaire de la ligne 05 à partir de la partie de registre BAR. Le aot de microprogramme dg3 coaporte comme une ligne de coamande c32 une adresse Ia1 qui est transportée à partir de la partie de registre taapon BCR par la porte de pas-50 sage 5 qui est alors ouverte, vers les moyens de sélection 5 de la aéaoire vivante* Be ce fait le aot de mémoire vivante Ig1 est lu et transféré dans le registre tampon de sortie 4. Le mot de aicroprograaae dg3 peut également coaporter une ligne de coamande c51 qui fait en sorte que le- contenu du registre 4 .(voir la borne d'entrée c3l) soit réinscrit 55 dans la mémoire vivante par la ligne 1 à l'aide des moyens d'inscrip-tion.6.Ce mot de microprogramme lgl emmagasiné dans la aéaoire vivante, coaporte des lignes de coamande c'11 . . . c'14 qui sont exécutées à partir de la partie âe registre taapon de sortie LCR par l'intermédiaire de la sortie CL. Bans cet exeaple le mot de aéaoire vivante Ig1 comporte 40 une partie d'adresse la.2 dans laquelle se trouve l'adresse ig.2 d'un mot BAD ORIGINAL 70 37945 6 2065524 de mémoire vivante suivant. A partir de la partie de registre LAR ce mot de microprogramme lg2 est sélectionnable à l'aide des moyens de sélection 3» L'élément de mémoire vivante lg4 comporte dans cet exemple une partie d'adresse da4 à l'aide de laquelle est désignée une adresse d'un met de la mé— 5 moire morte dg4« Si cette adresse vient dans la partie de registre LAR ceci fait en sorte par l'intermédiaire de la ligne da4 que le mot de microprogramme dg4 soit sélectionné comme mot de microprogramme suivant, et ainsi de suite. Il ressort donc de cet exemple que le mot de microprogramme dg3 10 dans la mémoire morte DG passe vers la mémoire vivante pour utiliser une série de mots de microprogramme Ig1 - lg4» Après cette série on en revient à nouveau à la mémoire morte. Cela peut être répété naturellement à discrétion. De ce fait on obtient un agrandissement de la mémoire morte avec la mémoire vivante. 15 La fig. 2 représente un exemple suivant lequel un certain nombre de mots de microprogramme comportant des lignes de commande sont emmagasinés dans la mémoire morte (dg20 à dg24) qui forment une boucle à l'aide de laquelle chaque mot de microprogramme peut être tiré de la mémoire vivante. Un mot de microprogramme dans la mémoire vivante peut avoir line référence 20 vers une adresse de mémoire morte fixe (da24) à partir de laquelle un nouveau cycle de recherche peut être entamé avec la boucle précitée. Dans d'autres cas, dans la mémoire morte, un mot de microprogramme désigné à partir d'un mot de microprogramme de mémoire vivante, à un renvoi vers une autre adresse (daK) dans la mémoire morte, adresse à partir de laquelle le 25 traitement peut se poursuivre. Dans cet exemple on suppose qu'un mot lu dans la .mémoire vivante est réinscrit automatiquement, à savoir par la ligne 7 à l'aide des éléments d'inscription 6. Dans cet exemple comparativement avec la fig. 1 on trouve encore un 30 registre .d'adresse F et un registre de transcodage H. . Le. dispositif fonctionne de la façon.suivante. En supposant que le programme dans la mémoire vivante vient à l'adresse du mot. de mémoire vivante lg20._ A partir de celui-ci on renvoie à l'adresse de mémoire morte da20 pour le mot de microprogramme de mémoire, morte dg20 qui est le mot de départ delà 35 boucle de recherche dg2Q à dg24« A -partir de ce mot de mémoire vivante lg20 on renvoie également" (AF)"Vers -un-registre d'adresse P dans lequel, dans cet exemple, seT trouve l'adresse de"mémoire vivante la21.La21 est l'adresse d'un mot de microprogramme-de mémoire vivante lg21. L'adresse de mémoire morte da20 est alors sélectionnée ët le mot de microprogramme de mémoire morte bad original 70 37945 7 2065524 dg20 vient dans le registre taapon de sortie 2. La partie DAR de 2 comporte alors l'adresse da21 du mot de mémoire morte suivant dg21. La partie DCR de 2 comporte des lignes de commande c201 et e202* Avec la ligne de commande c201 on commande par l'in-5 termédiaire de la ligne lo201 du registre F le transfert de l'adresse emmagasinée dans ce registre (la2l) avec retenue de cette adresse, vers les moyens de sélection 3 de la mémoire vivante. Avec la ligne de commande c202 une invitation à la lecture de ce mot de microprogramme de mémoire vivante lg21 est donnée par l'intermédiaire de la ligne le 202. 10 Pendant le temps de cette sélection et de cette lecture le cycle de recherche continue à partir de la mémoire mortet la mémoire morte dg21 est sélectionnée avec l'adresse da21 hors de la mémoire morte* Ce mot de microprogramme dg21 a une ligne de commande c211 à l'aide de laquelle le contenu du registre d'adresse F est augmenté d'une telle étape par l'in-15 termédiaire de la ligne lc211, que de ce fait la distance d'adresse entre deux mots de microprogramme de mémoire vivante est ouverte* De cette manière l'adresse du mot de microprogramme de mémoire vivante se trouve déjà pour un cycle de recherche suivant dans le registre d'adresse F. Le mot de microprogramme dg21 comporte une adresse de référence da22 20 avec laquelle on renvoie vers le mot de mémoire morte suivant dg22* Celui-ci est alors sélectionné et comporte une ligne de commande c221 sous la commande de laquelle par l'intermédiaire de la ligne lc221 le mot lg21 présent entretemps dans le registre tampon de sortie 4 de la mémoire vivante LG est transféré vers un registre de transcodage H* Dans le 25 registre H se produit le transcodage désiré du contenu du registre 4 convenant pour le registre tampon de sortie de mémoire morte 2, c'est-à-dire un arrangement correct des lignes de commande et des adresses de référence. C'est ainsi que plus tard l'adresse de référence da24 du mot lg21 doit se trouver exactement dans la partie de registre tampon DAR 30 du registre 2. Le mot de mémoire morte dg22 comporte encore une ligne de commande c222 qui commande par la ligne lc222 le registre de transcodage H pour transposer l'information qui s'y trouve vers le registre tampon 2 de la mémoire morte elle-même* Four que ce traœport se fasse de façon correcte» le mot de mémoire morte dg23 sélectionné par la suite 35 par l'adresse de référence da23 du mot dg 22 est constitué pour la plus grande partie de zéros qui viennent alors dans le registre 2. Dans celui -ci vient également l'information provenant du registre H et cela résulte en un remplissage du registre 2 avec le mot de microprogramme lg21 hors de la mémoire vivante. Ce mot lg21 comporte des lignes de com-40 mande c'21i . . . qui sont exécutées par l'intermédiaire de la ligne CL. BAD ORIGINAL 70 37945 8 2065524 Ce aot lg21 coaporte d'autre part une adresse de référence da24 qui dans la partie de registre taapon DAR s'ajoute jusqu'à da24 dans la partie de registre tampon DAR l'adresse de référence pour le aot dg 24 qui est présent dans le aot de aéaoire aorte» De ce fait le mot de aicroprcgra»-5 ae de aéaoire vivante lg21 est renvoyé vers une adresse de mémoire mort® fixe da 24 adresse à laquelle se trouve le saot dg24« Le aot dg24 renvoie vers le aot de aéaoire morte dg20, qui est sélectionné et conaeae® ainsi une répétition du cycle de recherche. Ensuite par ce cycle l'adresse da21 + 1 dans la aéaoire vivante est sélectionnée à partir du re» 10 gistre d'adresse F et de ce fait le aot de aicroprograaae de mémoir® vi™ vante lg22 est lu et ainsi de suite. l>e aot lg22 coaporte outre les lignes de coamande c'22j ... une adresse de référence daK et non da24 de sorte qu'après la terminaiion d'un cycle» un nouveau cycle ne démarre pas, mais un autre aot de aéaoire morte, est sélectionné à savoir dgK 15 et lu» et ainsi de suite. Dans un stade suivant d'un programme ou pour un autre programae un nouveau cycle de recherche peut coamencer par une référence vers l'adresse de aéaoire aorte da20» BAD ORIGINAL 70 37945 9 2065524 r s v e :• 1. Mémoire pour microprogramme arec possibilité d'agrandissement, constituée par line mémoire à lecture invariable du point de vue électrique (mémoire morte) dans laquelle les emplacements de mots de microprogramme sont remplis à l'aide d'une ou de plusieurs commandes de microprogramme (lignes de commande) et contenant par ailleurs un registre tampon de sortie de mémoire morte, cette mémoire étant caractérisée en ce que la possibilité a'élargissement de la mémoire pour microprogramme réside en ce qu'au moins une partie d'une mémoire à lecture (non) destructive (mémoire vivante), pour l'emmagasinage de mots de microprogramme est utilisable et en ce que, à cet effet, un certain nombre de lignes de commande sont prévues dans la mémoire morte à l'aide desquelles un mot de microprogramme emmagasiné dans le mémoire vivante peut être sélectionné dans cette mémoire vivante et lu à partir de celle-ci* 2. Mémoire pour microprogramme selon la revendication 1, caractérisée en ce qu'on a prévu un registre d'adresse dans lequel l'adresse du mot de microprogramme dans la mémoire vivante est présente, et cette adresse étant sélectionnable avec une ligne de commande de la mémoire morte dans la mémoire vivante et le mot de microprogramme correspondant peut être lu hors de la mémoire vivante alors que le contenu du registre d'adresses sur commande d'une autre ligne de commande de la mémoire morte peut être augmenté de telle façon que l'adresse d'un microprogramme suivant dans la mémoire vivante s'y présente alors qu'un mot de microprogramme dans la mémoire vivante en vue d'obtenir un mot de microprogramme suivant hors de la mémoire vivante a une référence vers une adresse fixe dans la mémoire morte à partir de laquelle un cycle de recherche pour la recherche du mot de microprogramme de mémoire vivante suivant peut démarrer* 3. Mémoire pour microprogramme selon la revendication 1 ou 2, caractérisée en ce que un des mots de microprogramme de la boucle de recherche emmagasiné dans la mémoire morte pour la recherche d'un mot de microprogramme hors de la mémoire vivante consiste généralement en des zéros alors que lorsque ce mot de microprogramme se trouve dans le registre tampon de sortie de mémoire morte, le mot de microprogramme de la mémoire vivante peut y être ajouté avec une ligne de commande de la mémoire morte de sorte que l'exécution d'un mot de microprogramme de mémoire vivante se fait à partir de ce registre tampon de sortie de mémoire morte. BAD ORIGINAL