JPH0290331A - Interprocessor communication instruction processing device for virtual computer system - Google Patents
Interprocessor communication instruction processing device for virtual computer systemInfo
- Publication number
- JPH0290331A JPH0290331A JP63240853A JP24085388A JPH0290331A JP H0290331 A JPH0290331 A JP H0290331A JP 63240853 A JP63240853 A JP 63240853A JP 24085388 A JP24085388 A JP 24085388A JP H0290331 A JPH0290331 A JP H0290331A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- virtual
- cpu
- inter
- state information
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Abstract] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、仮想計算機システムに関し、特に、マルチプ
ロセッサ構成の仮想側算機において発行されるプロセッ
サ間通信命令の処理に関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a virtual computer system, and particularly to processing of inter-processor communication commands issued in a virtual computer having a multiprocessor configuration.
仮想計算機システム(以後VMSと略記)においては、
1台の実射算機が時分割的に制御されて、異なるタイム
スロットにおいて異なる計算機であるかのように動作す
る。各タイムスロットにおいて擬似的に実現される計算
機は、仮想計算機(以後VMと略記)と呼ばれる。実計
算機の諸資源は。In the virtual computer system (hereinafter abbreviated as VMS),
One live-shooting computer is controlled in a time-sharing manner and operates as if it were a different computer in different time slots. A computer that is simulated in each time slot is called a virtual computer (hereinafter abbreviated as VM). What are the resources of the actual computer?
時分割的又は空間分割的にそれぞれのVMに割当てられ
、実計算機に備えられていない所要資源は、シミュレー
ションによって提供される。資源のこのような割当て及
びシミュレーションは、仮想計算機制御プロゲラtz
(以後VMCPと略記)と呼ばれるソフトウェアにより
実現される。時分割的に割当てられる資源の一つば、プ
ロセッサ(いわゆるCPU)である。実計算機は複数の
CPUを備えたマルチプロセッサシステムであってもよ
く、また、1台又はそれ以上のVMがマルチプロセッサ
システムであっても、上い。マルチプロセッサ構成のV
Mを含むVMSをマルチプロセッサ構成の実R」算機上
で構築するためのプロセッサ割当機構の例は、特開昭5
9−167756号公報及び同62221041号公報
に記載されている。Required resources that are allocated to each VM in a time-division or space-division manner and are not provided in the actual computer are provided by simulation. Such allocation and simulation of resources is performed using a virtual computer controlled program.
This is realized by software called VMCP (hereinafter abbreviated as VMCP). One of the resources allocated in a time-sharing manner is a processor (so-called CPU). The real computer may be a multiprocessor system with multiple CPUs, or one or more VMs may be a multiprocessor system. V with multiprocessor configuration
An example of a processor allocation mechanism for constructing a VMS containing M on a real computer with a multiprocessor configuration is disclosed in Japanese Patent Laid-Open No. 5
It is described in 9-167756 and 62221041.
VMSは、VMCPを介して実現されるものであり、V
MCPの介入はオーバヘッドを生じる。VMS is realized via VMCP, and VMS
MCP intervention creates overhead.
VMCPの介入に起因するオーバヘッドを削減してVM
Sを高速化する種々の改良が、今までに提案された。例
えば、特公昭6(1−49352号公報には状態制御命
令及び割込みの処理の高速化が記載され、特公昭61−
22825号公報にはアドレス変換の高速化が記載され
、特開昭60−150140号公報には入出力命令の処
理の高速化が記載され、本出願人による特願昭62−1
04131号にはタイマ割込制御の高速化が記載されて
いる。しかしながら、これらの改良は、マルチプロセッ
サ構成のVMに特有な問題の解決には向けられていない
。VM by reducing the overhead caused by VMCP intervention.
Various improvements have been proposed to speed up S. For example, Japanese Patent Publication No. 1-49352 describes speeding up processing of state control commands and interrupts;
No. 22825 describes speeding up address conversion, Japanese Patent Application Laid-Open No. 150140/1982 describes speeding up processing of input/output instructions, and Japanese Patent Application No. 62-1 filed by the present applicant describes speeding up the processing of input/output instructions.
No. 04131 describes speeding up timer interrupt control. However, these improvements are not directed to solving problems specific to multiprocessor configured VMs.
マルチプロセッサシステムに特有な命令の一つは、CP
U間通間通全命令る。従来のVMSにおいては、マルチ
プロセッサ構成のVM中で発行されるCPU間通間通全
命令次に述べるような、VMCPによるシミュレーショ
ンによって処理される。One of the instructions specific to multiprocessor systems is CP
All orders are sent between U. In a conventional VMS, all instructions issued between CPUs in a VM with a multiprocessor configuration are processed by simulation using the VMCP as described below.
マルチプロセッサ構成の実計算機上にマルチプロセッサ
構成のVMが設定されていると仮定する。Assume that a VM with a multiprocessor configuration is set on a real computer with a multiprocessor configuration.
ある実CPU上で走行中の第1仮想CPU (VMを構
成する論理的なCPUを以後仮想CPUと呼ぶ)が、第
2仮想CPUへのCPU間通間通全命令行すると、トラ
ップが生じて、第1仮想CPUの走行は中断され、VM
CPが呼出される。VMCPは、それが管理している仮
想CPU状態情報を参照して、第2仮想CPUの状態を
調べ、それが走行中でなければ、その退避中の状態情報
に対してこのCPU間通間通全命令行し、その結果を第
1仮想CPUの状態情報に反映させた後、第1仮想CP
Uの走行を再開させる。他方、第2仮想CPUが他の実
CPU上で走行中であれば、VMCPは、この第2仮想
CPUの走行を中断して、その状態を主記憶に退避させ
、それから前記と同様な処理を行ない、次いで第2仮想
CPUの走行を再開させる。When a first virtual CPU running on a real CPU (the logical CPU that constitutes a VM is hereinafter referred to as a virtual CPU) executes all instructions to the second virtual CPU, a trap occurs. , the running of the first virtual CPU is interrupted, and the VM
CP is called. The VMCP refers to the virtual CPU state information that it manages, checks the state of the second virtual CPU, and if it is not running, uses this inter-CPU communication for the state information that is being saved. After executing all command lines and reflecting the results in the state information of the first virtual CPU,
Let U resume running. On the other hand, if the second virtual CPU is running on another real CPU, the VMCP interrupts the running of this second virtual CPU, saves its state to the main memory, and then performs the same process as above. Then, the second virtual CPU is restarted.
VMCPによるこのようなシミュレーションは大きなオ
ーバヘッドをもたらし、特に、宛先仮想CPUが走行中
の場合には、それの走行の中断と再開のためのオーバヘ
ッドが加わる。Such simulation by VMCP introduces significant overhead, especially if the destination virtual CPU is running, adding the overhead of suspending and resuming its running.
本発明の総合的な目的は、マルチプロセッサ構成のVM
において発行されたCPU間通信命令を、最小のオーバ
ヘッドでもって処理することにある。The overall objective of the present invention is to
The purpose of the present invention is to process inter-CPU communication commands issued in a CPU with minimum overhead.
本発明の具体的な目的の一つは、そのようなCPU間通
信命令を、VMCPの介入なしに処理することにある。One specific object of the present invention is to process such inter-CPU communication commands without intervention from the VMCP.
本発明の具体的な目的の他の一つは、そのようなCPU
間通信命令を、宛先仮想CPUの走行を中断することな
しに処理することにある。Another specific object of the present invention is to use such a CPU.
The object of the present invention is to process intercommunication commands without interrupting the execution of a destination virtual CPU.
本発明の具体的な目的の他の一つは、走行中でない宛先
仮想CPUの走行開始を促進することにある。Another specific object of the present invention is to facilitate the start of running of a destination virtual CPU that is not running.
本発明に従えば、CPU間通信命令で指定された宛先仮
想CPUの仮想CP tJ状態情報にアクセスする機構
と、アクセスされた仮想CPU状態情報が示す宛先仮想
CPUの走行状態に応じて、走行中でない仮想CPUの
仮想CPU状態情報か、又は宛先仮想CPUが走行中の
実CPUの、どちらかに対してCPU間通信命令の要求
する通信を実行する機構が、実プロセッサの命令実行回
路の一部をなすハードウェア又はファームウェアとして
設けられる。According to the present invention, a mechanism for accessing virtual CPU tJ state information of a destination virtual CPU specified by an inter-CPU communication command and a running state of the destination virtual CPU indicated by the accessed virtual CPU state information are provided. The mechanism that executes the communication requested by the inter-CPU communication instruction to either the virtual CPU state information of the virtual CPU that is not the destination virtual CPU or the real CPU on which the destination virtual CPU is running is a part of the instruction execution circuit of the real processor. It is provided as hardware or firmware.
加えて、走行中でない宛先仮想CPUがCPU間通信命
令による割込要求の結果走行可能になれば宛先仮想CP
Uの起動優先順位を繰上げる機構を、同様にして設ける
ことができる。In addition, if the destination virtual CPU that is not running becomes able to run as a result of an interrupt request by an inter-CPU communication command, the destination virtual CPU
A mechanism for advancing U's activation priority can be provided in a similar manner.
更に、アイドル状態にある実CPUに仮想プロセッサの
起動を要求する機構を、同様にして設けてもよい。この
機構は、前記の走行優先順位繰上機構の後で動作するよ
うに構成するのがよい。Furthermore, a mechanism may be similarly provided to request the real CPU in an idle state to start a virtual processor. This mechanism is preferably configured to operate after the travel priority advancement mechanism described above.
ある実CPU上で走行中の仮想CPUからCPU間通信
命令が発行されると、この命令は、本発明による仮想C
PU状態情報アクセス機構と実行機構により、宛先仮想
CPUが走行中の実CPU又はそれの退避された状態情
報に対して、単一命令の実行過程として実行される。V
MCPが呼出されることなく、したがって、仮想CPU
の走行の中断と再開を含むVMCPの実行のためのオー
バヘッドは、ハードウェア又はファームウェアによる仮
想CPU状態情報へのアクセスのためのみのオーバヘッ
ドへと、大幅に削減される。When an inter-CPU communication command is issued from a virtual CPU running on a certain real CPU, this command is executed by the virtual CPU according to the present invention.
The PU status information access mechanism and execution mechanism execute a single instruction execution process on a real CPU running by the destination virtual CPU or its saved status information. V
Therefore, the virtual CPU
The overhead for the execution of the VMCP, including suspending and resuming the running of the VMCP, is significantly reduced to the overhead only for accessing virtual CPU state information by hardware or firmware.
宛先仮想CPUの起動優先順位の繰上げと、アイドル状
態にある実CPUへの仮想CPU起動の要求も、同様に
、VMCPの介入なしに、CPU間通信命令の実行過程
の一部として行なわれ、それにより、さしたるオーバヘ
ッドなしに、走行中でなかった宛先仮想CPUの走行が
促進され、ひいては、VMSの効率が改善される。Similarly, raising the startup priority of the destination virtual CPU and requesting a real CPU in an idle state to start the virtual CPU is performed as part of the execution process of the inter-CPU communication command without intervention from the VMCP. This facilitates the running of destination virtual CPUs that were not running without significant overhead, thus improving the efficiency of the VMS.
第1図は、本発明の一実施例をブロックダイヤグラムで
示す。実計算機は、主記憶1と、それを共有する複数の
CPUl0を含む。ただし、図の複雑化を防ぐため、1
台のCPUのみが図示されている。更に、説明を簡明に
するため、すべてのCPUは同じ構造を持つものとする
。FIG. 1 shows in block diagram form one embodiment of the invention. The real computer includes a main memory 1 and a plurality of CPU10s that share the main memory 1. However, in order to prevent the diagram from becoming complicated, 1
Only one CPU is shown. Furthermore, to simplify the explanation, it is assumed that all CPUs have the same structure.
主記憶1内に、VMプログラム群2と、VMS管理情報
4と、VMCP5が記憶される。VMプログラム群2は
、それぞれのVMにより実行されるプログラムの集まり
である。ただし、VMプログラム群2が主記憶1内に常
駐する必要はなく、各VMの走行開始時にそのVMのプ
ログラムの所要部分が、図示されていない補助記憶から
転送されればよい。VMS管理情報4は、後で詳述する
VP管理情報6とRP状態テーブル7、並びに諸仮想C
PUの起動優先順位を定めるVPキュー8を含む。VM
CP5は、仮想CPUの走行の開始処理のための命令列
であるディスパッチャ9を含む。In the main memory 1, a VM program group 2, VMS management information 4, and VMCP 5 are stored. The VM program group 2 is a collection of programs executed by each VM. However, the VM program group 2 does not need to be resident in the main memory 1, and the necessary portions of the VM's program may be transferred from an auxiliary memory (not shown) when each VM starts running. The VMS management information 4 includes VP management information 6, an RP status table 7, and various virtual Cs, which will be detailed later.
It includes a VP queue 8 that determines the activation priority of PUs. V.M.
The CP 5 includes a dispatcher 9 which is a sequence of instructions for processing to start running the virtual CPU.
第2図は、vp管理情報6の詳細を示す。第2図(a)
を参照すると、各VMに対してVP状態記述子アドレス
リスト(以下VPリストと略称)61が用意され、そし
て、このVMを構成する仮想CPUのそれぞれに対して
vP状態記述子62が用意される。vPリスト61は、
各仮想CPUの識別番号(VPNα)と、対応するvp
状態記述子62へのポインタとを含む。vP状態記述子
62の内容は、第2図(b)に示されるように、対応す
る仮想CPUが実CPU上で走行中か否かを示す走行フ
ラグ621と、走行中の場合に割当てられている実CP
Uの識別番号(RPNα)622と、後述する通信キュ
ーの先頭を指す通信キューヘッダ623と、VPリスト
61へのポインタ624と、状態退避エリア625とを
含む。各仮想CPUの走行が中断される時、それの状態
を示す実CPU中のPSW及びその他のレジスタ、フリ
ップフロップ等の内容は退避エリア625に格納され、
その後、この仮想CPUの走行が再開される時に、退避
エリア625の内容は実CPU中に復元される。FIG. 2 shows details of the VP management information 6. Figure 2(a)
Referring to , a VP state descriptor address list (hereinafter referred to as VP list) 61 is prepared for each VM, and a vP state descriptor 62 is prepared for each virtual CPU that constitutes this VM. . The vP list 61 is
Identification number (VPNα) of each virtual CPU and corresponding vp
and a pointer to the state descriptor 62. The contents of the vP state descriptor 62 include, as shown in FIG. 2(b), a running flag 621 indicating whether the corresponding virtual CPU is running on the real CPU, and a running flag 621 that indicates whether the corresponding virtual CPU is running on the real CPU, and a running flag 621 that is assigned when the corresponding virtual CPU is running on the real CPU. Real CP
It includes an identification number (RPNα) 622 of U, a communication queue header 623 pointing to the head of the communication queue to be described later, a pointer 624 to the VP list 61, and a status save area 625. When the running of each virtual CPU is interrupted, the contents of the PSW and other registers, flip-flops, etc. in the real CPU indicating its status are stored in the save area 625,
Thereafter, when the virtual CPU resumes running, the contents of the save area 625 are restored into the real CPU.
RP状態テーブル7は、第3図に示されるように、それ
ぞれの実CPUについて、それがアクティブ状態にある
かアイドル状態にあるかを示すアクティブフラグ71と
、アクティブの場合にそこで走行中の仮想CPUの識別
番号72と、その仮想CPUが属するVMの識別番号7
3とを含む。As shown in FIG. 3, the RP status table 7 includes, for each real CPU, an active flag 71 that indicates whether it is in an active state or an idle state, and if it is active, a virtual CPU that is running there. identification number 72 of the virtual CPU, and identification number 7 of the VM to which the virtual CPU belongs.
3.
第2図(a)に戻り、通信キュー63は、各仮想CPU
において処理が保留されているCPU間通信割込みのキ
ューであって、通信キューエレメント631のチエイン
により構成される。各通信キューエレメント631は、
CPU間通信命令に起因する一つの割込要求に対応し、
対応するCPU間通信命令を実行した仮想CPUの識別
番号と、後続キューエレメントへのポインタとからなる
。Returning to FIG. 2(a), the communication queue 63 is connected to each virtual CPU.
This is a queue for inter-CPU communication interrupts whose processing is pending in the communication queue element 631, and is made up of a chain of communication queue elements 631. Each communication queue element 631 is
In response to one interrupt request caused by an inter-CPU communication command,
It consists of the identification number of the virtual CPU that executed the corresponding inter-CPU communication instruction and a pointer to the subsequent queue element.
vP状態記連子内の通信キューへラダ623は、先頭の
通信キューエレメントを指す。The communication queue ladder 623 in the vP status record link points to the first communication queue element.
主記憶1内には、更に、CPU間の情報の授受に使用さ
れる通信エリア3が用意される。CPU間通信命令が宛
先CPUの特定の動作を要求するために使用される場合
に、この特定の動作を指定するコードが通信エリア3中
の予め定められた位置に書込まれ、その後にCPU間通
信命令が発行すして、宛先CPUに割込みを生じる。こ
の宛先CPUは、前記の予め定められた位置にアクセス
することにより、要求された動作を知ることができる。In the main memory 1, a communication area 3 is further provided which is used for exchanging information between the CPUs. When an inter-CPU communication instruction is used to request a specific operation of the destination CPU, a code specifying this specific operation is written to a predetermined position in the communication area 3, and then the inter-CPU communication instruction A communication command is issued and causes an interrupt to the destination CPU. This destination CPU can learn the requested operation by accessing the predetermined location.
実CPUl0は、主記憶アクセス回路11と、割込処理
回路12と、レジスタ群13と、命令実行回路14を備
える。レジスタ群13は、VMSの実現に必要な情報を
保持し、特に本発明に関係して、当CPU上で目下走行
中の仮想CPUの識別番号131と、この仮想CPUの
vp状態記述子62のアドレス132と、RP状態テー
ブル7のアドレス133と、vPキュー8のアドレス1
34と、ディスパッチャ9のアドレス135とを保持す
る。The real CPU 10 includes a main memory access circuit 11, an interrupt processing circuit 12, a register group 13, and an instruction execution circuit 14. The register group 13 holds information necessary for realizing VMS, and in particular, in relation to the present invention, the identification number 131 of the virtual CPU currently running on the CPU and the vp state descriptor 62 of this virtual CPU. address 132, address 133 of RP status table 7, and address 1 of vP queue 8.
34 and the address 135 of the dispatcher 9.
命令実行回路14の内部については、本発明に直接関係
する部分のみが図示されている。本実施例において、C
PU間通信命令は、SIGP(Signal Proc
essor)命令と呼ばれる。図示されていない命令デ
コーダからの5IGPデコード出力は5IGPシ一ケン
ス回路141を起動する。Regarding the interior of the instruction execution circuit 14, only the parts directly related to the present invention are shown. In this example, C
The communication command between PUs is SIGP (Signal Proc
essor) command. A 5IGP decode output from an instruction decoder (not shown) activates a 5IGP sequence circuit 141.
5IGPシ一ケンス回路141は、vp管理情報6をテ
ストするVPテスト回路142と、5IGP命令で指定
された通信動作(割込要求の送出、状態情報の抽出等)
をvp管理情報6に対して実行する5IGP模擬回路1
43と、仮想CPUの走行優先順位を繰上げる優先順位
繰上回路144と、RP状態テーブル7をテス1−する
RPテスト回路145と、5IGP命令で指定された通
信動作を実CPUに対して実行するSIGP通信回路1
46とを制御する。The 5IGP sequence circuit 141 communicates with the VP test circuit 142 that tests the VP management information 6 and performs communication operations specified by the 5IGP command (sending interrupt requests, extracting state information, etc.)
5 IGP simulation circuit 1 that executes VP management information 6
43, a priority advance circuit 144 that advances the running priority of the virtual CPU, an RP test circuit 145 that tests the RP status table 7, and executes the communication operation specified by the 5IGP command to the real CPU. SIGP communication circuit 1
46.
次に、第1図の装置によるCPU間通信(SIGP)命
令の処理を説明する。第4図は、この処理のフローチャ
ー1・であり、このフローチャートにおいて、”vp”
は仮想CPUを意味し、” RP”は実CPUを意味す
る。Next, processing of an inter-CPU communication (SIGP) command by the apparatus shown in FIG. 1 will be described. FIG. 4 is a flowchart 1 of this process, and in this flowchart, "vp"
"RP" means a virtual CPU, and "RP" means a real CPU.
実CPU10−ヒで走行中の仮想CPUが5IGP命令
に遭遇すると、図示されていない命令デコーダは5IG
P出力により5IGPシ一ケンス回路141を起動する
。以下に述べる動作シーケンスは、5IGPシ一ケンス
回路141の制御下で進行する。まず、vPテスト回路
142は、現行Vl)状態記述子アドレス132を用い
て、走行中の仮想CPUに対応するvp状態記述子62
にアクセスし、更に、そのvPリス1へポインタ624
に従ってvPリスト61にアクセスして、5IGP命令
中に指定された宛先仮想CPUを探索する(101)。When the virtual CPU running on the real CPU 10-H encounters a 5IGP instruction, an instruction decoder (not shown) executes the 5IGP instruction.
The 5IGP sequence circuit 141 is activated by the P output. The operation sequence described below proceeds under the control of the 5IGP sequence circuit 141. First, the vP test circuit 142 uses the current Vl state descriptor address 132 to check the vp state descriptor 62 corresponding to the running virtual CPU.
and furthermore, pointer 624 to that vP list 1.
The vP list 61 is accessed according to the 5IGP command to search for the destination virtual CPU specified in the 5IGP command (101).
もしも宛先仮想CPUがvpリス1−61中で発見でき
なければ、例えば特定のフリップフロップをセットする
ことにより、宛先CPUの不存在がVMプログラムに報
告され(102)、そこで5IGP命令の実行は終了す
る。すなわち、実計算機において宛先CPUが存在しな
い場合と同じ結果が得られる。If the destination virtual CPU is not found in the vp list 1-61, the absence of the destination CPU is reported to the VM program (102), for example by setting a particular flip-flop, and the execution of the 5IGP instruction is then terminated. do. In other words, the same result as when the destination CPU does not exist in the actual computer can be obtained.
宛先仮想CPUが存在すれば、vpテスト回路142は
、vPリスト中のポインタに従って、宛先仮想CPUに
対応するvp状態記述子にアクセスし、その走行フラグ
621を調べる(103)。If the destination virtual CPU exists, the vp test circuit 142 accesses the vp state descriptor corresponding to the destination virtual CPU according to the pointer in the vP list, and checks its running flag 621 (103).
この走行フラグが″走行中”を示せば、宛先仮想CPU
が走行中の実CPUに対して5IGP命令が実行される
(104.)。詳述すれば、■Pテスト回路142は、
宛先仮想CPUのV T)状態記述子から実CPU識別
番号622を読出し、S iGP通信回路146は、こ
の識別番号により識別されろ実C,PUへの通信経路を
確保して、それを経由して所定の通信動作(割込要求の
送出、状態情報の抽出等)を実行する。状態情報の抽出
は、宛先実CPUの指定された状態情報(例えば、PS
Wの指定されたピッ1−)を、5IGP通信回路146
が直接読取ることにより遂行される。ここで5IGP命
令の実行は終了する。割込要求が発せられた場合には、
宛先実CPUにおいて、走行中の仮想CPUが割込可能
状態にあれば1割込みが生じて、通信エリア3へのアク
セスが行なわれ、割込不可能状態にあれば、その割込要
求は保留される。このように、宛先アドレスの置換を除
けば、実計算機におけるのと同様な5IGP命令の処理
が行なわれる。If this running flag indicates "running", the destination virtual CPU
The 5IGP instruction is executed on the real CPU that is running (104.). To be more specific, the ■P test circuit 142 is as follows.
VT) Reads the real CPU identification number 622 from the state descriptor of the destination virtual CPU, and the SiGP communication circuit 146 secures a communication path to the real CPU identified by this identification number and transmits the communication via it. and executes a predetermined communication operation (sending an interrupt request, extracting status information, etc.). Extraction of state information is performed by extracting specified state information of the destination real CPU (for example, PS
5IGP communication circuit 146
is accomplished by direct reading. At this point, execution of the 5IGP instruction ends. When an interrupt request is issued,
In the destination real CPU, if the running virtual CPU is in an interrupt-enabled state, one interrupt is generated and access to communication area 3 is performed, and if it is in an interrupt-disabled state, the interrupt request is put on hold. Ru. In this way, except for the replacement of the destination address, the 5IGP instruction is processed in the same manner as in a real computer.
宛先仮想CPUが走行中でない場合には、対応する■P
状態記述子62に対して5IGP通信が実行される(1
05)。詳述すれば、もしも状態情報の抽出が指定され
ていれば、S IGP模擬回路143は、宛先vp状態
記述子の状態退避エリア625にアクセスして、そこか
ら所望の状態情報を読出す。他方、割込要求の送出が指
定されている場合は、走行中でない仮想CPUが直ちに
それに応答することはできないことから、この割込要求
は通信キュー63に入れられる。すなわち、5IGP模
擬回路143は、現行VPNα131を読出して、それ
を要素として含む通信キューエレメント631を生成し
、これを、宛先仮想CPUのvP状態記述子にチエイン
された通信キュー63の末尾に加える。その後、この仮
想CPUの走行が開始される時に、ディスパッチャ9は
、通信キュー63中のキューエレメントを取出して、そ
の内容を実CPUの割込処理回路11中の割込保留回路
にセットする。仮想CPtJの走行中にそれが割込可能
状態になれば、保留中の割込みは順次処理され、走行が
中断される時に、保留状態で残された割込みは、図示さ
れていない状態退避機構により、再び通信キュー63と
して保存される。If the destination virtual CPU is not running, the corresponding ■P
5 IGP communication is executed for the state descriptor 62 (1
05). Specifically, if state information extraction is specified, the SIGP simulation circuit 143 accesses the state save area 625 of the destination vp state descriptor and reads the desired state information therefrom. On the other hand, if sending an interrupt request is specified, the interrupt request is placed in the communication queue 63 because a virtual CPU that is not running cannot immediately respond to it. That is, the 5IGP simulation circuit 143 reads the current VPNα 131, generates a communication queue element 631 containing it as an element, and adds this to the end of the communication queue 63 chained to the vP state descriptor of the destination virtual CPU. Thereafter, when the virtual CPU starts running, the dispatcher 9 takes out the queue element from the communication queue 63 and sets its contents in the interrupt pending circuit in the interrupt processing circuit 11 of the real CPU. If the virtual CPtJ becomes interrupt-enabled while it is running, the pending interrupts are processed sequentially, and when running is interrupted, the interrupts left in the pending state are saved by a state saving mechanism (not shown). It is saved as the communication queue 63 again.
次に、vPテスト回路143は、走行中でない宛先仮想
CPUが、割込可能状態にあるとともに待ち(wait
)状態にあるか否かを調べる(106)。Next, the vP test circuit 143 determines whether the destination virtual CPU that is not running is in an interrupt-enabled state and is in a wait state.
) state (106).
1に
のような状態にあるCPUは、割込要求の到来に応答し
て実行状態に移行できる。したがって、宛先仮想CPU
がこのような状態にあれば、その起動優先順位を繰上げ
て、走行開始を促進することが望ましい。そこで、優先
順位繰上回路144は、VPキューアドレス134を参
照してvPキュー8にアクセスし、この宛先仮想CPU
の起動優先順位(キュー内順位)を、できるだけ高いも
のに繰上げる(107)。A CPU in a state such as 1 can transition to an execution state in response to the arrival of an interrupt request. Therefore, the destination virtual CPU
If the vehicle is in such a state, it is desirable to move up its activation priority to facilitate the start of driving. Therefore, the priority advance circuit 144 accesses the vP queue 8 by referring to the VP queue address 134, and
The activation priority (in-queue ranking) of is raised to the highest possible value (107).
更に、RPテスト回路145は、RP状態テーブルアド
レス133を用いてRP状態テーブル7にアクセスし、
アイドル状態にある実CPUを探索する(108)。ア
イドル状態にある実CPUが発見されれば、RPテスト
回路145はディスパッチャ9の実行を指定するコード
を通信エリア3に書込み、5IGP通信回路146が割
込要求をその実CPUへ送出して(109)、5IGP
命令の実行が終了する。この割込要求を受けた実CPU
は、ディスパッチャアドレス135を参照してディスパ
ッチャ9を実行し、その結果、vPキュー8の先頭で待
っていた仮想CPUが、この実CPU上で走行を開始す
る。Additionally, the RP test circuit 145 accesses the RP state table 7 using the RP state table address 133;
A real CPU in an idle state is searched for (108). If a real CPU in an idle state is found, the RP test circuit 145 writes a code specifying execution of the dispatcher 9 to the communication area 3, and the 5IGP communication circuit 146 sends an interrupt request to the real CPU (109). ,5IGP
Execution of the instruction ends. The real CPU that received this interrupt request
executes the dispatcher 9 by referring to the dispatcher address 135, and as a result, the virtual CPU waiting at the head of the vP queue 8 starts running on this real CPU.
5IGP命令の実行のための諸回路141〜146は、
マイクロプログラム及びそれにより制御される回路群で
置換することができる。また、もしも充分な数のレジス
タ又はそれらと等価な内蔵メモリが利用できれば、vP
リストポインタあるいはVPリスト自体をCPU内部に
保持してもよく、そうすれば、オーバヘッドは一層低減
する。The various circuits 141 to 146 for executing the 5IGP instructions are:
It can be replaced with a microprogram and a group of circuits controlled by it. Also, if a sufficient number of registers or equivalent internal memory is available, vP
The list pointer or the VP list itself may be kept inside the CPU, which further reduces the overhead.
以上から明らかなように、本発明によれば、VMから発
行されたCPU間通間通全命令ハードウェア又はファー
ムウェアにより、単一命令の実行過程として処理され、
VMCPの介入はない。As is clear from the above, according to the present invention, all instructions issued from a VM between CPUs are processed by hardware or firmware as a single instruction execution process,
There is no intervention by VMCP.
また、CPU間通間通全命令行の結果として走行可能に
なる仮想CPUの起動優先順位の繰上げや、アイドル状
態にある実CPUへの仮想CPU起動要求も、同様に、
CPU間通間通全命令行過程の一部として、VMCPの
介入なしに遂行される。Similarly, raising the startup priority of a virtual CPU that becomes runnable as a result of passing all command lines between CPUs, and requesting virtual CPU startup to a real CPU that is in an idle state,
As part of the entire CPU-to-CPU instruction line process, it is performed without VMCP intervention.
したがって、CI) U間通信命令の発行に関連して生
しるオーバヘットが大幅に低減され、VMSのスループ
ットが改善される。Therefore, the overhead associated with issuing CI) U-U communication instructions is significantly reduced and the throughput of the VMS is improved.
第1図は、本発明の一実施例のブロックダイヤグラムで
あり、第2図はVP管理情報の一例を示す図であり、第
3図はRP状態テーブルの一例を示す図であり、第4図
は第1図の装置により行なわれるCPU間通間通全命令
理のフローチャートである。
5・・・仮想計算機制御プログラム、6・・・仮想CP
U状態情報、7・・・実CPU状態情報、8・・仮想c
pu起動優先順位を示すキュー、132・・・走行中の
仮想CPUの仮想CPU状態情報のアドレス、133・
・実CPU状態テーブルのアドレス、134・・・起動
優先順位キューのアドレス、141・・・CPU間通間
通全命令めの処理シーケンス制御回路、142・・仮想
CPU状態情報検査回路、143 ・仮想cpu状態情
報に対してCPU間通信を行なう回路、144・・仮想
CP Uの起動優先順位を繰上げる回路、145・・・
実CPU状態情報検査回路、146・・・実CPUに対
してCPU間通信を行なう回路。FIG. 1 is a block diagram of an embodiment of the present invention, FIG. 2 is a diagram showing an example of VP management information, FIG. 3 is a diagram showing an example of an RP status table, and FIG. 1 is a flowchart of all instructions executed by the apparatus of FIG. 1; FIG. 5... Virtual computer control program, 6... Virtual CP
U state information, 7... Real CPU state information, 8... Virtual c
Queue indicating pu startup priority, 132...Address of virtual CPU status information of running virtual CPU, 133.
- Address of real CPU status table, 134... Address of startup priority queue, 141... Processing sequence control circuit for all instructions passed between CPUs, 142... Virtual CPU status information inspection circuit, 143 - Virtual A circuit that performs inter-CPU communication regarding CPU status information, 144... A circuit that advances the startup priority of the virtual CPU, 145...
Real CPU status information inspection circuit, 146... A circuit that performs inter-CPU communication with respect to the real CPU.
Claims (1)
想計算機システムを各仮想計算機への資源の割当てを管
理する仮想計算機制御プログラムの制御下で実現するた
めの、各仮想プロセッサの走行状態と退避されたプロセ
ッサ状態とを含む仮想プロセッサ状態情報を保持するた
めの記憶装置とこの記憶装置を共有する複数のプロセッ
サとを有する計算機の、各プロセッサにおいて、プロセ
ッサ間通信命令の解読に応答してこの命令で指定された
宛先仮想プロセッサの仮想プロセッサ状態情報にアクセ
スする手段と、前記宛先仮想プロセッサが他のプロセッ
サ上で走行中であることを前記アクセスされた仮想プロ
セッサ状態情報が示すときに動作して前記他のプロセッ
サに対して前記プロセッサ間通信命令が要求する通信を
実行する第1実行手段と、前記宛先仮想プロセッサが走
行中でないことを前記アクセスされた仮想プロセッサ状
態情報が示すときに動作してこの仮想プロセッサ状態情
報に対して前記プロセッサ間通信命令が要求する通信を
実行する第2実行手段とを備え、それにより、仮想計算
機制御プログラムの介入なしにプロセッサ間通信命令を
処理する、プロセッサ間通信命令処理装置。 2、請求項1において、前記第2実行手段は、前記プロ
セッサ間通信命令がプロセッサ状態情報の取得を要求す
るときには前記アクセスされた仮想プロセッサ状態情報
から所要情報を読出し、前記プロセッサ間通信命令が割
込みを要求するときには対応する割込要求の到来の記録
を前記アクセスされた仮想プロセッサ状態情報に加える
、プロセッサ間通信命令処理装置。 3、請求項1又は2において、前記宛先仮想プロセッサ
が走行中でないとともに割込要求の到来により走行が可
能になることを前記アクセスされた仮想プロセッサ状態
情報が示し、かつ、前記プロセッサ間通信命令が割込み
を要求するときに動作して、前記宛先仮想プロセッサの
起動優先順位を繰上げる手段を更に備える、プロセッサ
間通信命令処理装置。4、請求項3において、前記記憶
装置には更に各プロセッサがアイドル状態にあるか否か
を示す実プロセッサ状態情報が記憶され、そして、前記
実プロセッサ状態情報を調べてアイドル状態にあるプロ
セッサに仮想プロセッサの起動を要求する手段を更に備
える、プロセッサ間通信命令処理装置。 5、請求項4において、前記起動要求手段は前記起動優
先順位繰上手段の後で動作する、プロセッサ間通信命令
処理装置。[Scope of Claims] 1. A virtual machine system including a virtual machine having a plurality of virtual processors under the control of a virtual machine control program that manages resource allocation to each virtual machine. In a computer having a storage device for holding virtual processor state information including a running state and a saved processor state, and a plurality of processors sharing this storage device, each processor responds to decoding of an inter-processor communication command. means for accessing virtual processor state information of a destination virtual processor specified by this instruction, and when said accessed virtual processor state information indicates that said destination virtual processor is running on another processor; first execution means operative to perform communication requested by the inter-processor communication instruction to the other processor; and when the accessed virtual processor state information indicates that the destination virtual processor is not running; a second execution means operable to perform the communication required by the inter-processor communication instruction with respect to the virtual processor state information, thereby processing the inter-processor communication instruction without intervention of a virtual machine control program; Interprocessor communication instruction processing device. 2. In claim 1, the second execution means reads required information from the accessed virtual processor state information when the inter-processor communication instruction requests acquisition of processor state information; An interprocessor communication instruction processing device that adds a record of the arrival of a corresponding interrupt request to the accessed virtual processor state information when requesting an interrupt request. 3. In claim 1 or 2, the accessed virtual processor state information indicates that the destination virtual processor is not running and becomes capable of running due to the arrival of an interrupt request, and the inter-processor communication command is An inter-processor communication instruction processing device, further comprising means that operates when requesting an interrupt to advance the activation priority of the destination virtual processor. 4. In claim 3, the storage device further stores real processor state information indicating whether or not each processor is in an idle state, and the real processor state information is checked and a virtual processor is assigned to a processor in an idle state. An inter-processor communication command processing device, further comprising means for requesting activation of a processor. 5. The inter-processor communication command processing device according to claim 4, wherein the activation requesting means operates after the activation priority raising means.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63240853A JPH0290331A (en) | 1988-09-28 | 1988-09-28 | Interprocessor communication instruction processing device for virtual computer system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63240853A JPH0290331A (en) | 1988-09-28 | 1988-09-28 | Interprocessor communication instruction processing device for virtual computer system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0290331A true JPH0290331A (en) | 1990-03-29 |
Family
ID=17065686
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63240853A Pending JPH0290331A (en) | 1988-09-28 | 1988-09-28 | Interprocessor communication instruction processing device for virtual computer system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0290331A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7281075B2 (en) | 2003-04-24 | 2007-10-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
| JP2017091544A (en) * | 2015-11-16 | 2017-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Method, processing unit, and design structure for handling interrupts in processing unit using virtual processor thread groups |
-
1988
- 1988-09-28 JP JP63240853A patent/JPH0290331A/en active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7281075B2 (en) | 2003-04-24 | 2007-10-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
| US7546406B2 (en) | 2003-04-24 | 2009-06-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
| JP2017091544A (en) * | 2015-11-16 | 2017-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Method, processing unit, and design structure for handling interrupts in processing unit using virtual processor thread groups |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6772419B1 (en) | Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS | |
| KR920010978B1 (en) | Virtual computer system with improved input and output interrupt control | |
| JPH0695898A (en) | Control method for virtual computer and virtual computer system | |
| US10241829B2 (en) | Information processing device, information processing method, recording medium, calculation processing device, calculation processing method | |
| CN103473135A (en) | Processing method for spinlock LHP (Lock-Holder Preemption) phenomenon under virtual environment | |
| US5371857A (en) | Input/output interruption control system for a virtual machine | |
| US4855899A (en) | Multiple I/O bus virtual broadcast of programmed I/O instructions | |
| US5003468A (en) | Guest machine execution control system for virutal machine system | |
| CN101243396A (en) | Method and apparatus for supporting universal serial bus devices in a virtualized environment | |
| JPH0689269A (en) | Processor control device, processor pausing device and method thereof | |
| CN117851303B (en) | A high-speed data transmission method and system for multi-threaded DMA | |
| US20240086219A1 (en) | Transmitting interrupts from a virtual machine (vm) to a destination processing unit without triggering a vm exit | |
| JPH0290331A (en) | Interprocessor communication instruction processing device for virtual computer system | |
| JPH0552535B2 (en) | ||
| CN118484263B (en) | Hardware resource access method, system, storage medium and program product | |
| JPS603229B2 (en) | Information processing method | |
| JP2003005987A (en) | Emulation device | |
| JPS62219058A (en) | Exclusive control system for shared memory | |
| JPS62221041A (en) | Dispatch controller in virtual computer system | |
| JPH0444131A (en) | Execution device and method for inter-processor communication in multiple OS running system | |
| JPS62125437A (en) | Additional processor control method | |
| CN120455687A (en) | A high-efficiency video decoding method, system, device and storage medium | |
| CN120848965A (en) | Chip initialization method, device, electronic device and storage medium | |
| JP2022055002A (en) | Information processing device, information processing method, and information processing program | |
| JPS5942331B2 (en) | Prosetsusasouchinoseigiohoshiki |