Brevet FR2458844A1 — publié le 19810102

La présente invention concerne un procéda et un dispositif de traitement de signaux d'interruption pour un systeme de traitement de donnees numeriques et plus particulièrement pour un systeme de traitement a logique microprogramme e. Dans les systèmes de traitement de donnees numeriques, il est classique d'utiliser la technique dite "d'interruption de programme" pour tenir compte de certaines conditions du système comme, par exemple,#une demande d'un equipement peripherique, une action à la console du système, un - etat de faute dans une unite, etc. Parmi ces conditions, certaines demandent une action immediate alors que d'autres peuvent être mises sur une liste d'attente. A titre d'exemple, une faute detectee au niveau d'un echange de donnee exige une action immediate de l'unite centrale, alors que le traitement d'une demande provenant d'un equipement périphérique peut souvent être differe.C'est pour cette raison que l'on associe generalement des niveaux de priorité aux differents signaux d'interruption, la priorite de certains d'entre eux pouvant être eventuellement variable. Le traitement d'une interruption suppose en général, de la part de l'unite centrale, l'arrêt du programme en cours avec sauvegarde de l'adresse à laquelle le programme est arrête, l'exécution d'un programme de traitement de l'interruption, puis le retour à l'adresse précitée ou éventuellement le branchement à une autre adresse. Par ailleurs l'unité centrale doit, pour pouvoir prendre en compte les interruptions quand elles se présentent, examiner périodiquement l'état des différents signaux d'interruption. La méthode de traitement des interruptions exposée ci-dessus peut présenter plus d'inconvénients que d'avantages si elle est appliquée au niveau du microprogramme. En effet, la prise en charge d'une interruption, qui consiste en l'arrêt du microprogramme, la sauvegarde de l'adresse de la dernière micro-instructiontraitee et la lecture de l'interruption, prend du temps et se justifie d'autant moins qu'en général le traitement de l'interruption conduit à relancer le programme à partir d'une autre adresse que celle qui était en cours d'exécution et, par suite, à ignorer toute la séquence de micro-instruetions en cours de traitement au moment de l'interruption. Cela est particulièrement vrai lorsque les signaux d'interruption proviennent de fautes détectées au cours du traitement.L'examen périodique de l'état des différents signaux d'interruption prend également du temps et pénalise l'unité de traitement. Aussi un objet de la présente invention est un système d'interruption adapté à un systeme de traitement de données à logique microprogrammée et ne présentant pas les inconvénients mentionnés ci-dessus. Selon une caractéristique de l'invention, en cas d'existence d'un ou plusieurs signaux d'interruption de microprogramme, un circuit de priorité délivre une adresse de déroutement qui correspond au traitement du signal d'interruption le plus prioritaire et qui est substituée à l'adresse normalement envoyée à la mémoire de microprogramme. Selon une autre caractéristique de l'invention, il est prévu - un circuit de priorité et de transcodage qui reçoit en entrée les différents signaux d'interruption de microprogramme et fournit en sortie une adresse de déroutement et un signal d'activation ; - un circuit multiplexeur recevant, d'une part, l'adresse provenant du circuit séquenceur de microprogramme et, d'autre part, ladite adresse de déroutement fournie par ledit circuit de priorité et de transcodage et sélectionnant l'une ou l'autre adresse en fonction dudit signal d'activation. D'autres objets, caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation particulier, ladite description étant faite à titre purement illustratif et en relation avec la figure unique jointe d'une unité de contrôle de microprogramme en accord avec les principes de la présente invention. L'unité de contrôle de microprogramme gère la lecture des microinstructions dans la mémoire de microprogramme et, après leur analyse, engendre les ordres nécessaires à leur exécution. L'unité de contrôle, représentée sur la figure unique, comporte les éléments essentiels suivants : un séquenceur de microprogramme 1, une mémoire de microprogramme 2, un registre de microinstruction 3, différents circuits destinés à fournir une adresse de microprogramme dans les cas où l'encha#nement n'est plus séquentiel, et des circuits d'horloge et de contrôle. Les ruptures de séquence de microprogramme ont lieu, par exemple, lors de branchements ou lors d'une interruption de microprogramme engendrée par une faute. Le circuit séquenceur 1 délivre sur sa sortie Y l'adresse de la micro-instruction suivant celle en cours. Cette adresse peut être celle appliquée sur l'entrée D, en cas de saut ou en début de microprogramme, ou provenir d'un registre d'adresse incorporé audit circuit séquenceur 1 et chargé par l'intermédiaire de l'entrée R. Le circuit séquenceur I comporte encore un compteur de microprogramme qui permet la lecture séquentielle de la mémoire 2 et une mémoire de quatre mots qui permet de mémoriser une adresse de retour en cas de sousmicroprogramme. Un tel circuit séquenceur peut être constitué par un ou plusieurs circuits AM2909, commercialisés par "Advanced Micro Devices Inc.". L'adresse délivrée par le circuit séquenceur J sur sa sortie Y et constituant l'adresse dela prochaine micro-instruction est normalement envoyée à la mémoire de microprogramme 2 qui délivre les éléments binaires de la micro-instruction correspondante. Sur les cent vingt-quatre éléments binaires dela micro-instruction, dix éléments binaires, qui constituent l'adresse de branchement, sont appliqués sur l'entrée R du séquenceur I et les cent quatorze autres, plus quatre éléments binaires de l'adresse de branchement, sont rangés dans le registre de micro-instruction 3. Les éléments binaires rangés dans le registre de micro-instruction 3 sont répartis en plusieurs champs à partir desquels les ordres sont élaborés soit directement ou après un décodage, soit encore après la prise en compte de certains signaux supplémentaires. La manière dont les différents ordres sont issus de la micro-instruction n'entre pas dans le cadre de la présente invention et ne sera donc pas explicitée davantage. Un contrôle de parité est effectué par le circuit 60 sur certains éléments binaires de la micro-instruction choisis pour leur importance dans l'enchaînement correct du microprogramme. En cas de faute détectée lora de ce contrôle, un signal d'interruption BPA est envoyé par le circuit 60 au circuit 50. Outre le signal BPA représentant une faute de parité, le circuit 50 reçoit les signaux INTE, STOP, FPO, BRT, PRIV et FM qui constituent des signaux d'interruption de microprogramme engendrés par l'existence respectivement d'une interruption de programme, d'une condition d'arrêt, d'un dépassement lors d'une opération aritimiétique, d'un départ en-trappe après un branchement, d'une instruction privilégiée alors que le système est en mode esclave ou d'une faute détectée lors d'une opération avec la mémoire. Bien entendu, ces différents signaux ne sont donnés qu'à titre d'exemple et l'on pourrait admettre que d'autres conditions que celles énumérées ci-dessus entraînent une interruption de microprogramme. Le circuit 50 a pour fonction de délivrer, lorsqu'un ou plusieurs signaux d'interruption de microprogramme sont présents, une adresse de déroutement AD correspondant au traitement du signal d'interruption le plus prioritaire et un signal d'activation MIC. L'adresse de déroutement AD est envoyée sur une entrée d'un multiplexeur 40 à deux entrées et le signal d'activation HIC est appliqué à l'entrée de sélection dudit multiplexeur 40. La deuxième entrée du multiplexeur 40 est reliée à la sortie Y du circuit séquenceur 1. En l'absence de signal d'interruption, le multiplexeur 40 envoie à la mémoire 2 l'adresse fournie par le circuit séquenceur I et, lorsqu'un signal d'interruption existe, c'est l'adresse AD qui est sélectionnée par le multiplexeur 40 et envoyée à la mémoire 2. Les numéros portés sur la figure en regard des liaisons indiquent le nombre d'éléments binaires transférés. L'adresse envoyée à la mémoire comporte dix éléments binaires. Aussi les quatre éléments binaires de l'adresse AD ne constituent que les éléments binaires de poids faible de l'adresse de déroutement dont les éléments binaires de poids fort sont forcés à zéro. Comme il a été vu précédemment, l'existence d'une interruption de microprogramme a pour effet de faire avorter toute la séquence de microinstructions en cours. La micro-instruction contenue à l'adresse de déroutement AD doit contenir un branchement qui initialise le séquenceur I et lui permet de contrôler l'enchaînement des micro-instruetions suivantes. En particulier, le compteur de microprogramme doit être chargé avec la nouvelle adresse de micro-instruction. A la fin du traitement d'une interruption de microprogramme, le contrôle est redonné au programme.Le plus souvent, en effet, le programme principal est redémarré, à l'issue du traitement d'une interruption de microprogramme, à une autre dresse que celle qui était en cours au moment de la prise en compte de ladite interruption, et c'est donc une nouvelle séquence de micro-instructions qui doit alors être traitée. L'avantage principal du procédé et du dispositif décrits ci-dessus tient à la réduction du nombre d'opérations nécessaires au traitement des interruptions de microprogramme du fait de leur détection automatique et, par suite, à l'amélioration de la vitesse de traitement par rapport aux systèmes connus. Bien que la présente invention ait été décrite dans le cadre d'un exemple de réalisation particulier, il est clair cependant qu'elle n'est nullement limitée audit exemple et qu'elle est susceptible de variantes ou de modifications sans sortir de son domaine. REVENDICATIONS 1. Procédé pour interrompre un microprogramme lorsqu'une condition au moins parmi plusieurs conditions déterminées est remplie, caractérisé en ce qu'un signal d'interruption de microprogramme est engendré et une adresse de déroutement est produite qui correspond au traitement du signal d'interruption le plus prioritaire, et en ce que cette adresse est substituée à l'adresse normalement envoyée à la mémoire de microprogramme. 2. Unité de contrôle de microprogramme apte à mettre en oeuvre le procédé selon la revendication ] , et comportant au moins un séquenceur de microprogramme, une mémoire de microprogramme, un registre de micro-instructions et des circuits d'horloge et de contrôle parmi lesquels un circuit de contrôle de parité, ladite unité étant caractérisée en ce qu'elle comporte en outre - un circuit de priorité et de transcodage apte à fournir une adresse de déroutement, correspondant au traitement du signal d'interruption le plus prioritaire des signaux d'interruption reçus à l'entrée, et un signal d'interruption ; et - un circuit multiplexeur recevant, d'une part, une première adresse qui est fournie par ledit séquenceur à destination de la mémoire de microprogramme et, d'autre part, une deuxième adresse qui est ladite adresse de déroutement fournie par ledit circuit de priorité et de transcodage ainsi que ledit signal d'interruption, et appliquant à la mémoire de microprogramme ladite adresse de déroutement ou ladite première adresse selon que ledit signal d'interruption existe ou non.