Brevet FR2580415A1 — publié le 19861017

La présente invention concerne un dispositif de désignation de zones de sauvegarde dans un système de machine virtuelle et, plus particulierement, un dispositif de désignation de zone de sauvegarde sensible a la détection d'un état exceptionnel d'un processeur de données afin de désigner une zone pour la sauvegarde de l'information. Un système de machine virtuelle (MV), qui permet a des systèmes d'exploitation différents de fonctionner sur une architecture de matériel donnée est proposé dans le brevet des Etats-Unis d'Amérique n0 4 456 954. Un exemple de système MV permettant l'exécution avec un microprogramme est proposé dans la demande de brevet américain n0 726 440 déposée le 23 avril 1985. De manière a fournir la souplesse de fonctionnement d'un système MV de cette nature, il est souhaitable de ne pas laisser chaque système d'exploitation être exécuté par un processeur spécifique de données d'une façon fixe. Par exemple, dans un système MV comportant deux processeurs de données, quatre processeurs virtuels de données fonctionnent grâce a l'un de ces systèmes d'exploitation ,alors que 11 autre processeur fonctionne grâce à l'autre, et chacun exécute le traitement. Le support d'un tel fonctionnement impose qu'on prête une considération particulière aux zones de sauvegarde de ces processeurs de données Ainsi, dans le cas ou un système MV doit exécuter une instruction privilégiée, par exemple une instruction de désignation d'un fonctionnement d'entrée/sortie, il est nécessaire que l'information sur l'état du processeur de données procédant alors à l'exécution devant être provoquée, en réponse à la détection du fait que l'instruction par le processeur de données est une instruction privilégiée, soit sauvegardée dans la mémoire principale, et que le programme de commande d'une multitude de systèmes d'exploitation, auxquels l'autorité de commande a été transmise par le système d'exploitation employé par le processeur de données, procède à la simulation de la mise en oeuvre de l'instruction privilégiée. On trouvera d'autres détails sur cet agencement dans l'article de R.P. Parmelee et collaborateurs intitulé "Virtual storage and virtual machine concepts n (Concepts de stockage virtuel et de machine virtuelle) dans la revue IBM Systems Journal, Volume 11, number 2 1972, pp. 99-131. Comme la correspondance entre le processeur de données et le processeur virtuel de données n'est pas fixe, le même processeur de données peut être affecté à une multitude de poocesseurs de données. Pour cette raison, si une zone de sauvegarde de processeur de données est désignée qui correspond au processeur virtuel. de données, les états des différents processeurs de données peuvent être sauvegardés comme se chevauchant les uns et les autres. Par conséquent, la zone de sauvegarde pour un processeur de données doit être désignée en correspondance avec le processeur de données. Alors, lorsqu'un programme de commande actionne un système d'exploitation, il est nécessaire d'établir la correspondance entre un numéro de processeur virtuel de données reconnu par le système d'exploitation et un numéro réel de processeur de données. Un exemple d'une telle correspondance fera l'objet de la description ci-après. Par exemple, une table comportant quatre zones (entrées) prévues dans la mémoire principale, chacune correspondant à des premier à quatrième processeurs de données stocke exclusivement l'adresse initiale de lune des première à sixième zones de sauvegarde fournies séparément dans la mémoire principale. Ce stockage est obtenu lorsque le programme de commande actionne un système d'exploitation comme indiqué ci-dessus. Chacune des première à quatrième zones de sauvegarde est prévue pour l'une ou l'autre des premier à quatrième processeurs virtuels de données sous un premier système d'exploitation, et les cinquième et sixième zones de sauvegarde sont prévues pour les premier et second processeurs virtuels de données sous le second système d'exploitation. Supposons maintenant que les premier à quatrième processeurs de données fonctionnent comme le troisième processeur virtuel de données sous le premier système d'exploitation, le premier processeur virtuel de données sous le premier système d'exploitation,le quatrième processeur virtuel de données sous le premier système d'exploitation et le second processeur virtuel de données sous un second système d'exploitation, les adresses initiales des troisième, premier, quatrième et sixième zones de sauvegarde seront stockées dans les première à quatrième entrées, respectivement, de la table.En définissant de telles correspondances entre processeurs virtuels de données et processeurs réels de données, on rend possible, lorsque l'information sur l'état d'un processeur de données doit être sauvegardée, pour ce processeur de données de lire le contenu de l'entrée pertinente dans la table et de désigner la zone correspondante de sauvegarde conformément au contenu ainsi lu. En outre, en modifiant par un programme de commande les correspondances déjà définies, le système de machine virtuelle peut être utilisé avec soublesse. Si, dans un système de machine virtuelle comportant une multitude de processeurs de données, l'un des processeurs de données est victime d'un dérangement, le programme alors exécuté sera transmis à un autre processeur de données pour la poursuite de l'exécution, et le processeur de données en dérangement sera isolé du système (c'est-à-dire qu'une fonction de libération de processeur sera réalisée) Pour un exemple de système faisant appel à cette technique de libération de processeur, on se reportera au brevet des Etats-Unis d1Amé- rique n0 4 443 849. Le problème suivant sera soulevé dans un agencement de ce type. Si le premier processeur de données doit maintenant fonctionner comme le second système virtuel de traitement des données, différent du premier système virtuel de traitement des données, employé dans le premier système d'exploitation, un programme de commande exécuté par le premier processeur de données lira d'abord le numéro du premier processeur de données. Le numéro du processeur de données, maintenu dans le processeur de données correspondant, peut être lu à une instruction en langage machine. Si une perturbation se produit dans le premier processeur de données après que le programme de commande dans le processeur de données ait reconnu le numéro du premier processeur de données, un programme de libération entrera en action. Il en résulte que le second processeur de données prendra le relais de l'exécution du programme de commande du premier processeur de données. Cependant, comme ce programme a déjà reconnu le numéro du premier processeur de données, il va renouveler la première entrée correspondant à ce numéro de processeur, mais non la seconde entrée correspondant au second processeur de données qui a pris en charge les travaux de traitement. Par conséquent, comme zone de sauvegarde pour le second processeur virtuel de données sous le premier système d'exploitation, il y aura désignation, au lieu de la seconde zone de sauvegarde qui doit être correctement désignée, de la quatrième zone de sauvegarde pour le quatrième processeur virtuel de données sous le premier système d'exploitation,ce qui permettra d'éviter une confusion dans l'utilisation des zones de sauvegarde. Un objet de la présente invention est, par conséquent, un dispositif de désignation de zone de sauvegarde destiné à être utilisé dans un système MV conçu de manière à permettre correctement, en réponse à la détection d'un état exceptionnel, la désignation de la zone de sauvegarde lorsque la commutation d'un processeur de données et le remplacement d'un processeur virtuel de données se produisent simultanément. Selon la présente invention, on prévoit un dispositif de désignation de zone de sauvegarde destiné a être utilisé dans un système MV commandant par un programme de commande l'exécution d'une multitude de systèmes d'exploitation sur un système informatique équipe d'au moins un processeur de données et d'une mémoire principale utilisée en commun par les processeurs de données, si leur nombre est supérieur à un,dans lequel la mémoire principale comporte - une première table pour stocker les numéros des processeurs virtuels de données, reconnus par le programme de commande, correspondants au processeur de données; - une seconde table pour stocker une information sur la désignation des zones de sauvegarde pour des processeurs virtuels de données reconnus par le programme de commande;; - l'écriture dans chacune des tables et la définition de la correspondance entre les tables s'effectuent par le programme de commande au moment de l'actionnement du système MV; et, lors de la détection d'un état exceptionnel par le processeur de données au moment où le système MV est en marche, le processeur de données lit tout d'abord l'entrée pertinente dans la première table, puis lit dans la seconde table les contenus ainsi lus sur la base de la correspondance définie, de sorte qu'une information peut être fournie sur la désignation d'une zone de sauvegarde, dans laquelle l'état du processeur de données à partir duquel il y a eu détection de l'état exceptionnel doit être sauvegardé. La présente invention sera bien comprise lors de la description suivante faite en liaison avec les dessins ci-joints dans lesquels La figure 1 est un schéma sous forme de blocs d'un dispositif comprenant une mémoire principale et des processeurs de données; La figure 2 est un diagramme illustrant une multitude de zones dans la mémoire principale; et Les figures -3 et 4 sont des diagrammes détaillés permettant d'illustrer un mode de réalisation de la présente invention. Dans les figures, les mêmes références représentent respectivement des éléments identiques de la structure. En liaison avec la figure 1, un système MV auquel la présente invention peut s'appliquer est basé sur un matériel comprenant une mémoire principale MP et quatre processeurs de données PDO à PD3 utilisant en commun la mémoire principale NP. Dans ce système, l'exécution d'une multitude de systèmes d'exploitation est commandée par un programme de commande exécuté dans chacun des quatre processeurs de données PDO à PD3. En liaison maintenant avec la figure 2, la mémoire principale (MP) comprend des zones de sauvegarde RGO à RG5 dans lesquelles les états des processeurs de données PDO à PD3 doivent être soumis à sauvegarde, fournies en correspondance avec les processeurs virtuels de données reconnus par la multitude de systèmes d'exploitation, une seconde table T1 pour stocker les adresses initiales des zones de sauvegarde, et une première table TO pour stocker les numéros des processeurs virtuels de données. Les zones de sauvegarde RGO à RG3 sont prévues pour des processeurs virtuels de données PVO, PVZ, PV2 et PV3, respectivement, sous un système d'exploitation OSO,et les zones de sauvegarde RG4 et RG5 pour les processeurs virtuels de données PVO et PV1 sous un système d'exploitation OS1. Dans chacune des entrées E10 à E13 dans la seconde table T1, est exclusivement stockée l'adresse initiale de l'une ou l'autre des six zones de sauvegarde RGO, RG1, RG2, RG3, RG4 et RG5. Ce stockage est effectué lorsque le programme de commande actionne le système d'exploitation. Les entrées EOO à E03 de la première table TO correspondent respectivement aux processeurs de données PDO à PD3. Par conséquent, les numéros des processeurs virtuels de données stockés dans les entrées EOO à E03 sont reconnus par le programme de commande exécuté par les processeurs de données PDO à PD3, respectivement. On décrira maintenant en détail le fonctionnement du mode de réalisation préféré de l'invention. Tout d'abord, lors de l'actionnement du système, le programme de commande, prenant en compte les réponses des deux tables, écrit dans chaque entrée de la première table TO et de la seconde table T1. Par exemple, l'adresse de l'entrée E13 de la second de table T1 est instaurée à l'entrée EOl de la première table TO. L'adresse initiale de la zone de sauvegarde RGO pour le processeur virtuel de données PVO sous le système d'exploitation OSO est instaurée à l'entrée E13 de la seconde table T1. A l'issue de ces étapes préparatoires, le programme de commande actionne, par exemple, le système d'exploitation OSO du processeur de données PD1 pour démarrer le fonctionnement de ce système. En liaison maintenant avec les figures 3 et 4, une instruction du programme du système d'exploitation, stockée dans la zone de mémoire de programme de système d'exploitation de la mémoire principale MP, est stockée dans un registre d'instructions 11 du processeur de données PD1 pendant le fonctionnement.Le fait que cette instruction stockée dans le registre 11 soit ou non une instruction pris légiée est détecté par le détecteur 12 d'occurrence d'exceptl, A titre d'exemple d'un tel détecteur, on se reportera à ce qui est représenté par la référence 34 en figure 7 du brevet des Etat--Unis d'Amérique n0 4 456 954 cité ci-dessus. Il s'agit de laS détection d'un état exceptionnel.En réponse à la détection d'un état exceptionnel par le détecteur 12, un signal de détection est fourni par le détecteur 12 à une mémoire de commande 13. Dans cette mémoire de commande 13, un programme est stocké, qui prend désormais en charge la commande. Une micro-instruction du microprogramme provoque l'exécution d'une opération arithmétique par un circuit arithmétique 14, dont le résultat et une adresse de base provenant d'un registre de base 15 sont ajoutés dans un circuit 16 additionneur d'adresses. Le résultat de l'addition par ce circuit 16 est stocké dans un registre d'adresses 17. L'adresse stockée dans le registre 17 est l'adresse selon laquelle le numéro du processeur virtuel de données stocké dans l'entrée (EO1 en figure 2), parmi la multitude d'entrées (EOO à E03 en figure 2) dans une premier re table TO 19 , correspondant au processeur de données PD1, est lue. Conformément à l'adresse, le numéro du processeur virtuel de données est lu dans l'entrée (EOl en figure 2) de la première table TO 19. Le numéro du processeur virtuel de données ainsi lu est stocké dans un registre de données 20. Le numéro du processeur virtuel de données lu dans le registre de données subit une opération arithmétique prescrite par le circuit arithmétique 14. A l'adresse de base provenant du registre de base 15 est ajouté par le circuit additionneur d'adresses 16, le résultat de l'opération arithmétique par le circuit arithmétique 14. Le résultat de cette addition est stocké dans le registre d'adresses 17. L'adresse dans le registre d'adresses 17 est fournie à une seconde table T1, 21. En réponse à cet accès, l'adresse initiale de la même zone de sauvegarde RGO est lue dans une entrée (E13 en figure 2) de la seconde table T1 21. L'adresse initiale provenant de l'entrée (E13) est stockée dans le registre d'adresses 17 via le registre de données 20, le circuit arithmétique 14, et le circuit additionneur d'adresses 16. L'adresse initiale et l'adresse de base provenant du registre de base 15 sont ajoutées par le circuit additionneur d'adresses 16, et le résultat de l'addition est stocké dans le registre d'adresses 17. Selon l'adresse stockée dans le registre d'adresses 17, il y a accès à une zone de sauvegarde 22.Cet accès provoque le stockage de l'information sur l'état du processeur de données PD1, sorti d'un registre visible de logiciel 23 en réponse à une mioro-instruction stockée dans la mémoire de commande, dans la zone de sauvegarde 22 de la mémoire principale MP. Ensuite, le processeur de données PD1 actionne le programme de commande. Le programme de commande actionné simule le traitement des instructions privilégiées dans le système d'exploitation OSO. En réponse à l'achèvement de la simulation, l'information sur l'état du processeur de données PD1, ayant été sauvegardée dans une partie RGO de la zone de sauvegarde 22, est restockée dans le registre visible de logiciel 23 du processeur de données PD1. Ensuite, le programme de commande réac- tionne le système d'exploitation OSO du processeur de données PD1. On a décrit jusqu'ici la façon avec laquelle ce mode de réalisation préféré fonctionne lorsqu'un état exceptionnel a été détecté. On décrira maintenant le fonctionnement du mode de réalisation pour remplacer le processeur virtuel de données correspondant à un processeur réel de données, ayant lieu lors du changement du processus de traitement, par exemple. Ensuite, l'accès aux tables et la réécriture dans une table pour chaque étape du processus, suivant seront basés sur le fonctionnement décrit ci-dessus. De nouveau en liaison avec les figures 1 et 2, on suppose qu'un processeur virtuel de données PVO sous le système d'exploitation OSO exécuté par le processeur réel de données PR1 doit être remplacé par un autre processeur virtuel de données PV1 sous le même système d'exploitation OSO. Dans ce cas, un programme de commande exécuté par le processeur de données PD1 instaure une adresse initiale représentant une zone de sauvegarde du processeur virtuel de données PV1 sous le système d'exploitation OSO dans l'entrée E13 de la seconde table T1, désignée par une adresse préparée par le numéro du processeur virtuel de données reconnu par le programme de commande Alors le programme de commande actionne un programme devant être exécuté par le processeur virtuel de données PC1 sous le système d'exploitation OSO. Dans ce cas, les contenus en mémoire de la première table TO ne doivent pas être modifiés. On décrira maintenant le cas de la libération d'un processeur dans le cas d'une perturbation dans le premier processeur de donnes PD1, où le second processeur de données PD2 doit prendre le relais de l'exécution d'un programme de commande, exécuté jusqu'ici par le premier processeur de données PD1. Lorsqu'une libération de processeur est nécessaire, un programme de commande exécuté par un processeur de données PD2, en réponse à une notification du programme de libération de processeur, modifie la relation de correspondance entre la première table TO et la seconde table T1 correspondant à la commutation du processeur de données. Ainsi le programme de commande exécuté par le processeur de données PD2 fait passer le contenu de l'entrée EOl de la première table TO à l'entrée E02. Il en résulte que le premier processeur de données PD2 accède à l'entrée E13 de la seconde table T1, et est validé pour accéder à la zone de sauvegarde RGO selon le contenu de l'entrée E13 et utiliser la zone de sauvegarde employée précédemment par le processeur de données PD1. Dans ce cas, les contenus de la seconde table T1 n'ont pas besoin d'être modifiés. Ainsi, lorsque le processeur virtuel de données doit être remplacé par suite du changement du processus de traitement ou analogue, seuls les contenus de la seconde table T1 doivent être renouvelés afin de valider le programme de commande devant désigner une zone de sauvegarde remplaw crée. De plus, dans le cas où le processeur de données doit être remplacé pour une libération de processeur, seuls les contenus de la première table TO doivent être renouvelés afin de valider le programme de commande devant être exécuté par le processeur de données de remplacement afin de désigner une zone de sauvegarde correspondant au processeur de données victime d'une perturbation. Ensuite, de façon que le processeur de données PDZ puisse remplacer le processeur virtuel de données PVO sous le système d'exploitation OSO par un autre processeur virtuel de données PV1 sous le même système d'exploitation OSO, le programme de commande exécuté par le processeur de données PD1 réécrit les contenus de la seconde table T1. On suppose maintenant qu'avant cette réécriture, une perturbation dans le processeur de données PDL est détectée de manière à actionner la fonction de libération de processeur, ce qui se traduit par le passage de la commande du processeur de données PD1 au processeur de données PD2. Le programme de commande du processeur de données PD2 avant le passage de la commande est informé du passage de la commande du processeur de données PD1 au processeur de données PD2 par le programme de libération. En réponse à cette notification, le programme de commande du processeur de données PD2 fait passer le contenu de l'entrée EOl de la première table TO à l'entrée E02. Ensuite, ce programme de commande du processeur de données PD2 modifie l'adresse initiale de la zone de sauvegarde RGO, stockée à l'entrée B13 de la seconde table Ti pour l'adresse initiale de la zone de sauvegarde RG1. Il en résulte qu'une correspondance est établie entre l'entrée E02 de la première table TO et l'entrée E13 de la seconde table T1, de sorte que la zone de sauvegarde RG1 peut être désignée, comme désiré, comme zone de sauvegarde pour le processeur de données PD2. Selon la présente invention, on prévu une table pour désigner la zone de sauvegarde et une aSttie table pour accéder à la première table, l'une étant respofsable de la modification de la désignation de la zone de segarde en réponse au remplacement du processeur virtuel de données et l'autre, pour modifier la relation de correspondance entre les deux tables en réponse au passage entre les processeurs de données. Il en résulte que, même si le remplacement du processeur virtuel de données et le changement du processeur réel de données se produisent en même temps, la zone de sauvegarde peut être désignée comme désiré d'une manière ordonnée, de sorte que la fonction de libération de processeur peut être réalisée sans faute. La présente invention n'est pas limitée aux exemples de réalisation qui viennent d'entre décrits, elle est au contraire susceptible de modifications et de variantes qui apparaitront à l'homme de l'art. REVENDICATIONS 1 - Dispositif de désignation de zones de sauvegarde pour emploi dans un système de machine virtuelle équipé d'au moins un processeur de données (PD) pour exécuter des programmes de commande afin de commander des systèmes d'exploitation (10) et une mémoire principale (MP) utilisée en commun par les processeurs de données,caractérisé en ce que la mémoire principale (MP) comprend - un premier moyen de table (TO) pour stocker des numéros de processeurs virtuels de données, reconnus par chacun des programmes de commande, correspondants au processeur de données (PD); et - un second moyen de table (T1) pour stocker une information sur la désignation de zones de sauvegarde (RGt pour des processeurs virtuels de données, reconnues par les programmes de commande, dans des positions de stockage fournies sur la base des numéros des processeurs virtuels de données du premier moyen de table.