Brevet FR2617622A1 — publié le 19890106

DISPOSITIF DE CONTROLE POUR SYSTEME DE MACHINE VIRTUELLE La présente invention concerne un dispositif pour contrôler un système de machine virtuelle et, plus précisément, celle-ci concerne l'opération de contrôle de commutation effectué au début d'une instruction machine lorsqu'un calculateur fonctionne en mode de machine virtuelle. Au cours des dernières années, comme le domaine d'application des calculateurs numériques s'est considérablement élargi, des espaces mémoire de plus en plus importants sont devenus nécessaires, et le système de stockage virtuel dans lequel l'espace mémoire peut être étendu quelle que soit la taille de la mémoire centrale réelle, a été utilisé. En outre, en tant qu'extension au système de stockage virtuel, un système de machine virtuelle qui utilise une machine réelle unique en tant que pluralité de machines apparentes, a été développé. Dans le système de machine virtuelle, une pluralité de systèmes d'exploitation peuvent fonctionner sur une machine réelle ou machine nue unique de façon apparemment simultanée de manière à ce que toutes les ressources matérielles, y compris non seulement la mémoire centrale et les dispositifs d'entrée/sortie, mais également une unité centrale de traitement peuvent être utilisées en commun par plusieurs utilisateurs. Il est ainsi possible de mettre au point ou de tester un système en cours de développement sans interrompre le service en cours fourni par le système pendant qu'il fonctionne, améliorant ainsi l'efficacité d'utilisation des ressources matérielles et diminuant les coûts du matériel réel. Par conséquent, le système de machine virtuelle fait l'objet d'un intérêt croissant. Dans un dispositif de traitement des données comportant un système de machine virtuelle de ce type, lorsque le processeur est en mode machine virtuelle (désigné ci-après mode MV) dans lequel certaines instructions de contrôle telles qu'une instruction de contrôle d'entrée/sortie, et une instruction de contrôle du système, sont exécutées dans la machine virtuelle, une certaine opération est nécessaire pour établir un lien entre une ressource virtuelle et une ressource réelle.A cet effet, une simulation logicielle ou une émulation matérielle, appelée fonction d'assistance, est en mode MV, le processeur doit satisfaire c des exigences de fonctionnement (par exemple pour permettre un contrôle par le logiciel effectuant la simulation) différentes de celle que l'on observe en mode machine réele (que l'on désignera ci-après "mode MR") dans lequel les instructions sont exécutées sur la machine réelle. Pour contrôler le système de machine virtuelle, on distingue si le processeur est placé en mode MB ou MV pendant la séquence logicielle câblée de l'instruction machine correspondante, et on fait passer le processeur en mode de fonctionnement discriminé. Dans de nombreux dispositifs de traitement des données, pour exécuter des instructions machine par logiciel câblé, un cycle machine plus proche d'un début d'instructions machine doit traiter un plus grand nombre de conditions de discriminations. Par conséquent, l'insertion d'un système logique de discrimination de mode dégrade les performances du processeur, même lorsque celui-ci se trouve dans le mode de fonctionnement correspondant aux spécifications en cours. La présente invention a pour but de fournir un dispositif pour contrôler un système de machine virtuelle qui ne présente pas les inconvénients de la technique classique décrite ci-dessus. Un dispositif pour contrôler un système de machine virtuelle dans lequel une pluralité de systèmes d'exploitation fonctionnent sur une machine réelle unique conformément à la présente invention, comprend : un registre pour stocker une première information utilisée pour distinguer si une instruction machine est exécutée par la machine unique en mode machine réelle ou en mode machine virtuelle; une mémoire de contrôle pour stocker un microprogramme définissant les opérations effectuées par diverses instructions machine en mode machine réelle et en mode machine virtuelle ; une mémoire de décodage d'instruction pour stocker une adresse de départ du microprogramme dans la mémoire de contrôle et une seconde information utilisée pour désigner la commutation de fonctionnement pour chaque instruction machine ; et un moyen pour modifier l'adresse de départ du microprogramme, fournie par la mémoire de décodage d'instruction, sur la base de la première et de la seconde informations et fournissant en sortie l'adresse de départ modifiée en tant qu'edresse de la mémoire de contrôle ; le dessin annexé est un schéma fonctionnel d'un mode de réalisation de la présente invention. Se référant aux dessins, un registre d'instruction machine 1 stocke une instruction machine devant être exécutée qui est fournie par une mémoire centrale (non représentée). Une borne de sortie 2 du registre d'instruction machine 1, destinée à fournir un code OPCO, est connectée à une borne d'entrée 3C d'une mémoire de décodage d'instruction (qui sera désignée ci-après MDI3). La MDI3 stocke des informations de contrôle et, plus précisément, les adresses de départ de microprogrammes contenues dans la mémoire de contrôle 11 (qui sera décrite plus loin), définissant les opérations exécutées par les diverses instructions machine et des informations de contrôle permettant de désigner la commutation de fonctionnement pour chaque instruction machine. Ces informations de contrôle sont nécessaires pour exécuter diverses instructions machine. Une borne 3A de la MDI3, destinée à fournir en sortie un signal désignant une adresse de départ en langage machine dans la mémoire de contrôle 11, est connectée à une borne d'entrée 5A d'un circuit de modification d'adresse 5. Une borne 3B de la MDI3, destinée à fournir en sortie un signal de commande désignant la commutation de fonctionnement en langage machine, est connectée à une borne d'entrée d'une porte ET 6. L'autre borne d'entrée de la porte ET 6 est connectée à la borne de sortie d'un registre de mode d'exécution 4. Le registre de mode d'exécution 4 stocke une information indiquant si le processeur est actuellement placé en mode machine réelle ou en mode machine virtuelle. La borne de sortie de la porte ET 6 est connectée à une borne de contrôle 5C du circuit de modification d'adresse 5. A la réception d'un signal "1" sur la borne de contrôle 5C, le circuit de modification d'adresse 5 modifie un signal fourni à la borne d'entrée SA et produit en sortie le signal modifié sur sa borne de sortie 5B. La borne de sortie 5B du circuit de modification d'adresse 5 est connecté à une borne d'entrée d'un sélecteur 7. L'autre borne d'entrée du sélecteur 7 est connectée à une borne de sortie 14A d'un séquenceur de microprogramme 14. La borne de sortie du sélecteur 7 est connectée à une borne d'adresse 11A de la mémoire de contrôle 11 et à la borne d'entrée d'un registre d'adresse 12. La borne de sortie du registre d'adresse 12 est connectée à une borne d'entrée 14B du séquenceur de microprogramme 14. La mémoire de contrôle 11 stocke un microprogramme et fournit en sortie une commande du microprogramme, correspondant à un signal d'adresse fourni en entrée par la borne d'adresse 11A à un registre de commande 13 par l'intermédiaire d'une borne de sortie lla. Une sortie partielle 13A du registre de commande 13 est fournie en entrée à une borne d'entrée 14C du séquenceur de microprogamme 14. On décrit ci-après le fonctionnement du circuit représenté dans le dessin. Se référant à ce dessin, des instructions machine d'un logiciel fonctionnant sur une machine réelle, sont recherchées dans la mémoire principale (non représentée) et séquentiellement chargées dans le registre d'instructions machine 1. Parmi les instructions machine chargées dans le registre d'instructions machine 1, le code d'instructions OPCO est fourni à la MDI 3. La MDI 3 fournit une adresse de départ du microprogramme dans la mémoire de contrôle 11, qui correspond à L'instruction machine fournie au circuit de modification d'adresse 5 et une information de contrôle permettant de désigner la commutation de fonctionnement à la porte ET 6. Une sortie de La porte ET 6 est positionnée à "1" lorsqu'une sortie du registre de mode d'exécution 4 est à "1", c'est-à-dire lorsque le processeur est en mode MV et l'information de désignation de commutation de fonctionnement provenant de la MDI 3 est à "1". Dans le cas contraire, la sortie de la porte ET 6 est positionnée à "O". Plus précisément, lorsque Le processeur est placé en mode MV et lorsque l'infor- mation de désignation de commutation de fonctionnement -est fournie, le circuit de modification d'adresse 5 modifie partiellement une adresse de départ du microprogramme fournie par la MDI 3, et fournit l'adresse modifiée au sélecteur 7. La métode de modification n'est pas spécifiée dans ce mode de réalisation. Comme exemples des méthodes de modification, on peut citer une méthode d inversion partielle (plusieurs bits) d'une adresse de départ de microprogramme fournie par la MDI 3 et une métode de remplacement partielle de l'adresse de départ du microprogramme par une valeur de registre définie séparément. Le sélecteur 7 sélectionne la sortie du circuit de modification d'adresse 5 à la place de la sortie du séquenceur de microprogramme 14, et les fournit à la mémoire de contrôle 11. La séquence de microprogramme définissant l'opération exécutée par l'instruction machine est ainsi amorcée. Dans la mémoire de contrôle 11, le microprogramme est adressé à l'avance de façon à ce qu'une adresse de microprogramme modifiée corresponde à L'adresse de départ d'une séquence de microprogramme correspondant à un traitement particulier, Lorsqu'une instruction machine donnée est exécutée en mode MV. Le rôle principal de la séquence# de microprogramme correspondant au traitement particulier, est de permettre au logiciel de simulation de prendre le contrôle en cas de simulation par logiciel. A cet effet, la séquence de microprogramme du traitement commun peut être amorcée. Comme méthode de modification de l'adresse de départ d'un microprogramme, on préfère la méthode de remplacement par une valeur de registre définie séparément, comme décrit ci-dessus. L'information de désignation de commutation de fonctionnement stockée dans la MDI 3 n'est positionnée que pour une instruction machine ayant des spécifications de fonctionnement différentes, lorsque le processeur est placé en mode MV, comme décrit précédemment. En ce qui concerne l'instruction machine, l'adresse de départ du microprogramme en mode MR diffère de celle du mode MV. Par conséquent, la logique du microprogramme peut être spécialisée et simplifiée, ce qui évite toute dégradation des performances du processeur, même lorsque celui-ci est placé dans le mode de fonctionnement des spécifications en cours. REVENDICATIONS 1. Dispositif de contrôle d'un système de machine virtuelle dans lequel une pluralité de systèmes d'exploitation fonctionnent sur une machine réelle unique, comprenant - un registre pour stocker une première information utilisé pour distinguer si une instruction machine est exécutée par la machine réelle en mode machine réelle ou en mode machine virtuelle ; - une mémoire de contrôle pour stocker un microprogramme définissant les opérations exécutées par diverses instructions machine en mode machine réelle et en mode machine virtuelle ; - une méritoire de décodage d'instruction pour stocker une adresse de départ du microprogramme dans ladite mémoire de contrôle et une seconde information utilisée pour désigner la commutation de fonctionnement pour chaque instruction machine ; et - un moyen pour modifier l'adresse de départ du micropro gramme, fournie en sortie par ladite mémoire de décodage d'instruction, sur la base de la première et de la seconde informations et fournissant en sortie l'adresse de départ modifiée en tant qu'adresse de ladite mémoire de contrôle. 2. Dispositif de contrôle d'un système de machine virtuelle dans lequel une pluralité de systèmes d'exploitation fonctionnent sur une machine réelle unique, comprenant : - un registre d'instruction machine dans lequel une instruction machine à exécuter est chargée ; - - un registre de mode pour stocker une première information indiquant si l'instruction machine est exécutée par ladite machine unique en mode machine réelle ou en mode machine virtuelle ; - une mémoire de contrôle pour stocker un microprogramme définissant les opérations exécutées par diverses instructions machine en mode machine réelle et en mode machine virtuelle ;; une mémoire de décodage d'instruction pour stocker une adresse de départ du microprogramme dans ladite mémoire de contrôle et une seconde information utilisée pour désigner la commutation de fonctionnement pour chaque instruction machine, afin de recevoir un code d'opération de l'instruction machine à exécuter en provenance dudit registre d'instruction machine, et de fournir en sortie un signal représentant l'adresse de départ du microprogramme correspondant au code d'opération et à la seconde information ; un moyen pour fournir un signal de contrôle indiquant que la commutation de fonctionnement est effectuée en mode machine virtuelle en fonction de la première information fournie par ledit registre de mode et d'une seconde instruction fournie par ladite mémoire de décodage diintruction ; ; un circuit de modification d'adresse pour recevoir le signal représentant l'adresse de départ du micropro gramme fournie par ladite mémoire de décodage d'instruc tion, modifiant l'adresse de départ en réponse au signal de commande, et fournissant l'adresse de départ modifiée ; un séquenceur de microprogramme pour fournir une adresse à ladite mémoire de commande en mode machine réeelle ; et un sélecteur pour sélectionner l'une quelconque des sorties dudit circuit de modification d'adresse et dudit séquenceur de microprogramme, et fournissant la sortie sélectionnée en tant qu'adresse de ladite mémoire de contrôle.