DE69032334T2 - Virtuelles Computersystem mit Ein-/Ausgabeunterbrechungssteuerung - Google Patents
Virtuelles Computersystem mit Ein-/AusgabeunterbrechungssteuerungInfo
- 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
Links
- 238000012545 processing Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000000873 masking effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 238000004886 process control Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task 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.
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)
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)
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 |
-
1989
- 1989-02-09 JP JP1030415A patent/JPH02208740A/ja active Pending
-
1990
- 1990-02-07 ES ES90301287T patent/ES2119739T3/es not_active Expired - Lifetime
- 1990-02-07 EP EP90301287A patent/EP0382505B1/de not_active Expired - Lifetime
- 1990-02-07 DE DE69032334T patent/DE69032334T2/de not_active Expired - Fee Related
- 1990-02-07 AU AU49224/90A patent/AU613823B2/en not_active Ceased
- 1990-02-08 CA CA002009555A patent/CA2009555C/en not_active Expired - Fee Related
- 1990-02-09 KR KR1019900001611A patent/KR920010978B1/ko not_active IP Right Cessation
-
1993
- 1993-05-24 US US08/065,685 patent/US5361375A/en not_active Expired - Lifetime
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 |