Brevet FR2472781A1 — publié le 19810703

La présente invention concerns un dispositif de gestion de microinstructions enregistrées dans une mémoire d'une uniti de traitement de l'information. Cette invention s'applique au déroulement des microprogrammes dans des unités de traitement de l'infor- mation, microprogrammées et, plus particulièrement, à la gestion des adresses de microinstructions groupées en segments de microprogiammes qui sont respectivement définis par une base, les différentes adresses de bases étant situées par exemple dans la mémoire centrale de l'unité de traitement, tel que décrit dans le brevet français nQ 2 221 052 dont la demande a éte déposée le 6 mars 1973 au nom du demandeur. Elle s'applique également à la sauvegarde des adresses de base et des adresses de retour, lors d'une interruption d'un microprogramme en cours de déroulement. On sait que la-plupart des unités actuelles de traitement de l'information font appel à la microprogramma- tion qui consiste à répartir les tâches à effectuer en microprogrammes. Les microprogrammes sont constitués de plusieurs microinstructions qui sont généralement enregis- trées dans une mémoire de commande de'l'unità de commande. Une instruction logicielle utilise généralement plusieurs microinstructions. L'ensemble des microprogrammes constitue le micrologiciel de l'unité de traitement; ce micrologiciel coopère, d'une part avec les parties matérielles de cettes unité et, d'autre part, avec le logiciel. Le micrologiciel est généralement inscrit dans une mémoire morte de l'unité centrale de traitement ainsi que dans une partie vive de la mémoire centrale, qui peut être reconfigurée. Les différents microprogrammes sont organisés en blocs fonctionnels qualifiés de segments de microprogrammes qui, s'ils sont placés dans la mémoire vive de l'unité de traitement, doivent rester inaccessibles au logiciel. L'appel des microprogrammes et, notamment l'appel des segments de microprogrammes, est effectué à partir de l'airesse de base de chacun des segments tel que décrit dans le brevet précité. B 6810 DC Cettre adresse de base est généralement chargée dans un registre au moment o un segment de microprogramme doit être appelé dans la mémoire. L'adresse réelle de la micro- instruction qui est recherchée à l'intérieur d'un segment, est alors obtenue par addition de la base avec l'adresse relative par rapport à la base de la microinstruction recherchée. Ces systèmes connus d'adressage de segments de microprogrammes, ont pour inconvénients de requérir tune instruction provenant du logiciel, pour chaque changement de base, ce qui nécessite un temps-machine précieux. De plus, en cas d'interruption de microprogramme, les dispositifs d'adressage existants ne permettent pas de sauvegarder le contenu du registre de base correspondant au segment de microprogramme en cours de déroulement, au moment de l'interruption si le microprogramme utilise une autre base. Enfin, aucun dispositif connu ne prévoit de manière simple des changements rapides de microprogrammes, permettant de réaliser très rapidement des modifications du mode de fonctionnement de l'unité de traitement. Ces modes de fonctionnement, dans les unités de traitement modernes, correspondent-par exemple à un fonctionnement dans un mode de fonctionnement d'une autre machine. La présente invention a pour but de remédier à ces inconvénients et notamment de réaliser un dispositif de gestion de microinstructions enregistrées dans une mémoire d'une unité de traitement de l'information, qui permette un adressage rapide des microinstructions groupées en segments de microprogrammes, à partir de la base ou adresse de base de cesegments; l'invention a aussi pour but de faciliter la reprise de segments de microprogrammes interrompus, à la suite par exemple d'un incident, et de faciliter également le choix de microprogrammes ou de segments de microprogrammes permettant de changer le mode de fonctionnement d'une unité de traitement. L'invention a pour objet un dispositif de gestion de microinstructions enregistrées dans une mémoire d'une unité de traitement de l'information, des microinstructions étant B 6810 DC groupées en segments de microprogrammes, chaque segment étant défini par une base en fonction de chaque segment de microprogramme à dérouler, un registre d'adressage et un registre de lecture de la mémoire reliés respectivement par leurs sorties et leurs entrées, aux entrées d'adressage et aux sorties de lecture de cette mémoire, un additionneur dont les entrées sont reliées à des sorties des registres de bases et à des sorties du registre de lecture,, des sorties de cet additionneur étant reliées à des entrées du registre d'adressage, caractérisé en ce que les bases sont contenues dans une pluralité de registres de base dotés de moyens de pointage, les sorties du registre de lecture étant en outre reliées à des entrées de commande des moyens de pointage des registres de base. Selon une autre caractéristique de l'invention, les moyens de pointage sont constitués par un registre de pointage des registres de base, des sorties de ce registre de pointage étant reliées à des entrées d'adressage des registres de bases, les entrées de commande des moyens de -pointage étant constituées par des premières entrées de chargement de ce registre de pointage par des informations binaires contenues dans les microinstructions de chaque segment et correspondant au registre de base à pointer au cours du déroulement des microprogrammes, ce registre de pointage contenant en outre des deuxièmes entrées de chargement par des informations permettant de pointer les registres de bases au moment du chargement de ceux-ci par les bases des segments de microprogrammes à dérouler. Selon une autre caractéristique, le registre de pointage comprend en outre des troisièmes entrées de chargement par des informations de commande d'interruption de déroulement de microprogramme, les sorties du registre de pointage étant reliées à des entrées de moyens de sauvegarde de l'adresse du registre de base correspondant au segment du microprogramme en cours de déroulement au moment de l'interruption, des sorties des moyens de sauvegarde étant reliées aux premières entrées de chargement B 6810 DC du registre de pointage pour commander le retour du déroulement du segment interrompu. Selon une autre caractéristique; le registre de pointage comprend en outre des quatrièmes entrées de char- gement par des informations permettant de forcer le pointage sur des registres de bases particuliers. Selon une autre caractéristique, les registres de base particuliers, sont chargés par des informations relatives à des bases de segments de microprogrammes commandant respectivement des modes particuliers de fonctionnement de l'unité de traitement. Selon une autre caractéristique, les moyens de sauvegarde comprennent un registre de sauvegarde et un circuit logique de type "ET" dont les entrées constituent les entrées des moyens de sauvegarde et sont reliés aux sorties du registre de pointage ainsi qu'aux troisièmes entrées du registre de pointage, les sorties de ce circuit logique étant reliées à des entrées du registre de sauve- garde, les sorties du registre de sauvegarde étant reliées aux premières entrées du registre de pointage et constituant les sorties des moyens de sauvegarde, une porte logique de commande étant connectée entre les sorties du registre de sauvegarde, et les premières entrées du registre de pointage, cette porte logique présentant une entrée de commande apte à recevoir un signal de commande pour vider le registre de sauvegarde dans le registre de pointage, lorsqu'une reprise du microprogramme interrompu, est à effectuer. Selon une autre caractéristique, le registre de sauvegarde comprend en outre une partie réservée à l'enre- gistrement de l'adresse de la microinstruction en cours d'exécution au moment d'une interruption, cette partie présentant des entrées reliées à des sorties d'un ccmpteur d'adresses de la mémoire et présentant des sorties reliées à d'autres entrées de l'additionneur. D'autres caractéristiques et avantages de l'in- vention ressortiront mieux de la description qui va suivre, B 6810 DC 24727B1 donnée en référence à la figure annexée représentant de manière schématique, un dispositif de gestion de micro- instructions, conforme à l'invention. La figure représente un dispositif de gestion de microinstructions enregistrées dans une mémoire M d'une unité de traitement de l'information. Ces microinstructions sont groupées de manière connues, selon la brevet précité, en segments de microprogrammes; chaque segment est défini par une base ou adresse de base à partir de laquelle l'accès aux différentes microinstructions contenues dans le segment est rendu possible. Ce dispositif comprend un banc de registres de bases RB et des moyens de pointage MBP qui permettent d'adresser ces registres de base, en fonction de chaque segment de microprogrammes à dérouler ou à brancher. Le dispositif domprend également, de manière connue, un registre d'adressage AM de la mémoire M, ainsi qu'un registre de lecture RM de cette mémoire; ces registres sont respectivement reliés par leurs sorties et leurs entrées aux entrées d'adressage et aux sorties de lecture de la mémoire M. Enfin, de manière connue, le dispositif comprend un additionneur ou progresseur AD dont les entrées sont reliées, d'une part aux registres de bases RB et, d'autre part, à des sorties du registre de lecture RM. Un compteur d'adresses de la mémoire M (non représenté)permet, giace à une progres- sion d'adresses d'une unité, de passer d'une microinstruction à la microinstruction suivante dans le microprogramme en cours de déroulement. Enfin, selon l'invention, les sorties du registre de lecture RM sont reliées à des entrées de commande 1, des moyens de pointage MBP des registres de base. Ces moyens de pointage sont constitués par un registre de pointage des registres de base. Les sorties de ces moyens de pointage sont reliées à des entrées d'adressage 2 des registres de base, qui reçoivent en outre sur leurs entrées 3, des informations nécessaires à la définition des bases de segments, au mcment de la configuration de l'unité de traitement de l'information dans laquelle intervient le dispositif de l'invention. Les entrées de commande des B 6840 DC moyens de mointage comprennent des premières entrées 3 de chargement de ce registre de pointage, par des informations binaires contenues dans les microinstructions de chaque segment et provenant du registre de lecture RM de la mémoire M; ces informations binaires concernent l'adresse ou numéro du registre de base à pointer au cours du déroulement des segments de microprogrammes. Le registre de pointage MBP comprend en outre des deuxièmes entrées 4 qui permettent de charger ce registre par des informations de pointage des registres de base, au moment du chargement de ceux-ci par les bases de segments de microprogrammes à dérouler. Le registre de pointage comprend également des troisièmes entrées 5, de chargement par des informations de commande d'interruptions "TRAP" de déroulement de microprogrammes. Les sorties du registre de pointage MBP sont reliés à des moyens 6, qui permettent de sauvegarder l'adresse du registre de base correspondant aux segments de microprogrammes an cours de déroulement au moment de l'interruption; des sorties 7 de ces moyens de sauvegarde sont reliés aux premières entrées 3 du registre de pointage, pour commander le retour au dérou- lement du segment interrompu, lorsque l'interruption a cessé. Enfin, le registre de pointage comprend des quatrIèmes entrées 8, de chargement par des informations qui permettent de forcer le pointage sur des registres de base particuliers. Ces informations, représentées ici par l'instruction "MODE", sont relatives à des bases segments de microprogrammes qui concernent respectivement des modes particuliers de fonction- nement de l'unité de traitement; ces modes de fonctionnement peuvent être par exemple des modes de simulation d'une"autre machine". Dans l'exemple de réalisation représenté sur la figure, les bases des segments de microprogramnes concernant le mode de fonctionnement Je l'unité du traitement, sont générale- ment contenues dans les deux premiers registres du banc de registres RB. Les moyens de sauvegarde 6 comprennent un registre de sauvegarde IM et un circuit logique 9 de type "ET" dont B 6810 DC les entrées 10 et Il constituent les entrées des moyens de sauvegarde et sont reliées d'une part aux sorties du registre de pointage MBP ainsi qu'aux troisièmes entrées 5 de ce registre de pointage. Ce circuit logique permet, lorsqu'une interruption "TRAP" intervient à l'entrée du dispositif, de transférer dans le registre de sauvegarde IM, les informations binaires contenues dans le registre de pointage MBP et qui correspondent à l'adresse du registre de base relatif au segment de microprogramme en cours d'exécution. Les sorties du circuit logique 9, sont à cet effet, reliées à des entrées 12 du registre de sauvegarde. Les sorties T du registre de sauvegarde constituent les sorties des moyens de sauvegarde et sont reliées aux premières entrées 3 du registre de pointage MBP. Une porte logique de commande 13 est connectée entre les sorties T du registre de sauvegarde IM et les premières entrées 3 du registre de pointage; cette porte logique permet, lorsqu'elle reçoit un signal de commande "RETOUR" sur une entrée de commande 16 de vider le contenu du registre de sauvegarde IM, dans le registre de pointage M3P, lorsqu'une reprise du microprogramme interrompu est à effectuer. Les portes logiques 9 et 13 sont bien connues dans l'état de la technique et ne sont pas décrites ici en détail. Le registre de sauvegarde IM comprend en outre une partie 14 qui est réservée à l'enregistrement de l'adresse de la microinstruction en cours d'exécution, au moment d'une interruption. Cette partie présente des entrées 15 qui sont reliées à des sorties du compteur d'adresses de la mémoire M. Ce compteur est constitué de manière connue et n'est pas représenté sur la figure. Des sorties 17 de cette partie 14 du registre IM sont reliées à des entrées 18 de l'additionneur AD. Ainsi, lors d'une interruption, l'adresse du reg.stre de base qui avait été sélectionnée pour le déroulement d'un segment de micro- programme donné, est sauvegardée dans le registre IM, tandis que l'adresse de la microinstruction interrompue, par rapport à la base correspondante, est sauvegardée dans la partie 14 de ce registre. Lorsqu'une interruption a cessé, l'adresse du registre de base concernant le microprogramme interrompu, qui B 6810 DC a été sauvegardée dans le registre IM, est de nouveau intro- duite dans le registre de pointage MBP, tandis que l'adresse concernant la microinstruction interrompue est introduite dans le registre d'adresse AM de la mémoire M. Ceci permet de retrouver dans la mémoire M, l'adresse de la microinstruc- tion interrompue. Les microinstructions provenant du registre de lecture RM de la mémoire M, sont appliquées par les sorties 19 de ce registre aux moyens concernés de l'unité. de traité- ment dans laquelle intervient le dispositif de l'invention. Les changements de base sont indiqués par des microinstruc- tions particulières "SIN" et "CMBP", à la sortie du registre de lecture RM de la mémoire M. Les microinstructions "SIN" permettent de forcer le pointage de deux registres par exemple du banc de registre RB, de manière à sélectionner l'un des deux microprogrammes particuliers au mode de fonctionnement de l'unité de traitement de l'information. Les microinstructions "CMBP" permettent de pointer l'un des registres du banc RB, à chaque changement de base. Le compteur d'adresses de la mémoire M qui est constitué de manière connue, n'a pas été représenté en détails sur la figure; il permet de manière connue, d'assurer la progression des adresses des microinstructions, une à une, dans les microprogrammes chargés dans la mémoire M. Cette mémoire peut être une mémoire morte de type ROM mais elle peut également être constituée par une partie de la mémoire centrale, de type RAM. Enfin, le dispositif de l'invention comprend en o tre un registre DR de recopie de la base courante. Ce registre permet de donner un accès immédiat à la base sans utilisation du pointeur. La nouvelle base, lors d'un changement de base, est recopiée dans ce registre. Le dispositif- qui vient d'être décrit permet bien, comme on l'a mentionné plus haut, de faciliter l'adressage de microinstructions dans des segments de microprogrammes contenus dans la mémoire d'une unité de traitement de l'information; elle permet également la reprise du dérou- B 6510 DC lement d'un segment de microprogramme, après interruption. Il est bien évident que dans le dispositif qui vient d'être décrit, les moyens utilisés auraient pu être remplacés par des moyens équivalents, sans sortir du cadre de l'invention. B 6810 DC REVENDICATIONS 1. Dispositif de gestion de microinstructions enregistrées dans-une mémoire (M) d'une unité de traitement de l'information, ces microinstructions étant groupées en segments de microprogrammes, chaque segment étant défini par une base en fonction de chaque segment de microprogramme à dérouler, ce dispositif comprenant un registre d'adressage (AM) et un'registre de lecture (RM) de la mémoire (M) reliés respectivement par leurs-sorties et leurs entrées aux entrées d'adressage et aux sorties de lecture de cette mémoire, un additionneur (AD) dont les entrées reçoivent chaque base et sont d'autre part reliées à des sorties du registre de lecture (RM), des sorties de cet additionneur étant reliées à des entrées du registre d'adressage (AM), caractérisé en ce que les bases sont contenues dans une pluralité de registres de base (RB) dotés de moyens de pointage (MBP), les sorties du registre de lecture étant en outre reliées à des entrées de commande des moyens de pointage (MBP) des registres de base(BP). 2. Dispositif de gestion selon la revendication 1, caractérisé en ce que les moyens de pointage sont constitués par un registre de pointage (MBP) des registres de bases, des sorties de ce registre de pointage étant reliées à des entrées d'adressage des registres de bases (RB), les entrées de commande des moyens de pointage étant constituées par des premières entrées de chargement de ce registre de pointage (MBP) par des informations binaires contenues dans les micro- instructions de chaque segment et correspondant au registre de base à pointer au cours du déroulement des microprogrammes, ce registre de pointage (MBP) comprenant en outre des deuxièmes entrées de chargement par des informations permettant de pointer les registres de bases (RB) au moment du chargement de ceux-ci par les bases des segments de microprogrammes à dérouler. 3. Dispositif de gestion selon la revendication 2, caractérisé en ce que le registre de pointage (MBP) comprend en outre des troisièmes entrées de chargement par des informa- tions de comrmande d'interruption de déroulement de microprogramme, B 6810 DC les sorties du registre de pointage étant relises à des entrées de moyens de sauvegarde (IM) de l'adresse du registre de base correspondant au segment de micropro- gramme en cours de déroulement au moment de l'interrupti6n, des sorties des moyens de sauvegarde (IM) étant reliés aux premières entrées de chargement du registre de pointage pour commander le retour du déroulement du segment interrompu. 4o Dispositif de gestion salon la revendication 3, caractézisé en ce que le registre de pointage (MBP) comprend en outre des quatrièmes entrées de chargement par des infor- mations permettant de forcer le pointage sur des registres de bases particuliers. 5. Dispositif de gestion selon la revendication 3, caractérisé en ce que lesdits registres de bases particuliers sont chargés par des informations relatives à des bases de segments de microprogrammes commandant respectivement des modes particuliers de fonctionnement de l'unité de traite- ment. 6. Dispositif-de gestion, selon la revendication 3, caractérisé en ce que les moyens de sauvegarde comprennent un registre de sauvegarde (IM) et un circuit logique (9)' de type "ET" dont les entrées constituent les entrées des moyens de sauvegarde et sont reliées aux sorties du registre de pointage (MBP) ainsi qu'aux troisièmes entrées du registre de pointage, les sorties de ce circuit logique (9) étant reliées à des entrées du registre de sauvegarde (IM), les sorties du registre de sauvegarde étant reliées aux premières entrées du registre de pointage et constituant les sorties des moyens de sauvegarde, une porte logique (13) de commande étant connectée entre les sorties du registre de sauvegarde (IM) et les premières entrées du registre de pointage (MBP), cette porte logique (13) présentant une entrée de commande apte à recevoir un signal de commande pour vider le registre de sauvegarde (IM) dans le registre de pointage (MBP), lorsqu'une reprise du microprogramme interrompu est à effectuer. B 6810 DC 7. Dispositif de gestion selon la revendication 6, caractérisé en ce que le registre de sauvegarde (IM) comprend en outre une partie (14) réservée à l'enregistrement de l'adresse de la microinstruction en cours d'exécution au moment d'une interruption, cette partie (14) présentant des entrées reliées à des sorties d'un compteur d'adresses de la mémoire et présentant des sorties reliées à d'autres entrées de l'additionneur (AD). S. Dispositif de gestion selon la revendication 3, caractérisé en ce qu'un registre (DR) de recopie de la base courante est prévu pour donner accès immédiat à cette base sans utilisation du registre de pointage (MBP) , la nouvelle base lors d'un changement de base étant recopié dans ledit registre (DR). B 6810 DC