DE69032334T2 - Virtuelles Computersystem mit Ein-/Ausgabeunterbrechungssteuerung - Google Patents

Virtuelles Computersystem mit Ein-/Ausgabeunterbrechungssteuerung

Info

Publication number
DE69032334T2
DE69032334T2 DE69032334T DE69032334T DE69032334T2 DE 69032334 T2 DE69032334 T2 DE 69032334T2 DE 69032334 T DE69032334 T DE 69032334T DE 69032334 T DE69032334 T DE 69032334T DE 69032334 T2 DE69032334 T2 DE 69032334T2
Authority
DE
Germany
Prior art keywords
virtual machine
register
input
output
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69032334T
Other languages
English (en)
Other versions
DE69032334D1 (de
Inventor
Yoshifumi Ogi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE69032334D1 publication Critical patent/DE69032334D1/de
Application granted granted Critical
Publication of DE69032334T2 publication Critical patent/DE69032334T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die vorliegende Erfindung betrifft im allgemeinen ein virtuelles Computersystem, und imbesonderen ein virtuelles Computersystem, in dem eine Vielzahl von Gastprogrammen (virtuellen Maschinen) auf Zeitteilungsbasis in einer zentralen Verarbeitungseinheit, die in einem Computersystem vorgesehen ist, unter der Steuerung eines Überwachers virtueller Maschinen läuft. Die vorliegende Erfindung befaßt sich speziell mit einer Verbesserung einer Eingabe/Ausgabe- Unterbrechungssteuerung.
  • Herkömmlicherweise sind verschiedene Computersysteme bekannt, die darauf gerichtet sind, die Operationsgeschwindigkeit zu verbessern. Zum Beispiel ist ein virtuelles computersystem bekannt, in dem eine Vielzahl von Gastprogrammen die Zeit gemeinsam nutzt und in einer zentralen Verarbeitungseinheit unter der Steuerung eines Überwachers virtueller Maschinen (Host) läuft. Zur Zeit muß solch ein virtuelles Computersystem eine Vielfalt von Nutzerprogrammen behandeln. Insbesondere muß es ein Gastprogramm laufen lassen, welches einer Echtzeitverarbeitung wie z. B. einer Prozeßsteuerung bedarf.
  • In solch einem Fall muß ein Eingabe/Ausgabe-Unterbrechungsereignis, das durch einen Prozeßsteuermechanismus erzeugt wird, mit hoher Priorität behandelt werden. Wenn solch ein Eingabe/Ausgabe-Unterbrechungsereignis durch den Prozeßsteuermechanismus erzeugt wird, während gerade kein Gastprogramm zum Verarbeiten der Prozeßsteuerung des Prozeßsteuermechanismus in der physikalischen zentralen Verarbeitungseinheit läuft, ist es jedoch notwendig, die Behandlung des Eingabe/Ausgabe-Unterbrechungsereignisses zu verzögern, bis das gewünschte Gastprogramm in der zentralen Verarbeitungseinheit läuft. Somit ist eine Prozedur zum effektiven Steuern der Priorität bei Eingabe/Ausgabe-Unterbrechungsereignissen zwischen den Gastprogrammen erforderlich.
  • In einem virtuellen Computersystem ist es sehr schwierig, die Eingabe/Ausgabe-Verarbeitung zu steuern, die mit der Operation der zentralen Verarbeitungseinheit asynchron ist. Unter Bezugnahme auf Fig. 1A ist eine herkömmliche Eingabe/Ausgabe-Unterbrechungssteuerung gezeigt. Eine Vielzahl von virtuellen Maschinen (auch als Gäste bezeichnet) #A, #B, ..., #D läuft in einer zentralen Verarbeitungseinheit 1b auf Zeitteilungsbasis. Alle Eingabe/Ausgabe-Instruktionen und -Unterbrechungen, die für die virtuellen Maschinen bestimmt sind, werden ohne Ausnahme einem Überwacher virtueller Maschinen (VMM: Host) 1a eingegeben. Der Überwacher virtueller Maschinen unterzieht die eingegebenen Instruktionen und Unterbrechungen einem Planungsprozeß und bestimmt dann, auf welche der virtuellen Maschinen bei jeder Instruktion/Unterbrechung zugegriffen werden soll. Dann führt der Überwacher virtueller Maschinen 1a eine Unterbrechungsverarbeitung durch Emulation (Softwareunterbrechung) aus. Somit ist der Aufwand des in Fig. 1A gezeigten Systems groß.
  • Andere herkömmliche virtuelle Computersysteme sind vorgeschlagen worden, die darauf gerichtet sind, den oben erwähnten Nachteil zu überwinden. Diese vorgeschlagenen Systeme behandeln Eingabe/Ausgabe-Unterbrechungen, die an die virtuellen Maschinen adressiert sind, ohne das Eingreifen des Überwachers virtueller Maschinen.
  • Zum Beispiel offenbart EP-A-0213952 ein virtuelles Computersystem, in dem die CPU Maskenregister hat, die jeweilig den verschiedenen virtuellen Maschinen entsprechen, wobei jedes Maskenregister Maskenbits hat, die jeweilig den verschiedenen Prioritätsebenen von Eingabe/Ausgabe-Vorrichtungen des Systems entsprechen. Der Hauptspeicher des Systems speichert auch Sätze von Unterbrechungswarteschlangen, die jeweilig den verschiedenen virtuellen Maschinen entsprechen, wobei jeder Satz eine Warteschlange für jede Prioritätsebene hat. Wenn eine Unterbrechungsanforderung auftritt, die eine nichtlaufende virtuelle Maschine bezeichnet, wird sie der entsprechenden Warteschlange für ihre Prioritätsebene in dem Satz von Warteschlangen zugeordnet, der der bezeichneten virtuellen Maschine entspricht. Die Anforderung muß dann warten, bis jene virtuelle Maschine zu arbeiten beginnt.
  • US 4001783 offenbart ein Multiprozessorcomputersystem, in dem jede Unterbrechungsanforderung die Nummer des zu unterbrechenden Prozessors, die Prioritätsebenennummer der Anforderung und Adressen, um den Unterbrechungsanforderer zu identifizieren, spezifiziert. Eine Unterbrechungsbehandlungsschaltungsanordnung überwacht ständig die aktuelle Prozeßebene des Prozessors und Unterbrechungsanforderungen. Immer wenn eine Unterbrechungsanforderung auf einer Ebene vorhanden ist, die höher als die aktuelle Ebene ist, wird durch die Schaltungsanordnung die Leitung, auf der die Unterbrechung mit der höheren Ebene vorhanden ist, für den spezifizierten Prozessor emporgehoben.
  • In solch einem anderen vorgeschlagenen virtuellen Computersystem können die virtuellen Maschinen verschiedenen Prioritäten zugeordnet sein. In einem Zustand, wenn eine der virtuellen Maschinen in der CPU läuft, sollte somit, wenn eine Eingabe/Ausgabe-Unterbrechung auftritt, die an eine andere der virtuellen Maschinen gerichtet ist, die eine höhere Priorität hat, das Recht, die CPU exklusiv zu verwenden, der virtuellen Maschine mit höherer Priorität zugeordnet werden, statt der virtuellen Maschine, die zur Zeit läuft. In dem in Fig. 1A gezeigten System ist es leicht, das Recht, die CPU zu verwenden, der virtuellen Maschine mit höherer Priorität zuzuordnen, da alle Eingabe/Ausgabe-Verarbeitungen zuerst dem Überwacher virtueller Maschinen 1a gemeldet werden, und es reicht aus, wenn die virtuelle Maschine mit niedrigerer Priorität das Recht, die CPU zu verwenden, an den Überwacher virtueller Maschinen 1a zurückgibt.
  • Fig. 1B zeigt eine Computervorrichtung zum Vorsehen einer Vielzahl von virtuellen Maschinen, von denen angenommen werden kann, daß sie enthalten: wenigstens eine zentrale Verarbeitungseinheit; ein Überwachungsmittel, das mit den zentralen Verarbeitungseinheiten operativ verbunden ist, zum Bewirken, daß die verschiedenen virtuellen Maschinen auf der (den) zentralen Verarbeitungseinheit(en) auf Zeitteilungs basis laufen; ein Eingabe/Ausgabe-Mittel, das als Reaktion auf ein Eingabe/Ausgabe-Ereignis betriebsfähig ist, welches eine der virtuellen Maschinen beeinflußt, um eine Eingabe/Ausgabe-Unterbrechungsanforderung zu erzeugen, die die betreffende virtuelle Maschine bezeichnet; und ein Entscheidungsmittel, das mit dem Eingabe/Ausgabe-Mittel verbunden ist, zum Empfangen solch einer Eingabe/Ausgabe-Unterbrechungsanforderung, und einen ersten Zustand hat, bei dem die empfangene Anforderung akzeptiert wird, falls sie die virtuelle Maschine bezeichnet, die gegenwärtig läuft, aber nicht akzeptiert wird, falls sie irgendeine nichtlaufende virtuelle Maschine bezeichnet. Dieses virtuelle Computersystem behandelt Eingabe/Ausgabe-Unterbrechungen, die an die virtuellen Maschinen adressiert sind, ohne das Eingreifen des Überwachers virtueller Maschinen. Bei der in Fig. 1B gezeig ten Konfiguration ist es jedoch unmöglich, gerade jene Eingabe/Ausgabe-Unterbrechungen, die an virtuelle Maschinen gerichtet sind, die Priorität gegenüber der zur Zeit laufenden virtuellen Maschine haben, von anderen Eingabe/Ausgabe- Unterbrechungen zu unterscheiden, um den Überwacher virtueller Maschinen nur über die Eingabe/Ausgabe-Unterbrechungen zu informieren, die an die virtuellen Maschinen mit höherer Priorität adressiert sind. Dies wird unter Bezugnahme auf Fig. 1B weiter beschrieben.
  • Es wird nun angenommen, daß ein Eingabe/Ausgabe-Ereignis #1, das an die virtuelle Maschine #D adressiert ist, in einer Eingabe/Ausgabe-Einheit 5 auftritt. Ein Kanalprozessor (CHP) 4 (der als Eingabe/Ausgabe-Mittel dient) unterscheidet das Eingabe/Ausgabe-Ereignis #1 und greift auf einen entsprechenden Subkanal-(SCH)-Bereich 22 zu, der in einer Hauptspeichervorrichtung (MS) 2 vorgesehen ist. Domänenidentifikations-(DMID)-Daten 22a, die die virtuelle Maschine #D bezeichnen, werden aus einem spezifischen Bereich des Subkanalbereiches 22, der die virtuelle Maschine #D betrifft, ausgelesen und dann zu einem Unterbrechungswarteregister 30b einer Unterbrechungshardware (IHW) 30 (die als Entscheidungsmittel dient) übertragen, die in einer Steuereinheit (MCU) 3 gebildet ist. Die übertragenen Domänenidentifikationsdaten 22a werden in einen Bereich geschrieben, der den Domänenidentifikationsdaten 22a (der virtuellen Maschine #D) entspricht. Ein Überwacher virtueller Maschinen (VMM) 20 (der als Überwachungsmittel dient) läuft in der CPU 10, wie später beschrieben wird, mit den virtuellen Maschinen auf Zeitteilungsbasis. So wird der Überwacher virtueller Maschinen 20 durch seine eigenen entsprechenden Domäneninformationsdaten identifiziert. Im folgenden werden die Domänenidentif ikationsdaten als Domänenkennzeichen bezeichnet.
  • Wenn der Überwacher virtueller Maschinen (VMM) 20 andererseits die virtuelle Maschine #D unter Verwendung einer vorbestimmten Instruktion laufen läßt, greift er auf einen Steuerblock 23 zu, der dem Domänenkennzeichen (DMID) entspricht, welches die virtuelle Maschine #D bezeichnet. Dann werden Maskeninformationen 23b, die in einem spezifischen Bereich des Steuerblocks 23 gespeichert sind, aus ihm ausgelesen und danach zu einem Unterbrechungsmaskenregister 30a übertragen, das in der Unterbrechungshardware 30 gebildet ist. Dann werden die übertragenen Maskeninformationen 23b in einen entsprechenden Bereich des Unterbrechungsmaskenregisters 30a geschrieben. Dabei wird '0' in die Bereiche des Unterbrechungsmaskenregisters 30a geschrieben, die virtuellen Maschinen entsprechen, die gerade nicht laufen. Wenn das Domänenkennzeichen, das die virtuelle Maschine #D bezeichnet, in das Unterbrechungsmaskenregister 30a geschrieben wird, vergleicht die Unterbrechungshardware 30 die Maskeninformationen bezüglich der virtuellen Maschine #D mit den entsprechenden Warteinformationen des Unterbrechungswarteregisters 30b. Wenn beide Informationen miteinander koinzidieren, wird die virtuelle Maschine #D sofort aktiviert.
  • Aus der obigen Beschreibung geht hervor, daß es unmöglich ist, eine virtuelle Maschine laufen zu lassen, die gerade nicht läuft, bevor eine Eingabe/Ausgabe-Instruktion, die an diese virtuelle Maschine adressiert ist, durch den Überwacher virtueller Maschinen 20 abgefertigt ist, selbst wenn die gewünschte virtuelle Maschine, die gerade nicht läuft, gegenüber einer virtuellen Maschine, die zur Zeit läuft, Priorität besitzt.
  • Gemäß der vorliegenden Erfindung ist die Computervorrichtung mit einem Prioritätsbezeichnungsmittel versehen, das während des Laufens einer der virtuellen Maschinen betriebsfähig ist, um eine spezifische Instruktion zu erzeugen, die eine weitere, selektierte der virtuellen Maschinen, die gegenwärtig nicht läuft, als prioritätshabend gegenüber der gegenwärtig laufenden Maschine bezeichnet; und dadurch gekennzeichnet, daß das Entscheidungsmittel als Reaktion auf die genannte spezifische Instruktion von dem ersten Zustand auf einen zweiten Zustand umschaltbar ist, bei dem die empfangene Eingabe/Ausgabe-Unterbrechungsanforderung akzeptiert wird, falls sie die weitere, selektierte virtuelle Maschine bezeichnet, wobei solch eine Akzeptanz durch ein Unterbrechungsakzeptierungssignal angegeben wird, das durch das Entscheidungsmittel erzeugt wird; welches Überwachungsmittel mit dem Entscheidungsmittel verbunden ist, zum Empfangen des Unterbrechungsakzeptierungssignals von ihm, und als Reaktion auf den Empfang jenes Signals operativ ist, um zu bewirken, daß die zentrale(n) Verarbeitungseinheit(en) beginnt (beginnen), die weitere, selektierte virtuelle Maschine laufen zu lassen.
  • Solch eine Vorrichtung kann ein virtuelles Computersystem vorsehen, das in der Lage ist, eine Eingabe/Ausgabe- Unterbrechung, die an eine virtuelle Maschine adressiert ist, die gegenüber einer virtuellen Maschine, die gerade läuft, Priorität besitzt, vorzugsweise zu akzeptieren.
  • Als Beispiel wird nun Bezug auf die beiliegenden Zeichnungen genommen, in denen:
  • Fig. 1A ein Blockdiagramm eines herkömmlichen virtuellen Computersystems ist;
  • Fig. 1B ein Blockdiagramm eines anderen herkömmlichen virtuellen Computersystems ist;
  • Fig. 2 ein Blockdiagramm eines virtuellen Computersystems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist;
  • Fig. 3 ein Diagramm ist, das ein Format einer spezifischen Instruktion zeigt;
  • Fig. 4 ein Diagramm ist, das ein Format eines Steuerblocks zeigt; und
  • Fig. 5 ein Blockdiagramm einer zweiten bevorzugten Ausführungsform der vorliegenden Erfindung ist.
  • Unter Bezugnahme auf Fig. 2, 3 und 4, in denen jene Teile, die dieselben wie in Fig. 1B sind, mit denselben Bezugszeichen versehen sind, erfolgt eine Beschreibung einer bevorzugten Ausführungsform der vorliegenden Erfindung. Vor dem Laufen einer virtuellen Maschine (zum Beispiel #A) führt der Überwacher virtueller Maschinen (Prioritätsbezeichnungsmittel) 20 in einer CPU 10 eine spezifische Instruktion (MGPRT) aus, die einen Operanden hat, der eine virtuelle Maschine (#A) bezeichnet, die gegenüber einer virtuellen Maschine (#B), die gerade läuft, Priorität besitzt. Dadurch informiert der Überwacher virtueller Maschinen 20 die Unterbrechungshardware (das Entscheidungsmittel) 30 über die Beziehung hinsichtlich der Prioritätsreihenfolge zwischen den virtuellen Maschinen #A und #B. Dadurch wird der Bereich des Maskenregisters 30a, der der virtuellen Maschine 30A entspricht, "geöffnet", d. h., die Maskeninformationen, die in jenem Bereich gespeichert sind, haben einen "offenen Wert". Das heißt, die virtuelle Maschine #A ist in einem Zustand, in dem sie die Unterbrechung akzeptieren kann. Es sei erwähnt, daß in dem herkömmlichen System, das in Fig. 1B gezeigt ist, alle Maskenregisterbereiche geschlossen werden, außer dem Maskenregisterbereich bezüglich einer virtuellen Maschine, die gerade läuft, d. h., diese Bereiche speichern jeweils einen "geschlossenen Wert" der Maskeninformationen. In diesem Zustand (erster Zustand) sind jegliche Unterbrechungen, die an alle virtuellen Maschinen gerichtet sind, außer an die virtuelle Maschine, die gerade läuft, inakzeptabel.
  • Wenn eine Eingabe/Ausgabe-Unterbrechung, die an die virtuelle Maschine #A adressiert ist, dem Kanalprozessor (Eingabe/Ausgabe-Mittel) 4 zugeführt wird, während die virtuelle Maschine #B läuft, wird das Domänenkennzeichen (Unterbrechungsereignis #1), das die virtuelle Maschine #A bezeichnet, zu dem Unterbrechungswarteregister 30b übertragen. Dann wird das Unterbrechungsereignis #1 in einen entsprechenden Bereich des Unterbrechungswarteregisters 30b geschrieben. Der Inhalt der Bereiche des Unterbrechungswar teregisters 30b und des Maskenregisters 30a, das der virtuellen Maschine #A entspricht, wird aus ihnen ausgelesen und dann durch eine betreffende Arithmetik-Logik-Einheit (ALU), die in einer ALU-Gruppe 31 vorgesehen ist, miteinander verglichen. Jede ALU der ALU-Gruppe 31 fungiert als UND- Gatter. Wenn Daten in einem der Bereiche des Unterbrechungswarteregisters 30b mit Daten in dem entsprechenden Bereich des Maskenregisters 30a koinzidieren, gibt die entsprechende ALU die Daten aus, die in dem betreffenden Bereich des Unterbrechungswarteregisters 30b gespeichert sind. Die Ausgaben von den ALUs werden einer verdrahteten ODER-Operation unterzogen, so daß ein resultierendes Signal INS (Domänenkennzeichen) von der ALU-Gruppe 31 einer ALU 11b zugeführt wird, die in einer CPU 10 vorgesehen ist, die ein inneres Register 11a hat. Das Domänenkennzeichen der virtuellen Maschine, die gerade läuft, ist in dem inneren Register lla der CPU 10 gespeichert. Die ALU 11b erzeugt ein Unterbrechungsakzeptierungssignal IAS, wenn das Domänenkennzeichen von der ALU-Gruppe 31 nicht mit den Daten von dem inneren Register 11a komzidiert. Es sei erwähnt, daß dann, wenn das Signal INS von der ALU-Gruppe 31 zugeführt wird, die virtuelle Maschine, die durch die spezifische Instruktion MGPRT spezifiziert ist, gegenüber der virtuellen Maschine, die gerade läuft, immer Priorität besitzt. Dann wird das Unterbrechungsakzeptierungssignal IAS zu dem Überwacher virtueller Maschinen 20 gesendet.
  • Es erfolgt eine weitere Beschreibung der Ausführungsform, die in Fig. 2 gezeigt ist. Jede virtuelle Maschine #A und #B läuft in der CPU 10 auf Zeitteilungsbasis, und Daten, die sie betreffen, werden in der Hauptspeichervorrichtung 2 gespeichert. Ähnlich läuft der Überwacher virtueller Maschinen (Überwachungsmittel) 20 in der CPU auf Zeitteilungsbasis mit den virtuellen Maschinen #A und #B, und Daten, die ihn betreffen, werden in der Hauptspeichervorrichtung 2 gespeichert. Wenn eine Eingabe/Ausgabe-Unterbrechung dem Kanalprozessor 4 zugeführt wird, greift er, wie zuvor beschrieben, automatisch auf einen entsprechenden Subkanal zu (der Einfachheit halber nicht gezeigt), der in der Hauptspeichervorrichtung 2 gebildet ist, und schreibt das darin gespeicherte Domänenkennzeichen in einen entsprechenden Bereich des Unterbrechungswarteregisters 30b. Dadurch wird die Anforderung zur Unterbrechung für die adressierte virtuelle Maschine erzeugt.
  • Nun wird angenommen, daß die virtuelle Maschine #B in der CPU 10 gerade läuft. Der Einfachheit halber sind zwei virtuelle Maschinen #A und #B vorgesehen. Der Überwacher virtueller Maschinen 20 fertigt die virtuelle Maschine #B ab, wie zuvor beschrieben, und greift auf einen entsprechenden der Steuerblöcke 23 zu. Dann liest der Überwacher virtueller Maschinen 20 Maskeninformationen 23b für die virtuelle Maschine #B und schreibt dieselben in den entsprechenden Speicherbereich des Maskenregisters 30a.
  • Falls die zuvor erwähnte spezifische Instruktion (MGPRT) von dem Überwacher virtueller Maschinen 20 noch nicht ausgegeben worden ist, sind Daten '0', die im voraus in den Bereich des Maskenregisters 30a geschrieben worden sind, der der virtuellen Maschine #A entspricht, noch in jenem Bereich des Maskenregisters 30a vorhanden (das Entscheidungsmittel 30 ist noch in dem zuvor erwähnten ersten Zustand). Demzufolge wird in diesem Zustand kein Eingabe/Ausgabe-Unterbrechungsereignis akzeptiert, das an die virtuelle Maschine #A gerichtet ist. Wenn somit ein Eingabe/Ausgabe-Unterbrechungsereignis angefordert wird, das an die virtuelle Maschine #A adressiert ist, während die virtuelle Maschine #B läuft, wird diese Anforderung in dem entsprechenden Bereich des Unterbrechungswarteregisters 30b gehalten, das in der Unterbrechungshardware 30 vorgesehen ist.
  • Andererseits ist in der Ausführungsform von Fig. 2, wie zuvor beschrieben, die spezifische Instruktion MGPRT definiert, die für die virtuelle Maschine, die gerade läuft, Priorität besitzt. Ein Format der spezifischen Instruktion ist in Fig. 3 gezeigt. Die spezifische Instruktion umfaßt zum Beispiel 31 Bits und hat ein offenes Ende, das aus den Adressenbits B2 und D2 gebildet ist. Der Überwacher virtueller Maschinen 20 führt die spezifische Instruktion aus und greift auf einen Steuerblock 23 zu, der durch den Operanden der spezifischen Instruktion bezeichnet wird. Ein Steuerblock ist für jede virtuelle Maschine vorgesehen.
  • Fig. 4 zeigt ein Format von jedem Steuerblock. Der Steuerblock, der das Bezugszeichen 23 hat, besitzt das zuvor erwähnte Domänenkennzeichen 23a. Wenn der gezeigte Steuerblock die virtuelle Maschine #A betrifft, bezeichnet das Domänenkennzeichen 23a die virtuelle Maschine #A. Ferner enthält der Steuerblock 23 ein Mehrzweckregister (GR) 23c, ein Steuerregister (CR) 23d und ein Gleitkommaregister (FPR) 23e. Die Maskeninformationen 23b sind in dem Steuerregister 23d vorgesehen.
  • Wenn durch die spezifische Instruktion MGPRT auf den Steuerblock 23 zugegriffen wird, werden die Maskeninformationen aus ihm ausgelesen und dann in den Bereich des Maskenregisters 30a geschrieben, der durch das Domänenkennzeichen 23a bezeichnet ist, das in dem Steuerblock 23 gehalten wird. Sobald die Maskeninformationen in das Maskenregister 30a geschrieben sind, wodurch die Unterbrechungshardware (Entscheidungsmittel) 30 auf einen zweiten Zustand umgestellt wird, werden sie gehalten, wie sie sind, bis die bezeichnete virtuelle Maschine das Recht erhält, die CPU 10 zu verwenden, oder die spezifische Instruktion MGPRT wird an. eine andere virtuelle Maschine ausgegeben. Es sei erwähnt, daß sowohl das Maskenregister 30a als auch das Unterbrechungswarteregister 30b Bereiche haben, die in der Anzahl den virtuellen Maschinen gleich sind. Wenn zum Beispiel fünf virtuelle Maschinen vorgesehen sind, hat jedes der Register 30a und 30b fünf Bereiche. In diesem Fall ist es möglich, Maskeninformationen, die mehr als eine virtuelle Maschine betreffen, in die entsprechenden Bereiche des Maskenregisters 30a durch die spezifische Instruktion MGPRT zu schreiben. Jedes der Register 30a und 30b hat ferner einen Bereich, der dem Überwacher virtueller Maschinen 20 zugeordnet ist, wie später beschrieben wird.
  • Nun wird angenommen, daß bei diesem Beispiel die spezifische Instruktion MGPRT, die durch den Überwacher virtueller Maschinen 20 erzeugt wird, für den Steuerblock bestimmt ist, der der virtuellen Maschine #A zugeordnet ist. Die Maskeninformationen werden aus dem Steuerblock 23, der der virtuellen Maschine #A zugeordnet ist, ausgelesen und dann in den entsprechenden Bereich des Maskenregisters 30a geschrieben (das Entscheidungsmittel 30 wird dadurch auf den zuvor erwähnten zweiten Zustand geschaltet). Es sei erwähnt, daß es möglich ist, die Maskeninformationen in den Bereich des Maskenregisters 30a zu schreiben, der der virtuellen Maschine #A entspricht, selbst wenn die virtuelle Maschine #B gerade läuft. Bei dem oben erwähnten herkömmlichen system wird solch ein Schreiben der Maskeninformationen bezüglich der virtuellen Maschine #A verhindert.
  • Der Inhalt des Maskenregisters 30a und des Unterbrechungswarteregisters 30b wird immer miteinander verglichen, unabhängig von dem Status der CPU 10. Das heißt, die Bits, die in die Bereiche der Register 30a und 30b geschrieben sind, die die virtuelle Maschine #A betreffen, werden miteinander verglichen, und ähnlich werden die Bits, die i«die Bereiche der Register 30a und 30b geschrieben sind, die die virtuelle Maschine #B betreffen, miteinander verglichen. Diese Vergleichsoperation erfolgt durch das Ausführen einer logischen UND-Operation an den verglichenen Bits. Wenn das Vergleichsresultat (die logische UND-Operation) einen anderen Wert als Null hat, erzeugt die Unterbrechungshardware 30 das Signal INS, welches das Domänenkennzeichen angibt, das die CPU 10 instruiert, eine Unterbrechungsfolge auszuführen.
  • Es sei erwähnt, daß der Überwacher virtueller Maschinen durch ein Programm gebildet wird, das durch die CPU 10 ausgeführt wird, und gemeinsam mit den virtuellen Maschinen #A und #B gesteuert wird. So haben das Maskenregister 30a und das Unterbrechungswarteregister 30b jeweils einen Bereich, der für den Überwacher virtueller Maschinen 20 vorgesehen ist.
  • Die CPU 10 hat, wie zuvor beschrieben, das innere Register 11a und die ALU 11b. Das innere Register hat Informationen darüber, was von den virtuellen Maschinen #A und #B und dem Überwacher virtueller Maschinen 20 gerade läuft. Wenn die Unterbrechungsfolge als Reaktion auf das Signal INS aktiviert wird, vergleicht die ALU 11b der CPU 10 den Inhalt des inneren Registers 11a mit dem Signal INS, das von der Unterbrechungshardware 30 zugeführt wird. Wenn beide Signale (Domänenkennzeichen) miteinander komzidieren, wird die Anforderung der Unterbrechung, die in das Unterbrechungswarteregister 30b geschrieben wurde, auf herkömmliche Weise behandelt. Das heißt, diese Unterbrechung wird akzeptabel, wenn der Überwacher virtueller Maschinen 20 die gewünschte virtuelle Maschine abfertigt.
  • Wenn das Domänenkennzeichen von dem inneren Register 11a andererseits nicht mit dem Domänenkennzeichen von der Unterbrechungshardware 30 komzidiert, folgert die CPU 10 daraus, daß die Anforderung der Eingabe/Ausgabe-Unterbrechung von einer virtuellen Maschine (in diesem Fall #A), die gegenüber der virtuellen Maschine, die gerade läuft (in diesem Fall #B), Priorität besitzt, akzeptabel ist. Dann sichert die CPU 10 die Operationsumgebungen von ihr in dem Mehrzweckregister 23c, dem Steuerregister 23d und dem Gleit kommaregister 23e des Steuerblocks 23, der die virtuelle Maschine #B betrifft. Danach teilt die CPU 10 das Recht zur Verwendung der CPU 10 dem Überwacher virtueller Maschinen 20 zu.
  • Dann teilt der Überwacher virtueller Maschinen 20 das Recht zur Verwendung der CPU 10 sofort der virtuellen Maschine #A zu, so daß die virtuelle Maschine #A in eine Umgebung versetzt wird, in der sie die gewünschte Eingabe/Ausgabe-Unterbrechungsverarbeitung ausführen kann.
  • Unter Bezugnahme auf Fig. 5 erfolgt eine Beschreibung einer zweiten Ausführungsform der vorliegenden Erfindung. Gemäß der zweiten Ausführungsform ist die Funktion der Unterbrechungshardware 30 in einem Eingabe/Ausgabe-Prozessor vorgesehen. Die zweite Ausführungsform enthält eine physikalische CPU 50 und einen Eingabe/Ausgabe-Prozessor (Eingabe/Ausgabe-Mittel) 60. Die CPU 50 enthält ein Register 51, einen Komparator 52, eine Verriegelung 53, ein Register 54, Signalleitungen 55 und 56 und eine CPU-Steuerschaltung 57. Das Register 51 speichert das Domänenkennzeichen einer virtuellen Maschine/des Überwachers virtueller Maschinen, die oder der in der physikalischen CPU 50 gerade läuft. Wenn die CPU 50 einen Zustandsübergang (Übertragung des Rechtes, die CPU 50 zu verwenden) zwischen dem Überwacher virtueller Maschinen und einer der virtuellen Maschinen, die in der CPU 50 gebildet sind, erzeugt, wird das Domänenkennzeichen des Überwachers virtueller Maschinen/der virtuellen Maschine in das Register 51 geschrieben. Der Wert, der in das Register 51 geschrieben wird, dient als Eingabe für den Komparator 52. Die Verriegelungsschaltung 53 speichert ein Eingabe/Ausgabe-Unterbrechungssignal 53a von dem Eingabe/Ausgabe-Prozessor 60. Das Eingabe/Ausgabe-Unterbrechungssignal 53a von dem Eingabe/Ausgabe-Prozessor 60 wird einer Signalleitung zugeführt, die mit einer entsprechenden CPU (CPU 50 in dem gezeigten Fall) verbunden ist. Das heißt, wenn das Eingabe/Ausgabe-Unterbrechungssignal 53a aktiviert wird, wird es auf einen logischen Wert '1' gesetzt. Das Register 54 speichert das Domänenkennzeichen einer virtuellen Maschine/des Überwachers virtueller Maschinen, das zusammen mit dem Eingabe/Ausgabe-Unterbrechungssignal 53a gesendet wird, so daß der Eingabe/Ausgabe-Prozessor 60 der CPU 50 mitteilt, welche der virtuellen Maschinen das erzeugte Eingabe/Ausgabe-Unterbrechungssignal 53a betrifft. Zum Beispiel ist ein anderes Eingabe/Ausgabe-Unterbrechungsereignis mit einer anderen Unterbrechungsleitung 53b verbunden. Der Eingabe/Ausgabe- Prozessor 60 sendet das Domänenkennzeichen nur dann zu dem Register 54, wenn ein Unterbrechungsereignis auftritt, das an eine der virtuellen Maschinen adressiert ist, die gerade läuft (spezifiziert durch die später beschriebenen Register 62 und 63), oder wenn ein Eingabe/Ausgabe-Unterbrechungsereignis auftritt, welches durch die spezifische Instruktion MGPRT bewirkt wird und an eine virtuelle Maschine mit höherer Priorität adressiert ist (spezifiziert durch ein Register 69). Die virtuelle Maschine, der zuvor Priorität gegenüber der virtuellen Maschine verliehen worden ist, die gerade läuft, läuft mit der gerade laufenden virtuellen Maschine nicht parallel. Somit sind Informationen, wie sie im Register 63 zum Bezeichnen der Entsprechung für die physikalische CPU 50 gespeichert sind, unnötig, wie später beschrieben wird.
  • Der Komparator 52 vergleicht das Domänenkennzeichen von dem Register 54 mit dem Domänenkennzeichen von dem Register 51. Wenn die Werte der zugeführten Domänenkennzeichen untereinander gleich sind, aktiviert der Komparator 52 die Signalleitung 55, die mit der CPU-Steuerschaltung 57 verbunden ist, so daß eine normale Eingabe/Ausgabe-Unterbrechung erzeugt wird. Wenn die Werte der Domänenkennzeichen andererseits untereinander nicht gleich sind, aktiviert der Komparator 52 die Signalleitung 56, so daß eine Eingabe/Ausgabe- Unterbrechung erzeugt wird, die durch die spezifische Instruktion MGPRT bewirkt wird. Der Komparator 52 führt die Vergleichsoperation nur aus, wenn das Signal von der Verriegelung 53 '1' ist. Die CPU-Steuerschaltung 57 sieht eine CPU-Operation vor, insbesondere eine Steuerprozedur zum Behandeln der Eingabe/Ausgabe-Unterbrechung.
  • Der Eingabe/Ausgabe-Prozessor 60 enthält Register 61, 62, 63 und 64, einen Registerstapel 65, eine Adressenschaltung 66, ein Datenregister 67, einen Eingabe/Ausgabe-Steuermikroprozessor (im folgenden einfach als Mikroprozessor bezeichnet) 68 und ein Register 69. Ein abgewandelter Wert der Maskeninformationen, die durch Ausführen einer Maskeninformationsveränderungsinstruktion in der CPU 50 erhalten wird, wird in das Register 61 geschrieben. Das Domänenkennzeichen, das für eine virtuelle Maschine oder den Überwacher virtueller Maschinen verwendet wird, die oder der nach der gegenwärtigen Zeit laufen soll, wird in das Register 62 in dem Fall geschrieben, wenn das Recht zur Verwendung der CPU 50 von dem Überwacher virtueller Maschinen auf eine der virtuellen Maschinen übertragen wird, die Maskenveränderungsinstruktion durch die CPU 50 ausgeführt wird, oder das Recht zur Verwendung der CPU 50 von einer gegenwärtig laufenden virtuellen Maschine auf den Überwacher virtueller Maschinen übertragen wird. Informationen, die in das Register 62 geschrieben sind, geben an, welche Maskeninformationen, die in dem Registerstapel 65 gespeichert sind, zur Eingabe/Ausgabe-Unterbrechungssteuerung in der CPU 50 ver wendet werden sollen und in welchen der Bereiche die Maskeninformationen, die in dem Register 61 gespeichert sind, geschrieben werden sollen.
  • Eine logische CPU-Nummer einer virtuellen Maschine oder des Überwachers virtueller Maschinen, die oder der nach der gegenwärtigen Zeit laufen soll, wird in das Register 62 in dem Fall geschrieben, wenn das Recht zur Verwendung der CPU 50 von dem Überwacher virtueller Maschinen auf eine der virtuellen Maschinen übertragen wird, die Maskenveränderungsinstruktion durch die CPU 50 ausgeführt wird, oder das Recht zur Verwendung der CPU 50 von einer gegenwärtig laufenden virtuellen Maschine auf den Überwacher virtueller Maschinen übertragen wird. Die logische CPU ist eine Operationseinheit des Überwachers virtueller Maschinen oder jeder virtuellen Maschine. Es sei erwähnt, daß keiner virtuellen Maschine im voraus gemeldet wird, welche der logischen CPUs verwendet wird, da es dem Überwacher virtueller Maschinen freisteht, zuvor dynamisch zu bestimmen, welche der logischen CPUs in welcher der physikalischen CPUs laufen soll. Das Unterbrechungssignal 53a von dem Eingabe/Ausgabe-Prozessor 60 wird zusammen mit Informationen bezüglich der Bezeichnung einer der physikalischen CPUs zugeführt. Somit ist es erforderlich, daß der Eingabe/Ausgabe-Prozessor 60 weiß, welche der virtuellen Maschinen in welcher der physikalischen CPUs gerade läuft. Informationen, die in das Register 63 geschrieben werden, geben an, welche Maskeninformationen, die in dem Registerstapel 65 gespeichert sind, zur Eingabe/Ausgabe-Unterbrechungssteuerung in der CPU 50 verwendet werden sollen und in welchen der Bereiche die Maskeninformationen, die in dem Register 61 gespeichert sind, zu schreiben sind.
  • Das Register 64 speichert Informationen, die angeben, ob das Recht zur Verwendung der CPU 50 zwischen dem Überwacher virtueller Maschinen und einer der virtuellen Maschinen übertragen worden ist, oder ob die Eingabe/Ausgabe-Unterbrechungsmaskeninformationsveränderungsinstruktion ausgeführt worden ist. Wenn das Recht zur Verwendung der CPU 50 zwischen dem Überwacher virtueller Maschinen und einer der virtuellen Maschinen übertragen worden ist, wird der Inhalt der Register 62 und 63 durch den Mikroprozessor 68 aus ihnen ausgelesen und dann in einen lokalen Bereich des Mikroprozessors 68 geschrieben, der für eine entsprechende der physikalischen CPUs vorgesehen ist. Wenn der Eingabe/Ausgabe-Prozessor 60 versucht, eine Eingabe/Ausgabe-Unterbrechung an die entsprechende der physikalischen CPUs auszuge ben, liest der Mikroprozessor 68 die Daten, die in dem entsprechenden lokalen Bereich von ihm gespeichert sind, und führt dem Adressengenerator 66 die ausgelesenen Daten zu. Dadurch werden die entsprechenden Maskeninformationen aus dem entsprechenden Bereich des Registerstapels 65 ausgelesen und dann durch das Register 67 dem Mikroprozessor 68 zugeführt. Danach bestimmt der Mikroprozessor 68, ob das Unterbrechungssignal 53a Eingeschaltet (aktiviert) werden soll. Wenn die Eingabe/Ausgabe-Unterbrechungsveränderungs instruktion ausgeführt wird, wird der Inhalt der Register 62 und 63 zur gleichen Zeit, zu der die Maskeninformationen in das Register 61 geschrieben werden, unter der Steuerung des Mikroprozessors 68 der Adressenschaltung 66 zugeführt. Dann wird der Inhalt des Registers 61 in einem entsprechenden Bereich des Registerstapels 65 gespeichert, der der logi schen CPU des laufenden Gastes in der physikalischen CPU 50 zugeordnet ist.
  • Der Registerstapel 65 speichert Werte von Maskeninformationen für alle logischen CPUs bezüglich aller virtuellen Maschinen/Überwacher. Die Adressenschaltung 66 führt dem Registerstapel 65 ein Adressensignal zu. Das Datenregister 67 speichert Daten, die von dem Registerstapel 65 ausgelesen wurden. Der Mikroprozessor 68 führt tatsächlich die Operation des Eingabe/Ausgabe-Prozessors 60 aus und hat einen Speicher, in dem ein Mikroprogramm gespeichert ist, und den zuvor erwähnten lokalen Bereich, in dem das Domänenkennzeichen der virtuellen Maschine/des Überwachers, die oder der gerade arbeitet, und die logische CPU-Nummer von ihnen gespeichert sind. Das Register 69 speichert das Domänenkennzeichen der virtuellen Maschine, der durch die CPU 50 Priorität gegenüber der virtuellen Maschine verliehen worden ist, die gerade läuft. Das Domänenkennzeichen wird in das Register 69 geschrieben, wenn die spezifische Instruktion MGPRT durch den CPU-Controller 57 ausgeführt wird. Register, die jeweils mit dem Register 69 identisch sind, sind für die physikalischen CPUs individuell vorgesehen. Selbst wenn derselben virtuellen Maschine durch eine Vielzahl von physikalischen CPUs eine höhere Priorität verliehen worden ist, wird eine gewisse Eingabe/Ausgabe-Unterbrechungsanforderung nicht mehr als einer der virtuellen Maschinen zugeführt. Das heißt, der Mikroprozessor 68 selektiert eine entsprechende der virtuellen Maschinen und führt derselben die Eingabe/Ausgabe-Unterbrechungsanforderung zu.
  • Die vorliegende Erfindung ist nicht auf die speziell beschriebenen Ausführungsformen begrenzt, und Veränderungen und Abwandlungen können vorgenommen werden, ohne den Schutzumfang der vorliegenden Erfindung zu verlassen, wie er in den beigefügten Ansprüchen definiert ist.

Claims (10)

1. Computervorrichtung, zum Vorsehen einer Vielzahl von virtuellen Maschinen, die enthält:
wenigstens eine zentrale Verarbeitungseinheit (10; 50);
ein Überwachungsmittel (20), das mit der (den) zentralen Verarbeitungseinheit(en) operativ verbunden ist, zum Bewirken, daß die verschiedenen virtuellen Maschinen auf der (den) zentralen Verarbeitungseinheit(en) auf Zeitteilungsbasis laufen;
ein Eingabe/Ausgabe-Mittel (4; 60), ,das als Reaktion auf ein Eingabe/Ausgabe-Ereignis betriebsfähig ist, das eine der virtuellen Maschinen beeinflußt, um eine Eingabel Ausgabe-Unterbrechungsanforderung zu erzeugen, die die betreffende virtuelle Maschine bezeichnet; und
ein Entscheidungsmittel (30, 11a, 11b; 51 bis 54), das mit dem Eingabe/Ausgabe-Mittel (4; 60) verbunden ist, zum Empfangen solch einer Eingabe/Ausgabe-Unterbrechungsanforderung, und einen ersten Zustand hat, bei dem die empfangene Anforderung akzeptiert wird, falls sie die virtuelle Maschine bezeichnet, die gegenwärtig läuft, aber nicht akzeptiert wird, falls sie irgendeine nichtlaufende virtuelle Maschine bezeichnet;
gekennzeichnet durch:
ein Prioritätsbezeichnungsmittel (20; 60), das während des Laufens einer der virtuellen Maschinen betriebsfähig ist, um eine spezifische Instruktion (MGPRT) zu erzeugen, die eine weitere, selektierte der virtuellen Maschinen, die gegenwärtig nicht läuft, als prioritätshabend gegenüber der gegenwärtig laufenden Maschine bezeichnet;
und dadurch, daß das Entscheidungsmittel (20; 60) als Reaktion auf die genannte spezifische Instruktion von dem ersten Zustand auf einen zweiten Zustand umschaltbar ist, bei dem die empfangene Eingabe/Ausgabe-Unterbrechungsanforderung akzeptiert wird, falls sie die weitere, selektierte virtuelle Maschine bezeichnet, wobei solch eine Akzeptanz durch ein Unterbrechungsakzeptierungssignal (IAS) angegeben wird, das durch das Entscheidungsmittel erzeugt wird;
welches Überwachungsmittel (20) mit dem Entscheidungsmittel (30, 11a, 11b; 51 bis 54) verbunden ist, zum Empfangen des Unterbrechungsakzeptierungssignals (IAS) von ihm, und als Reaktion auf den Empfang jenes Signals operativ ist, um zu bewirken, daß die zentrale(n) Verarbeitungseinheit(en) beginnt (beginnen), die weitere, selektierte virtuelle Maschine laufen zu lassen.
2. Vorrichtung nach Anspruch 1, bei der das Entscheidungsmittel (30, 11a, 11b) umfaßt:
ein Unterbrechungswarteregister (30b), das Bereiche hat, die jeweilig den virtuellen Maschinen entsprechen, und als Reaktion auf den Empfang solch einer Eingabe/Ausgabe-Unterbrechungsanforderung betriebsfähig ist, um ein Kennzeichen, das die virtuelle Maschine identifiziert, die in der Anforderung bezeichnet ist, in dem Bereich zu speichern, der jener bezeichneten virtuellen Maschine entspricht;
ein Maskenregister (30a), das Bereiche hat, die jeweilig den virtuellen Maschinen entsprechen, von welchen Bereichen jeder Maskeninformationen speichert, die von einem geschlossenen Wert, der dazu dient, das Kennzeichen der entsprechenden virtuellen Maschine zu maskieren, zu einem offenen Wert, der das betreffende Kennzeichen nicht mas kiert, veränderbar sind, wobei die Maskeninformationen in dem Bereich, der der gegenwärtig laufenden virtuellen Maschine entspricht, den offenen Wert haben und die Maskeninformationen in den anderen Bereichen des Maskenregisters den geschlossenen Wert haben, wenn das Entscheidungsmittel den ersten Zustand hat, und die Maskeninformationen in dem Bereich, der der weiteren, selektierten virtuellen Maschine entspricht, die in der spezifischen Instruktion bezeichnet ist, von dem geschlossenen Wert auf den offenen Wert verändert werden, wenn das Entscheidungsmittel auf den zweiten Zustand umgestellt wird;
ein erstes Logikmittel (31), das mit dem Unterbrechungswarteregister (30b) und dem Maskenregister (30a) verbunden ist und für jede virtuelle Maschine betriebsfähig ist, um zu bestimmen, ob das Kennzeichen, das in dem ent sprechenden Bereich des Unterbrechungswarte registers gespeichert ist, durch die Maskeninformationen, die in dem entsprechenden Bereich des Maskenregisters gespeichert sind, maskiert ist oder nicht, und, falls das Kennzeichen für irgendeine virtuelle Maschine nicht so maskiert ist, das betreffende Kennzeichen auszugeben;
ein inneres Register (11a) zum Speichern des Kennzeichens der gegenwärtig laufenden virtuellen Maschine; und ein zweites Logikmittel (11b), das mit dem ersten Logikmittel (31) und dem inneren Register (11a) verbunden ist, zum Bestimmen dessen, ob das Kennzeichen, das durch das erste Logikmittel ausgegeben wurde, mit dem Kennzeichen übereinstimmt, das in dem inneren Register gespeichert ist, und zum Erzeugen des Unterbrechungsakzeptierungssignals (IAS), wenn keine solche Übereinstimmung gefunden wird.
3. Vorrichtung nach Anspruch 2, bei der das innere Register (11a) in der zentralen Verarbeitungseinheit oder in einer der zentralen Verarbeitungseinheiten vorgesehen ist und das zweite Logikmittel (11b) durch die zentrale(n) Verarbeitungseinheit(en) implementiert wird.
4. Vorrichtung nach Anspruch 2 oder 3, ferner mit:
einem Speichermittel (23) zum Speichern, für jede virtuelle Maschine, der Maskeninformationen, die in dem entsprechenden Bereich des Maskenregisters (30a) zu speichern sind; und
einem Auslesemittel (20), das mit dem Speichermittel und dem Maskenregister verbunden ist, zum Auslesen aus dem Speichermittel der Maskeninformationen für eine der virtuellen Maschinen und Schreiben derselben in den entsprechenden Bereich des Maskenregisters.
5. Vorrichtung nach Anspruch 2, 3 oder 4, bei der der offene Wert der Maskeninformationen für jeden virtuellen Kanal mit dem Kennzeichen des betreffenden virtuellen Kanals identisch ist.
6. Vorrichtung nach Anspruch 1, bei der:
das Eingabe/Ausgabe-Mittel (60) die virtuelle Maschine in der erzeugten Eingabe/Ausgabe-Unterbrechungsanf orderung bezeichnet, indem auf das Entscheidungsmittel ein Kennzeichen angewendet wird, das die betreffende Maschine identifiziert, wobei solch ein Kennzeichen durch das Eingabe/Ausgabe-Mittel auf das Entscheidungsmittel nur angewendet wird, falls die Maschine, die durch das Eingabe/Ausgabe-Ereignis beeinflußt wird, die gegenwärtig laufende virtuelle Maschine oder die weitere, selektierte virtuelle Maschine ist, die durch die spezifische Instruktion als prioritätshabend gegenüber der gegenwärtig laufenden virtuellen Maschine bezeichnet wurde; und das Entscheidungsmittel umfaßt:
ein erstes Register (54) zum Speichern des Kennzeichens, das auf das Entscheidungsmittel durch das Eingabe/Ausgabe-Mittel angewendet wird;
ein zweites Register (51) zum Speichern des Kennzeichens der gegenwärtig laufenden virtuellen Maschine; ein drittes Register (53) zum Speichern eines Eingabe/Ausgabe-Unterbrechungssignals, das durch das Eingabe/Ausgabe-Mittel (60) als Reaktion auf solch ein Eingabe/Ausgabe-Ereignis erzeugt wird; und
ein Logikmittel (52), das mit den ersten, zweiten und dritten Registern (54, 51, 53) verbunden ist und durch das Eingabe/Ausgabe-Unterbrechungssignal aktiviert wird, das in dem dritten Register (53) gespeichert ist, um zu bestimmen, ob das Kennzeichen, das in dem ersten Register (54) gespeichert ist, mit dem Kennzeichen übereinstimmt oder nicht, das in dem zweiten Register (51) gespeichert ist, und das Unterbrechungsakzeptierungssignal (IAS) zu erzeugen, falls das Resultat der Bestimmung ergibt, daß die zwei Kennzeichen nicht übereinstimmen.
7. Vorrichtung nach Anspruch 6, bei der das Logikmit tel (52) ein UND-Gatter (52) umfaßt, das einen ersten Eingangsanschluß zum Empfangen des Kennzeichens hat, das in dem ersten Register (54) gespeichert ist, und einen zweiten Eingangsanschluß, der zum Empfangen des Kennzeichens verbunden ist, das in dem zweiten Register (51) gespeichert ist.
8. Vorrichtung nach Anspruch 6 oder 7, bei der die ersten, zweiten und dritten Register (54, 51, 53) und das Logikmittel (52) in der (den) zentralen Verarbeitungseinheit(en) (50) vorgesehen sind.
9. Vorrichtung nach irgendeinem vorhergehenden Anspruch, ferner mit einem Speichermittel (23c, 23d, 23e) zum Speichern von Daten bezüglich der gegenwärtig laufenden virtuellen Maschine und zum Sichern jener Daten, wenn das Recht zur Verwendung der zentralen Verarbeitungseinheit(en) auf die weitere, selektierte virtuelle Maschine im Anschluß an die Akzeptierung der Eingabe/Ausgabe-Unterbrechungsanforderung durch das Entscheidungsmittel übertragen wird.
10. Vorrichtung nach irgendeinem vorhergehenden Anspruch, bei der die virtuellen Maschinen (#A, #B) auf einer Vielzahl von zentralen Verarbeitungseinheiten laufen.
DE69032334T 1989-02-09 1990-02-07 Virtuelles Computersystem mit Ein-/Ausgabeunterbrechungssteuerung Expired - Fee Related DE69032334T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1030415A JPH02208740A (ja) 1989-02-09 1989-02-09 仮想計算機制御方式

Publications (2)

Publication Number Publication Date
DE69032334D1 DE69032334D1 (de) 1998-07-02
DE69032334T2 true DE69032334T2 (de) 1998-09-24

Family

ID=12303315

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69032334T Expired - Fee Related DE69032334T2 (de) 1989-02-09 1990-02-07 Virtuelles Computersystem mit Ein-/Ausgabeunterbrechungssteuerung

Country Status (8)

Country Link
US (1) US5361375A (de)
EP (1) EP0382505B1 (de)
JP (1) JPH02208740A (de)
KR (1) KR920010978B1 (de)
AU (1) AU613823B2 (de)
CA (1) CA2009555C (de)
DE (1) DE69032334T2 (de)
ES (1) ES2119739T3 (de)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992006057A1 (fr) * 1990-10-03 1992-04-16 Fujitsu Limited Systeme servant a commander l'emission d'instructions d'entree/sortie dans un systeme de traitement de donnees
JPH0776951B2 (ja) * 1990-10-30 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方
JP2870254B2 (ja) * 1991-10-02 1999-03-17 日本電気株式会社 仮想計算機の入出力割り込み処理方式
US5572694A (en) * 1992-11-25 1996-11-05 Fujitsu Limited Virtual system for detecting access paths belonging to same group from plurality of access paths to reach device designated by command with reference to table
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
JP2900767B2 (ja) * 1993-09-20 1999-06-02 株式会社日立製作所 仮想計算機システムの仮想計算機走行時間間隔制御方式
JPH07281925A (ja) * 1994-04-06 1995-10-27 Fujitsu Ltd マルチプロセッサシミュレーション装置
JP3657665B2 (ja) * 1995-02-14 2005-06-08 富士通株式会社 共用メモリに結合される複数の計算機システム及び共用メモリに結合される複数の計算機システムの制御方法
US5812823A (en) * 1996-01-02 1998-09-22 International Business Machines Corporation Method and system for performing an emulation context save and restore that is transparent to the operating system
KR100263030B1 (ko) * 1996-01-26 2000-08-01 윤종용 중앙처리장치 구동 주파수 자동 선택 장치 및 그 제어방법
US5923900A (en) * 1997-03-10 1999-07-13 International Business Machines Corporation Circular buffer with n sequential real and virtual entry positions for selectively inhibiting n adjacent entry positions including the virtual entry positions
US5987537A (en) * 1997-04-30 1999-11-16 Compaq Computer Corporation Function selector with external hard wired button array on computer chassis that generates interrupt to system processor
GB2327784B (en) * 1997-07-28 2002-04-03 Microapl Ltd A method of carrying out computer operations
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US6813766B2 (en) * 2001-02-05 2004-11-02 Interland, Inc. Method and apparatus for scheduling processes based upon virtual server identifiers
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US7272831B2 (en) 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7251814B2 (en) * 2001-08-24 2007-07-31 International Business Machines Corporation Yield on multithreaded processors
US7428485B2 (en) * 2001-08-24 2008-09-23 International Business Machines Corporation System for yielding to a processor
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318235B2 (en) 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128528A1 (en) * 2002-12-31 2004-07-01 Poisner David I. Trusted real time clock
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7000051B2 (en) * 2003-03-31 2006-02-14 International Business Machines Corporation Apparatus and method for virtualizing interrupts in a logically partitioned computer system
US7281075B2 (en) * 2003-04-24 2007-10-09 International Business Machines Corporation Virtualization of a global interrupt queue
US7130949B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
CA2525578A1 (en) * 2003-05-15 2004-12-02 Applianz Technologies, Inc. Systems and methods of creating and accessing software simulated computers
US7694301B1 (en) * 2003-06-27 2010-04-06 Nathan Laredo Method and system for supporting input/output for a virtual machine
US8079034B2 (en) 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7287197B2 (en) 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7783779B1 (en) * 2003-09-19 2010-08-24 Vmware, Inc Storage multipath management in a virtual computer system
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7177967B2 (en) 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7636844B2 (en) 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7356735B2 (en) 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7962909B1 (en) * 2004-05-11 2011-06-14 Globalfoundries Inc. Limiting guest execution
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US7305592B2 (en) 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7797699B2 (en) * 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US9361114B1 (en) * 2005-12-06 2016-06-07 Azul Systems, Inc. Instruction based interrupt masking for managing interrupts in a computer environment
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7958506B2 (en) * 2006-06-22 2011-06-07 Intel Corporation Time sliced interrupt processing on virtualized platform
US7987464B2 (en) * 2006-07-25 2011-07-26 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
US20080034193A1 (en) * 2006-08-04 2008-02-07 Day Michael N System and Method for Providing a Mediated External Exception Extension for a Microprocessor
US8739156B2 (en) * 2007-07-24 2014-05-27 Red Hat Israel, Ltd. Method for securing the execution of virtual machines
US8104083B1 (en) * 2008-03-31 2012-01-24 Symantec Corporation Virtual machine file system content protection system and method
US8504752B2 (en) * 2008-06-24 2013-08-06 Panasonic Corporation Virtual machine control device, virtual machine control program, and virtual machine control circuit for managing interrupts of plural virtual machines
GB2462258B (en) * 2008-07-28 2012-02-08 Advanced Risc Mach Ltd Interrupt control for virtual processing apparatus
US9450960B1 (en) 2008-11-05 2016-09-20 Symantec Corporation Virtual machine file system restriction system and method
US8234432B2 (en) * 2009-01-26 2012-07-31 Advanced Micro Devices, Inc. Memory structure to store interrupt state for inactive guests
JP2012003478A (ja) * 2010-06-16 2012-01-05 Mitsubishi Electric Corp 割込み制御装置
US9009368B2 (en) 2012-10-23 2015-04-14 Advanced Micro Devices, Inc. Interrupt latency performance counters
US9378162B2 (en) 2013-05-21 2016-06-28 Arm Limited Handling and routing interrupts to virtual processors
US9858101B2 (en) * 2014-11-13 2018-01-02 Red Hat Israel, Ltd. Virtual machine input/output thread management

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001783A (en) * 1975-03-26 1977-01-04 Honeywell Information Systems, Inc. Priority interrupt mechanism
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
US4524415A (en) * 1982-12-07 1985-06-18 Motorola, Inc. Virtual machine data processor
US4689739A (en) * 1983-03-28 1987-08-25 Xerox Corporation Method for providing priority interrupts in an electrophotographic machine
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4736318A (en) * 1985-03-01 1988-04-05 Wang Laboratories, Inc. Data processing system having tunable operating system means
US4734882A (en) * 1985-04-01 1988-03-29 Harris Corp. Multilevel interrupt handling scheme
US4835685A (en) * 1985-05-06 1989-05-30 Computer X, Inc. Virtual single machine with message-like hardware interrupts and processor exceptions
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
JPS6258341A (ja) * 1985-09-03 1987-03-14 Fujitsu Ltd 入出力割込処理方式
JPS62184544A (ja) * 1986-02-10 1987-08-12 Nec Corp 仮想計算機システム
JPS63182749A (ja) * 1987-01-26 1988-07-28 Nec Corp 計算機システムのタイマ制御装置
JPS6417129A (en) * 1987-07-10 1989-01-20 Nippon Telegraph & Telephone Control system for input/output interruption of virtual computer
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5129064A (en) * 1988-02-01 1992-07-07 International Business Machines Corporation System and method for simulating the I/O of a processing system
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US4914583A (en) * 1988-04-13 1990-04-03 Motorola, Inc. Method of indicating processes resident within a cell of a data processing system
US4985831A (en) * 1988-10-31 1991-01-15 Evans & Sutherland Computer Corp. Multiprocessor task scheduling system

Also Published As

Publication number Publication date
AU4922490A (en) 1990-08-16
JPH02208740A (ja) 1990-08-20
DE69032334D1 (de) 1998-07-02
US5361375A (en) 1994-11-01
CA2009555A1 (en) 1990-08-09
KR920010978B1 (ko) 1992-12-26
EP0382505B1 (de) 1998-05-27
CA2009555C (en) 1999-01-19
EP0382505A2 (de) 1990-08-16
KR900013403A (ko) 1990-09-05
ES2119739T3 (es) 1998-10-16
EP0382505A3 (de) 1992-06-03
AU613823B2 (en) 1991-08-08

Similar Documents

Publication Publication Date Title
DE69032334T2 (de) Virtuelles Computersystem mit Ein-/Ausgabeunterbrechungssteuerung
DE60015395T2 (de) Speicher, der zwischen verarbeitenden threads geteilt ist
DE69331448T2 (de) Dataprozessor mit einem Cachespeicher
DE69023018T2 (de) Prozessor-Unterbrechungssteuerung.
DE3689287T2 (de) Datenverarbeitungsgerät.
DE3586359T2 (de) System und verfahren zum durchfuehren von ein-/ausgabeoperationen fuer ein virtuelles system.
DE68927492T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten
DE2430127C2 (de) Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer
DE3785897T2 (de) Steuervorrichtung zum vorabruf von befehlen.
DE68928677T2 (de) Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle
DE3750306T2 (de) System zum Gewährleisten der logischen Unversehrtheit von Daten.
DE2936932C2 (de) Kanaladressen-Steuervorrichtung in einer virtuellen Maschinenanordnung
DE69630126T2 (de) Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
DE3851488T2 (de) Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor.
DE69230462T2 (de) Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE69807729T2 (de) Threadumschaltungssteuerung in einem multithreadprozessorsystem
DE69701141T2 (de) Multithreaded mikroprozessor ausgestaltet zur ausführung von unterbrechungsverarbeitungsroutinen als threads
DE3685863T2 (de) Rechnersystem zur steuerung virtueller maschinen.
DE3852928T2 (de) Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen.
DE2414311C2 (de) Speicherschutzeinrichtung
DE69305366T2 (de) System und verfahren zum kennzeichnen von befehlen zur steuerung der befehlsausführung
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE10297166T5 (de) Mechanismus zur Interrupt-Abwicklung in Computersystemen, welche die gleichzeitige Ausführung mehrerer Threads unterstützen
DE112010005821T5 (de) Kontextwechsel

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee