JPH0814795B2 - マルチプロセッサ仮想計算機システム - Google Patents
マルチプロセッサ仮想計算機システムInfo
- Publication number
- JPH0814795B2 JPH0814795B2 JP61005391A JP539186A JPH0814795B2 JP H0814795 B2 JPH0814795 B2 JP H0814795B2 JP 61005391 A JP61005391 A JP 61005391A JP 539186 A JP539186 A JP 539186A JP H0814795 B2 JPH0814795 B2 JP H0814795B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- virtual
- virtual processor
- running
- state
- 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 - Lifetime
Links
Classifications
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は、複数の実プロセッサ(以下、単にプロセッ
サと記載)を具備したマルチプロセッサ構成の仮想計算
機システムに係り、特に、ディスパッチ制御を効率良く
行ない各プロセッサを有効利用するのに好適なマルチプ
ロセッサ仮想計算機システムに関するものである。
サと記載)を具備したマルチプロセッサ構成の仮想計算
機システムに係り、特に、ディスパッチ制御を効率良く
行ない各プロセッサを有効利用するのに好適なマルチプ
ロセッサ仮想計算機システムに関するものである。
仮想計算機システム(Virtual Machine System:以
下、VMSと略記する)は、1台の計算機のもとで、1つ
以上のOS(オペレーテイングシステム)の同時走行を可
能とするシステムである。仮想計算機制御プログラム
(Virtual Machine Control Program:以下VMCPと略記す
る)は、1台の実計算機上に各OSごとに、あたかも仮想
計算機(Virtual Machine:以下、VMと略記する)と呼ば
れる計算機が存在するかのように制御するプログラムで
ある。
下、VMSと略記する)は、1台の計算機のもとで、1つ
以上のOS(オペレーテイングシステム)の同時走行を可
能とするシステムである。仮想計算機制御プログラム
(Virtual Machine Control Program:以下VMCPと略記す
る)は、1台の実計算機上に各OSごとに、あたかも仮想
計算機(Virtual Machine:以下、VMと略記する)と呼ば
れる計算機が存在するかのように制御するプログラムで
ある。
VMSは、このように1つ以上のOSの同時走行を可能と
するために、計算機のプロセツサを使用するVM上の仮想
プロセツサの切換処理を行う必要がある。従来は、OSが
発行した特権命令をVMCPがシミユレーシヨンを行つてい
たが、高性能化のために、マイクロプログラムシミユレ
ーシヨンにより高速化したり、さらにはハードウエアに
より直接実行する技術が開発されている。仮想計算機シ
ステムにおいて、次に走行する仮想プロセツサの選択と
起動をソフトウエアにより行うと、そのオーバヘツドは
大きい。
するために、計算機のプロセツサを使用するVM上の仮想
プロセツサの切換処理を行う必要がある。従来は、OSが
発行した特権命令をVMCPがシミユレーシヨンを行つてい
たが、高性能化のために、マイクロプログラムシミユレ
ーシヨンにより高速化したり、さらにはハードウエアに
より直接実行する技術が開発されている。仮想計算機シ
ステムにおいて、次に走行する仮想プロセツサの選択と
起動をソフトウエアにより行うと、そのオーバヘツドは
大きい。
例えば、特開昭59-167756号公報には、仮想プロセツ
サが計算機上のあるプロセツサでアイドル状態等になっ
た場合には、ハードウエアおよびマイクロプログラムに
より仮想プロセツサを切換える方法が開示されている。
この方法によれば、アイドル状態等になった仮想プロセ
ツサが動作していたプロセツサの有効利用が図られる。
サが計算機上のあるプロセツサでアイドル状態等になっ
た場合には、ハードウエアおよびマイクロプログラムに
より仮想プロセツサを切換える方法が開示されている。
この方法によれば、アイドル状態等になった仮想プロセ
ツサが動作していたプロセツサの有効利用が図られる。
しかし、上記の技術においては、VMがマルチプロセツ
サ構成で、その中の第1の仮想プロセツサが同一VMの他
の仮想プロセツサのロツクにより、OSが第1の仮想プロ
セツサ上でループする場合の各プロセツサ有効利用につ
いては、何も述べられていない。また、アイドル状態等
になつた仮想プロセツサが動作していたプロセツサの有
効利用については述べられているが、この時にアクテイ
ブ状態となつていない他のプロセツサの有効利用につい
ては、全く述べられていない。
サ構成で、その中の第1の仮想プロセツサが同一VMの他
の仮想プロセツサのロツクにより、OSが第1の仮想プロ
セツサ上でループする場合の各プロセツサ有効利用につ
いては、何も述べられていない。また、アイドル状態等
になつた仮想プロセツサが動作していたプロセツサの有
効利用については述べられているが、この時にアクテイ
ブ状態となつていない他のプロセツサの有効利用につい
ては、全く述べられていない。
計算機システムの中で処理される仕事の単位であるタ
スク(プロセスともいう)は、CPU以外の必要な全ての
リソースが確保されると実行可能の状態になり、CPUが
割当てられるのを待つている。CPU以外のリソースを確
保できないで待つているタスクは、ウエイト状態にある
といわれる。実行可能の状態にあるタスクにCPUが割当
てられると、アクテイブ状態に入る。また、実行中のタ
スクが、優先度の高いタスクにCPUを奪われると、実行
可能の状態に戻る。すなわち、タスクは、アクテイブ状
態、実行可能状態、およびウエイト状態の3つの状態の
いずれかにあり、実行可能の状態にあるタスクにCPUを
割当てるものをデイスパツチヤ(dispacher)と呼ぶ。
このデイスパツチヤは、CPUを管理して、タスクの実行
を制御するもので、OSの中核をなす特殊な部分である。
スク(プロセスともいう)は、CPU以外の必要な全ての
リソースが確保されると実行可能の状態になり、CPUが
割当てられるのを待つている。CPU以外のリソースを確
保できないで待つているタスクは、ウエイト状態にある
といわれる。実行可能の状態にあるタスクにCPUが割当
てられると、アクテイブ状態に入る。また、実行中のタ
スクが、優先度の高いタスクにCPUを奪われると、実行
可能の状態に戻る。すなわち、タスクは、アクテイブ状
態、実行可能状態、およびウエイト状態の3つの状態の
いずれかにあり、実行可能の状態にあるタスクにCPUを
割当てるものをデイスパツチヤ(dispacher)と呼ぶ。
このデイスパツチヤは、CPUを管理して、タスクの実行
を制御するもので、OSの中核をなす特殊な部分である。
本発明の目的は、このような従来の問題を改善し、VM
上の仮想プロセツサがウエイト状態になつたり、同一VM
上の他の仮想プロセツサのロツクによりOSがループ状態
となる場合には、その仮想プロセツサが走行しているプ
ロセツサ、およびアクテイブ状態にないプロセツサ上
で、走行可能な仮想プロセツサを起動することができ、
これによりプロセツサの有効利用を実現するマルチプロ
セッサ仮想計算機システムを提供することにある。
上の仮想プロセツサがウエイト状態になつたり、同一VM
上の他の仮想プロセツサのロツクによりOSがループ状態
となる場合には、その仮想プロセツサが走行しているプ
ロセツサ、およびアクテイブ状態にないプロセツサ上
で、走行可能な仮想プロセツサを起動することができ、
これによりプロセツサの有効利用を実現するマルチプロ
セッサ仮想計算機システムを提供することにある。
上記目的を達成するため、本発明によるマルチプロセ
ッサ仮想計算機システムは、VMSの各VM上の仮想プロセ
ツサごとに、プロセツサ状態の退避とアクテイブフラグ
とVMCPが設定する走行優先度とタイムスライス値とを格
納する領域を備え、また計算機を構成する各プロセツサ
がアクテイブ状態か否かを示すプロセツサ状態表を備え
る。本発明による仮想プロセツサ切換処理を仮想プロセ
ツサの切換え要因別に述べる。
ッサ仮想計算機システムは、VMSの各VM上の仮想プロセ
ツサごとに、プロセツサ状態の退避とアクテイブフラグ
とVMCPが設定する走行優先度とタイムスライス値とを格
納する領域を備え、また計算機を構成する各プロセツサ
がアクテイブ状態か否かを示すプロセツサ状態表を備え
る。本発明による仮想プロセツサ切換処理を仮想プロセ
ツサの切換え要因別に述べる。
(1) VMが走行中に、VM上のOSがプロセツサをウエイ
ト状態にする命令を発行し、この命令をVMCPが介在する
ことなく、ハードウエアおよびマイクロプログラムが直
接実行した結果、仮想プロセツサがウエイト状態となつ
た場合には、仮想プロセツサ状態退避マイクロプログラ
ムとともに、走行中の仮想プロセツサの状態を上記状態
退避領域に格納し、またその仮想プロセツサのアクテイ
ブフラグに、非アクティブ状態を設定する。次に、仮想
プロセツサ状態退避機構および仮想プロセツサ状態退避
マイクロプログラムは、主記憶装置上のデイスパツチ命
令群に制御を渡す。デイスパツチ命令群は、プロセツサ
状態表に非アクテイブ状態が指示されているプロセツサ
を選択し、プロセツサ状態表のそのプロセツサに対応す
るフイールドにアクテイブ状態を指示する。また、ウエ
イト状態でなく、かつアクテイブ状態でない仮想プロセ
ツサ群の中で、最も走行優先度の高い仮想プロセツサを
選択し、その仮想プロセツサのアクテイブフラグにアク
テイブ状態を指示する。ただし、条件を満足する仮想プ
ロセツサが存在しない場合には、上記選択したプロセツ
サのプロセツサ状態表のフイールドに非アクテイブ状態
を指示する。また、上記選択したプロセツサにおいて、
上記選択した仮想プロセツサを走行させることをプロセ
ツサ状態表に指示しておく。次に、デイスパツチ命令群
は、上記選択したプロセツサに対して、外部割込みを発
生させるために、従来よりあるマルチプロセツサ用命令
SIGP(Signal Processor)を発行する。これにより、SI
GP命令が発行されたプロセツサに外部割込みが報告さ
れ、その割込み処理プログラムにおいて、次の処理が行
われる。すなわち、割込み処理プログラムは、プロセツ
サ状態表により、そのプロセツサによつて走行させる仮
想プロセツサを識別し、この仮想プロセツサのタイムス
ライス値をそのプロセツサのタイマに設定し、その仮想
プロセツサの状態退避領域の内容をプロセツサのレジス
タに設定することにより、上記選択した仮想プロセツサ
を走行状態にする。
ト状態にする命令を発行し、この命令をVMCPが介在する
ことなく、ハードウエアおよびマイクロプログラムが直
接実行した結果、仮想プロセツサがウエイト状態となつ
た場合には、仮想プロセツサ状態退避マイクロプログラ
ムとともに、走行中の仮想プロセツサの状態を上記状態
退避領域に格納し、またその仮想プロセツサのアクテイ
ブフラグに、非アクティブ状態を設定する。次に、仮想
プロセツサ状態退避機構および仮想プロセツサ状態退避
マイクロプログラムは、主記憶装置上のデイスパツチ命
令群に制御を渡す。デイスパツチ命令群は、プロセツサ
状態表に非アクテイブ状態が指示されているプロセツサ
を選択し、プロセツサ状態表のそのプロセツサに対応す
るフイールドにアクテイブ状態を指示する。また、ウエ
イト状態でなく、かつアクテイブ状態でない仮想プロセ
ツサ群の中で、最も走行優先度の高い仮想プロセツサを
選択し、その仮想プロセツサのアクテイブフラグにアク
テイブ状態を指示する。ただし、条件を満足する仮想プ
ロセツサが存在しない場合には、上記選択したプロセツ
サのプロセツサ状態表のフイールドに非アクテイブ状態
を指示する。また、上記選択したプロセツサにおいて、
上記選択した仮想プロセツサを走行させることをプロセ
ツサ状態表に指示しておく。次に、デイスパツチ命令群
は、上記選択したプロセツサに対して、外部割込みを発
生させるために、従来よりあるマルチプロセツサ用命令
SIGP(Signal Processor)を発行する。これにより、SI
GP命令が発行されたプロセツサに外部割込みが報告さ
れ、その割込み処理プログラムにおいて、次の処理が行
われる。すなわち、割込み処理プログラムは、プロセツ
サ状態表により、そのプロセツサによつて走行させる仮
想プロセツサを識別し、この仮想プロセツサのタイムス
ライス値をそのプロセツサのタイマに設定し、その仮想
プロセツサの状態退避領域の内容をプロセツサのレジス
タに設定することにより、上記選択した仮想プロセツサ
を走行状態にする。
ディスパツチ命令群は、上述の処理を繰り返すことに
より、プロセツサ状態表に非アクテイブ状態を指示され
ていたプロセツサ上で仮想プロセツサを走行させること
ができる。
より、プロセツサ状態表に非アクテイブ状態を指示され
ていたプロセツサ上で仮想プロセツサを走行させること
ができる。
次に、デイスパツチ命令群は、さらにウエイト状態で
なくアクテイブ状態でもない仮想プロセツサ群の中で、
最も走行優先度の高い仮想プロセツサを選択し、その仮
想プロセツサのアクテイブフラグにアクテイブ状態を指
示する。ただし、条件を満足する仮想プロセツサが存在
しない場合には、この処理を行つているプロセツサのプ
ロセツサ状態表のフイールドに、非アクテイブ状態を指
示する。条件を満足する仮想プロセツサが存在する場合
には、この仮想プロセツサのタイムスライス値をタイマ
に設定し、その仮想プロセツサの状態退避領域の内容を
プロセツサのレジスタに設定することにより、このプロ
セツサでの上記選択した仮想プロセツサを走行状態にす
る。
なくアクテイブ状態でもない仮想プロセツサ群の中で、
最も走行優先度の高い仮想プロセツサを選択し、その仮
想プロセツサのアクテイブフラグにアクテイブ状態を指
示する。ただし、条件を満足する仮想プロセツサが存在
しない場合には、この処理を行つているプロセツサのプ
ロセツサ状態表のフイールドに、非アクテイブ状態を指
示する。条件を満足する仮想プロセツサが存在する場合
には、この仮想プロセツサのタイムスライス値をタイマ
に設定し、その仮想プロセツサの状態退避領域の内容を
プロセツサのレジスタに設定することにより、このプロ
セツサでの上記選択した仮想プロセツサを走行状態にす
る。
(2) 第1の仮想プロセツサが走行中に、第2の仮想
プロセツサの割込みがハードウエアおよびマイクロプロ
グラムにより直接実行され、この割込みにより、第2の
仮想プロセツサのウエイト状態が解除された場合には、
割込み処理の延長上で仮想プロセツサ状態退避機構が起
動され、前記(1)の場合と同じような処理により仮想
プロセツサが起動される。
プロセツサの割込みがハードウエアおよびマイクロプロ
グラムにより直接実行され、この割込みにより、第2の
仮想プロセツサのウエイト状態が解除された場合には、
割込み処理の延長上で仮想プロセツサ状態退避機構が起
動され、前記(1)の場合と同じような処理により仮想
プロセツサが起動される。
(3) 仮想プロセツサが走行開始後、VMCPがこの仮想
プロセツサに指定したタイムスライス値の時間が経過し
た時の割込み処理をVMCPが介在することなく、ハードウ
エアおよびマイクロプログラムにより直接実行する場合
には、割込み処理の延長上で仮想プロセツサ状態退避機
構が起動され、前記(1)の場合と同じ処理により仮想
プロセツサが起動される。
プロセツサに指定したタイムスライス値の時間が経過し
た時の割込み処理をVMCPが介在することなく、ハードウ
エアおよびマイクロプログラムにより直接実行する場合
には、割込み処理の延長上で仮想プロセツサ状態退避機
構が起動され、前記(1)の場合と同じ処理により仮想
プロセツサが起動される。
(4) 仮想プロセツサが走行開始後、VMCPがこの仮想
プロセツサに指定したタイムスライス値の時間が経過し
た時の仮想プロセツサ切換処理をVMCPが介在して行う場
合、あるいは、前記の(1)(2)で述べたプロセツサ
をウエイト状態にする命令、または割込み処理をVMCPが
介在して行う場合には、VMCPまたは仮想プロセツサ状態
退避機構、および仮想プロセツサ状態退避マイクロプロ
グラムは、走行していた仮想プロセツサの状態を該当す
る状態退避領域に格納し、該当する仮想プロセツサのア
クテイブフラグに非アクテイブ状態を設定する。次に、
VMCPは、制御がVMCPに渡された原因に応じて、タイムス
ライス値を使い切つた場合の処理、プロセツサをウエイ
ト状態にする命令のシミユレーシヨン、割込み処理を行
つた後、本発明による仮想プロセツサ選択・起動用命令
を発行する。この命令により、前記(1)で述べたデイ
スパツチ命令群に制御が渡され、選択したプロセツサ上
で走行優先度に従つて選択した仮想プロセツサが起動さ
れる。
プロセツサに指定したタイムスライス値の時間が経過し
た時の仮想プロセツサ切換処理をVMCPが介在して行う場
合、あるいは、前記の(1)(2)で述べたプロセツサ
をウエイト状態にする命令、または割込み処理をVMCPが
介在して行う場合には、VMCPまたは仮想プロセツサ状態
退避機構、および仮想プロセツサ状態退避マイクロプロ
グラムは、走行していた仮想プロセツサの状態を該当す
る状態退避領域に格納し、該当する仮想プロセツサのア
クテイブフラグに非アクテイブ状態を設定する。次に、
VMCPは、制御がVMCPに渡された原因に応じて、タイムス
ライス値を使い切つた場合の処理、プロセツサをウエイ
ト状態にする命令のシミユレーシヨン、割込み処理を行
つた後、本発明による仮想プロセツサ選択・起動用命令
を発行する。この命令により、前記(1)で述べたデイ
スパツチ命令群に制御が渡され、選択したプロセツサ上
で走行優先度に従つて選択した仮想プロセツサが起動さ
れる。
(5) VM走行中に、VM上のOSが、本発明により設定さ
れる1組以上の特定命令の命令コードおよび条件コード
の組を保持する手段に指定されている命令コードの命令
を発行し、しかもその条件コードが上記保持手段の条件
コードに一致する場合には、次の処理を行う。一般にマ
ルチプロセツサを構成する計算機下のOSでは、複数のプ
ロセツサが同一のメモリを参照・更新する場合の競合を
防ぐために、ロツクの手法を用いている。すなわち、一
方のプロセツサが特定の命令により特定のメモリにロツ
クをかけると、他のプロセツサはロツクをかけたプロセ
ツサがロツクを解除するまで、そのメモリの参照・更新
はできない。仮想計算機システムでは、実プロセツサが
例えば2台存在しても、同一VM上の仮想プロセツサが走
行しているとは限らない。このため、VMの領域にロツク
がかかつているために、あるプロセツサ上でOSがロツク
の解除を待つてループする場合には、ロツクをかけたVM
の仮想プロセツサを走行させ、ロツクの解除を行わせる
ことが望ましい。
れる1組以上の特定命令の命令コードおよび条件コード
の組を保持する手段に指定されている命令コードの命令
を発行し、しかもその条件コードが上記保持手段の条件
コードに一致する場合には、次の処理を行う。一般にマ
ルチプロセツサを構成する計算機下のOSでは、複数のプ
ロセツサが同一のメモリを参照・更新する場合の競合を
防ぐために、ロツクの手法を用いている。すなわち、一
方のプロセツサが特定の命令により特定のメモリにロツ
クをかけると、他のプロセツサはロツクをかけたプロセ
ツサがロツクを解除するまで、そのメモリの参照・更新
はできない。仮想計算機システムでは、実プロセツサが
例えば2台存在しても、同一VM上の仮想プロセツサが走
行しているとは限らない。このため、VMの領域にロツク
がかかつているために、あるプロセツサ上でOSがロツク
の解除を待つてループする場合には、ロツクをかけたVM
の仮想プロセツサを走行させ、ロツクの解除を行わせる
ことが望ましい。
ロツクがかかつているか否かは、特定の命令におい
て、特定の条件コードとなるか否かで判定できる。この
ため、本発明では、上記命令コードと条件コードとを保
持するレジスタを設ける。そして、VM上のOSが上記命令
を発行し、その条件コードが上記特定の条件コードの場
合には、仮想プロセツサ状態退避機構が起動され、仮想
プロセツサ状態退避マイクロプログラムとともに、走行
中の仮想プロセツサの状態を該当する状態退避領域に格
納し、またその仮想プロセツサのアクテイブフラグに非
アクテイブ状態を設定する。
て、特定の条件コードとなるか否かで判定できる。この
ため、本発明では、上記命令コードと条件コードとを保
持するレジスタを設ける。そして、VM上のOSが上記命令
を発行し、その条件コードが上記特定の条件コードの場
合には、仮想プロセツサ状態退避機構が起動され、仮想
プロセツサ状態退避マイクロプログラムとともに、走行
中の仮想プロセツサの状態を該当する状態退避領域に格
納し、またその仮想プロセツサのアクテイブフラグに非
アクテイブ状態を設定する。
次に、仮想プロセツサ状態退避機構および仮想プロセツ
サ状態退避マイクロプログラムは、主記憶装置上のデイ
スパツチ命令群に制御を渡す。デイスパツチ命令群は、
走行していた仮想プロセツサと同一VM上の仮想プロセツ
サの状態の判定と選択を行い、前記(1)と同じ処理に
より、上記仮想プロセツサを走行状態にする。
サ状態退避マイクロプログラムは、主記憶装置上のデイ
スパツチ命令群に制御を渡す。デイスパツチ命令群は、
走行していた仮想プロセツサと同一VM上の仮想プロセツ
サの状態の判定と選択を行い、前記(1)と同じ処理に
より、上記仮想プロセツサを走行状態にする。
以上が、本発明による仮想プロセツサの切換え制御の
処理概要である。各仮想プロセツサの走行優先度は、VM
CPがコマンド等により固定的に与えることも可能であ
り、また仮想プロセツサ走行中のプロセツサ利用率等に
より動的にVMCPが変更することも可能である。また、走
行優先度とタイムスライス値との対応表を持つことによ
り、仮想プロセツサのタイムスライス値を動的に制御す
ることも可能である。
処理概要である。各仮想プロセツサの走行優先度は、VM
CPがコマンド等により固定的に与えることも可能であ
り、また仮想プロセツサ走行中のプロセツサ利用率等に
より動的にVMCPが変更することも可能である。また、走
行優先度とタイムスライス値との対応表を持つことによ
り、仮想プロセツサのタイムスライス値を動的に制御す
ることも可能である。
このように、本発明では、少量のハードウエアおよび
マイクロプログラムにより、VMCPが指定した走行優先度
にもとづき、次に走行する仮想プロセツサの選択と起動
を行うことによつて、オーバヘツドを削減している。
マイクロプログラムにより、VMCPが指定した走行優先度
にもとづき、次に走行する仮想プロセツサの選択と起動
を行うことによつて、オーバヘツドを削減している。
以下、本発明の実施例を、図面により詳細に説明す
る。第1図は、本発明に係るディスパッチ制御機構の構
成の一実施例を示すブロック図である。第1図におい
て、1は主記憶装置、4は命令実行回路、5は割込み回
路、6は各プロセツサを制御するプロセツサレジスタ、
7は仮想プロセツサの切換え信号を線107を介して割込
み回路5に送信するためのタイマ、10は仮想プロセツサ
状態退避機構、35はアドレスレジスタである。
る。第1図は、本発明に係るディスパッチ制御機構の構
成の一実施例を示すブロック図である。第1図におい
て、1は主記憶装置、4は命令実行回路、5は割込み回
路、6は各プロセツサを制御するプロセツサレジスタ、
7は仮想プロセツサの切換え信号を線107を介して割込
み回路5に送信するためのタイマ、10は仮想プロセツサ
状態退避機構、35はアドレスレジスタである。
主記憶装置1には、VMS下におけるVMの各仮想プロセ
ツサごとに、仮想プロセツサを走行状態にする時に必要
な情報を持つ状態表示テーブル2−1−0〜2−n−0
が設けられる。仮想プロセツサ管理用テーブル3は、仮
想プロセツサの状態表示テーブル2−1〜2−nを、走
行優先度別にキユーイングするためのテーブルである。
走行可能仮想プロセツサ管理用テーブル3−iでは、i
の値が小さいほど、走行優先度の高い状態表示テーブル
2−1〜2−nがキユーイングされる。第1図では、2
番目に走行優先度の高い仮想プロセツサ管理用テーブル
3−1に3つの状態表示テーブル2−1−0,2−1−1
および2−1−2がキユーイングされており、また最も
走行優先度の低い仮想プロセツサ管理用テーブル3−n
には、1つの状態表示テーブル2−n−0がキユーイン
グされている。また、プロセツサ状態テーブル28は、計
算機を構成するプロセツサの状態の管理テーブルであ
る。さらに、デイスパツチ命令群29は、仮想プロセツサ
およびプロセツサを選択し、この選択したプロセツサ上
で、該当仮想プロセツサの起動を行う命令群である。命
令実行回路4における12は命令実行マイクロプログラム
であり、割込み回路5における13は割込みマイクロプロ
グラムである。また、プロセツサレジスタ6にはPSW8が
設置され、このPSW8には該当プロセツサがウエイト状態
か否かを示すウエイトビツト9が設けられる。ウエイト
ビツト9は、その値が“1"の時、プロセツサがウエイト
状態であることを示し、“0"の時、プロセツサがウエイ
ト状態でないことを示す。6−1〜6−jは、それぞれ
各プロセッサ制御用のプロセッサレジスタである。仮想
プロセツサ状態退避機構10における11は、仮想プロセツ
サ状態退避マイクロプログラムである。アドレスレジス
タ35には、走行中の仮想プロセツサ状態表示テーブル2
−1〜2−nのアドレスが格納される。また、プロセツ
サ番号レジスタ31は、該当プロセツサのプロセツサ番号
を保持する。第1図では、この場合、状態表示テーブル
2−1−0に対応する仮想プロセツサが走行中であるこ
とを表わす。
ツサごとに、仮想プロセツサを走行状態にする時に必要
な情報を持つ状態表示テーブル2−1−0〜2−n−0
が設けられる。仮想プロセツサ管理用テーブル3は、仮
想プロセツサの状態表示テーブル2−1〜2−nを、走
行優先度別にキユーイングするためのテーブルである。
走行可能仮想プロセツサ管理用テーブル3−iでは、i
の値が小さいほど、走行優先度の高い状態表示テーブル
2−1〜2−nがキユーイングされる。第1図では、2
番目に走行優先度の高い仮想プロセツサ管理用テーブル
3−1に3つの状態表示テーブル2−1−0,2−1−1
および2−1−2がキユーイングされており、また最も
走行優先度の低い仮想プロセツサ管理用テーブル3−n
には、1つの状態表示テーブル2−n−0がキユーイン
グされている。また、プロセツサ状態テーブル28は、計
算機を構成するプロセツサの状態の管理テーブルであ
る。さらに、デイスパツチ命令群29は、仮想プロセツサ
およびプロセツサを選択し、この選択したプロセツサ上
で、該当仮想プロセツサの起動を行う命令群である。命
令実行回路4における12は命令実行マイクロプログラム
であり、割込み回路5における13は割込みマイクロプロ
グラムである。また、プロセツサレジスタ6にはPSW8が
設置され、このPSW8には該当プロセツサがウエイト状態
か否かを示すウエイトビツト9が設けられる。ウエイト
ビツト9は、その値が“1"の時、プロセツサがウエイト
状態であることを示し、“0"の時、プロセツサがウエイ
ト状態でないことを示す。6−1〜6−jは、それぞれ
各プロセッサ制御用のプロセッサレジスタである。仮想
プロセツサ状態退避機構10における11は、仮想プロセツ
サ状態退避マイクロプログラムである。アドレスレジス
タ35には、走行中の仮想プロセツサ状態表示テーブル2
−1〜2−nのアドレスが格納される。また、プロセツ
サ番号レジスタ31は、該当プロセツサのプロセツサ番号
を保持する。第1図では、この場合、状態表示テーブル
2−1−0に対応する仮想プロセツサが走行中であるこ
とを表わす。
第2図は、第1図における状態表示テーブルの構成を
示す図である。第2図において、14は該当仮想プロセツ
サのプロセツサの状態を退避するための状態退避領域、
15は該当仮想プロセツサの走行優先度、16は該当仮想プ
ロセツサのタイムスライス値である。17は同一走行優先
度の状態表示テーブル2−1〜2−nを、仮想プロセツ
サ管理用テーブル3にキユーイングするための同一走行
優先度状態表示テーブルアドレスポインタ、18は同一VM
上の仮想プロセツサの状態表示テーブルのアドレスを有
する同一VM状態表示テーブルアドレスポインタである。
19は、その仮想プロセツサがアクテイブである、つまり
あるプロセツサで走行中か否かを示すアクテイブフラグ
である。20は、該当仮想プロセツサの走行優先度14は、
VMCPが動的に変更するか否かを指示するチエインジビツ
トである。また、30はプロセツサ番号であり、アクテイ
ブフラグ19が“1"の時に、走行中の該当プロセツサ番号
を格納する。
示す図である。第2図において、14は該当仮想プロセツ
サのプロセツサの状態を退避するための状態退避領域、
15は該当仮想プロセツサの走行優先度、16は該当仮想プ
ロセツサのタイムスライス値である。17は同一走行優先
度の状態表示テーブル2−1〜2−nを、仮想プロセツ
サ管理用テーブル3にキユーイングするための同一走行
優先度状態表示テーブルアドレスポインタ、18は同一VM
上の仮想プロセツサの状態表示テーブルのアドレスを有
する同一VM状態表示テーブルアドレスポインタである。
19は、その仮想プロセツサがアクテイブである、つまり
あるプロセツサで走行中か否かを示すアクテイブフラグ
である。20は、該当仮想プロセツサの走行優先度14は、
VMCPが動的に変更するか否かを指示するチエインジビツ
トである。また、30はプロセツサ番号であり、アクテイ
ブフラグ19が“1"の時に、走行中の該当プロセツサ番号
を格納する。
第3図は、第1図におけるプロセツサ状態テーブルの
説明図である。プロセツサテーブル28は、計算機を構成
する複数のプロセツサごとに、現在プロセツサがアクテ
イブ状態か否か、またアクテイブ状態の場合には、どの
仮想プロセツサをアクテイブとしているかを表わす。す
なわち、プロセツサアクテイブビツト32−lが“0"の時
には、プロセツサ番号lのプロセツサ、つまりプロセツ
サ番号レジスタ31にlが格納されているプロセツサは、
非アクテイブ状態であることを表わす。また、プロセツ
サアクテイブビツト32−lが“1"の時には、プロセツサ
番号lのプロセツサはアクテイブ状態であり、またアク
テイブ状態表示テーブルアドレス34−lにアドレスが格
納されている状態表示テーブル2に対応する仮想プロセ
ツサが使用中であることを表わす。また、プロセツサロ
ツクワード33−lは、プロセツサ状態テーブル28の該当
プロセツサフイールドの参照、および更新を行う場合の
ロツクに用いるフイールドである。
説明図である。プロセツサテーブル28は、計算機を構成
する複数のプロセツサごとに、現在プロセツサがアクテ
イブ状態か否か、またアクテイブ状態の場合には、どの
仮想プロセツサをアクテイブとしているかを表わす。す
なわち、プロセツサアクテイブビツト32−lが“0"の時
には、プロセツサ番号lのプロセツサ、つまりプロセツ
サ番号レジスタ31にlが格納されているプロセツサは、
非アクテイブ状態であることを表わす。また、プロセツ
サアクテイブビツト32−lが“1"の時には、プロセツサ
番号lのプロセツサはアクテイブ状態であり、またアク
テイブ状態表示テーブルアドレス34−lにアドレスが格
納されている状態表示テーブル2に対応する仮想プロセ
ツサが使用中であることを表わす。また、プロセツサロ
ツクワード33−lは、プロセツサ状態テーブル28の該当
プロセツサフイールドの参照、および更新を行う場合の
ロツクに用いるフイールドである。
先ず、第1の実施例として、走行中の仮想プロセツサ
上のOSが、プロセツサをウエイト状態にする命令を発行
し、この命令がVMCPの介在なしに、ハードウエアおよび
マイクロプログラムにより直接実行された場合の処理を
述べる。
上のOSが、プロセツサをウエイト状態にする命令を発行
し、この命令がVMCPの介在なしに、ハードウエアおよび
マイクロプログラムにより直接実行された場合の処理を
述べる。
走行中の仮想プロセツサ上のOSがPSW8をウエイト状態
にする、つまりウエイトビツト9を“1"にする命令を線
100を通して命令実行回路4に出すと、この命令が命令
実行回路4および命令実行マイクロプログラム12により
直接実行可能な場合には、線101によりPSW8のウエイト
ビツト9が“1"となる。ウエイトビツト9が“1"となる
と、線102により仮想プロセツサ状態退避機構10が起動
され、仮想プロセツサ状態退避マイクロプログラム11と
ともに、次のようにして仮想プロセツサの状態退避を行
う。
にする、つまりウエイトビツト9を“1"にする命令を線
100を通して命令実行回路4に出すと、この命令が命令
実行回路4および命令実行マイクロプログラム12により
直接実行可能な場合には、線101によりPSW8のウエイト
ビツト9が“1"となる。ウエイトビツト9が“1"となる
と、線102により仮想プロセツサ状態退避機構10が起動
され、仮想プロセツサ状態退避マイクロプログラム11と
ともに、次のようにして仮想プロセツサの状態退避を行
う。
先ず、仮想プロセツサ状態退避機構10および仮想プロ
セツサ状態退避マイクロプログラム11は、線121からア
ドレスレジスタ35の値を取り込み、この値をアドレスと
する状態表示テーブル2−1−0の状態退避領域14に、
プロセツサレジスタ6の内容を線102、線103により退避
する。また、線122、線103によりタイマ7の値を、状態
表示テーブル2−1−0のタイムスライス値16に退避す
る。また、線103により状態表示テーブル2−1−0の
アクテイブフラグ19に、“0"を設定する。
セツサ状態退避マイクロプログラム11は、線121からア
ドレスレジスタ35の値を取り込み、この値をアドレスと
する状態表示テーブル2−1−0の状態退避領域14に、
プロセツサレジスタ6の内容を線102、線103により退避
する。また、線122、線103によりタイマ7の値を、状態
表示テーブル2−1−0のタイムスライス値16に退避す
る。また、線103により状態表示テーブル2−1−0の
アクテイブフラグ19に、“0"を設定する。
次に、仮想プロセツサ状態退避機構10および仮想プロ
セツサ状態退避マイクロプログラム11は、主記憶装置1
上のデイスパツチ命令群29に制御を渡す。これは、例え
ば、デイスパツチ命令群29のアドレスを、特定のプロセ
ツサレジスタ6のレジスタに設けておくことにより可能
である。また、プロセツサ状態テーブル28および仮想プ
ロセツサ管理用テーブル3についても、アドレスが特定
のプロセツサレジスタ6のレジスタに設定されている。
デイスパツチ命令群29の処理は、次のようにして行われ
る。先ず、プロセツサ状態テーブル28のプロセツサロツ
クワード33−lに対してロツクをかけた後、プロセツサ
アクテイブビツト32−lが“1"か否かを判定する。プロ
セツサがアクテイブ、つまりプロセツサアクテイブビツ
ト32−lが“1"であれば、ロツクを解除して、次のプロ
セツサのフイールドを判定する。プロセツサが非アクテ
イブ状態、つまりプロセツサアクテイブビツト32−lが
“0"であれば、プロセツサアクテイブビツト32−lに
“1"を設定後、ロツクを解除する。以上の処理により、
アクテイブでないプロセツサを選択する。次に、仮想プ
ロセツサ管理用テーブル3にキユーイングされたウエイ
ト状態でなく、かつアクテイブ状態でない状態表示テー
ブル2のうちで、最も走行優先度が高いものを選択し、
状態表示テーブル2のアクテイブフラグ19に“1"を設定
する。状態表示テーブル2に対応する仮想プロセツサが
ウエイト状態か否かは、状態退避領域14中にあるPSW8の
ウエイトビツト9に対応するビツトにより判定できる。
すなわち、このビツトが“1"であれば、該当する仮想プ
ロセツサはウエイト状態であり、“0"であればウエイト
状態でない。ただし、条件を満足する仮想プロセツサが
存在しない場合には、プロセツサ状態テーブル28の上記
選択したプロセツサのプロセツサアクテイブビツト32を
“0"にする。
セツサ状態退避マイクロプログラム11は、主記憶装置1
上のデイスパツチ命令群29に制御を渡す。これは、例え
ば、デイスパツチ命令群29のアドレスを、特定のプロセ
ツサレジスタ6のレジスタに設けておくことにより可能
である。また、プロセツサ状態テーブル28および仮想プ
ロセツサ管理用テーブル3についても、アドレスが特定
のプロセツサレジスタ6のレジスタに設定されている。
デイスパツチ命令群29の処理は、次のようにして行われ
る。先ず、プロセツサ状態テーブル28のプロセツサロツ
クワード33−lに対してロツクをかけた後、プロセツサ
アクテイブビツト32−lが“1"か否かを判定する。プロ
セツサがアクテイブ、つまりプロセツサアクテイブビツ
ト32−lが“1"であれば、ロツクを解除して、次のプロ
セツサのフイールドを判定する。プロセツサが非アクテ
イブ状態、つまりプロセツサアクテイブビツト32−lが
“0"であれば、プロセツサアクテイブビツト32−lに
“1"を設定後、ロツクを解除する。以上の処理により、
アクテイブでないプロセツサを選択する。次に、仮想プ
ロセツサ管理用テーブル3にキユーイングされたウエイ
ト状態でなく、かつアクテイブ状態でない状態表示テー
ブル2のうちで、最も走行優先度が高いものを選択し、
状態表示テーブル2のアクテイブフラグ19に“1"を設定
する。状態表示テーブル2に対応する仮想プロセツサが
ウエイト状態か否かは、状態退避領域14中にあるPSW8の
ウエイトビツト9に対応するビツトにより判定できる。
すなわち、このビツトが“1"であれば、該当する仮想プ
ロセツサはウエイト状態であり、“0"であればウエイト
状態でない。ただし、条件を満足する仮想プロセツサが
存在しない場合には、プロセツサ状態テーブル28の上記
選択したプロセツサのプロセツサアクテイブビツト32を
“0"にする。
いま、状態表示テーブル2−1−1に対応する仮想プ
ロセツサがウエイト状態でなく、アクテイブフラグ19が
“0"であるとする。これにより、デイスパツチ命令群29
は、プロセツサ状態テーブル28の上記選択したプロセツ
サのアクテイブ状態表示テーブルアドレス34に、上記選
択した仮想プロセツサの状態表示テーブル2−1−1の
アドレスを設定する。また、状態表示テーブル2−1−
1のプロセツサ番号30に、上記選択したプロセツサのプ
ロセツサ番号を設定する。ここで、プロセツサ番号は、
プロセツサ状態テーブル28のインデツクスに等しいもの
とする。すなわち、プロセツサ状態テーブル28−mに対
応するプロセツサのプロセツサ番号は、mとする。次
に、デイスパツチ命令群29は、従来よりマルチプロセツ
サ支援用にあるSIGP命令の上記選択したプロセツサに対
して発行する。SIGP命令は、オペランドとしてプロセツ
サ番号と、副指命コードを持つが、プロセツサ番号に
は、上記選択したプロセツサのプロセツサ番号を設定
し、副指命コードには、仮想プロセツサの起動の指示を
行う。SIGP命令により、上記選択したプロセツサに対し
て、外部割込みが発生するとともに、副指命コードが送
られる。この外部割込みにより、次の処理が行われ、そ
のプロセツサが起動される。
ロセツサがウエイト状態でなく、アクテイブフラグ19が
“0"であるとする。これにより、デイスパツチ命令群29
は、プロセツサ状態テーブル28の上記選択したプロセツ
サのアクテイブ状態表示テーブルアドレス34に、上記選
択した仮想プロセツサの状態表示テーブル2−1−1の
アドレスを設定する。また、状態表示テーブル2−1−
1のプロセツサ番号30に、上記選択したプロセツサのプ
ロセツサ番号を設定する。ここで、プロセツサ番号は、
プロセツサ状態テーブル28のインデツクスに等しいもの
とする。すなわち、プロセツサ状態テーブル28−mに対
応するプロセツサのプロセツサ番号は、mとする。次
に、デイスパツチ命令群29は、従来よりマルチプロセツ
サ支援用にあるSIGP命令の上記選択したプロセツサに対
して発行する。SIGP命令は、オペランドとしてプロセツ
サ番号と、副指命コードを持つが、プロセツサ番号に
は、上記選択したプロセツサのプロセツサ番号を設定
し、副指命コードには、仮想プロセツサの起動の指示を
行う。SIGP命令により、上記選択したプロセツサに対し
て、外部割込みが発生するとともに、副指命コードが送
られる。この外部割込みにより、次の処理が行われ、そ
のプロセツサが起動される。
外部割込みの処理では、先ずプロセツサ番号レジスタ
読み取り命令を発行する。この命令により、命令実行回
路4と命令実行マイクロプログラム12は、線100,線104
によりプロセツサ番号レジスタ31の値をプロセツサレジ
スタ6内のレジスタ、または主記憶上の指定された領域
に格納する。次に、プロセツサ状態テーブル28の上記命
令により得られたプロセツサ番号に対応するプロセツサ
フイールドのアクテイブ状態表示テーブルアドレス34に
アドレスが格納される状態表示テーブル2−1−1に対
応する仮想プロセツサを、そのプロセツサにおいて走行
させる処理を行う。すなわち、線100,線120により、ア
ドレスレジスタ35に状態表示テーブル2−1−1のアド
レスを設定し、タイムスライス値16を線100,線108によ
りタイマ7へ、また線100,線101により状態退避領域14
の内容をプロセツサレジスタ6に設定する。以上の処理
により、状態表示テーブル2−1−1に対応する仮想プ
ロセツサの走行を開始する。
読み取り命令を発行する。この命令により、命令実行回
路4と命令実行マイクロプログラム12は、線100,線104
によりプロセツサ番号レジスタ31の値をプロセツサレジ
スタ6内のレジスタ、または主記憶上の指定された領域
に格納する。次に、プロセツサ状態テーブル28の上記命
令により得られたプロセツサ番号に対応するプロセツサ
フイールドのアクテイブ状態表示テーブルアドレス34に
アドレスが格納される状態表示テーブル2−1−1に対
応する仮想プロセツサを、そのプロセツサにおいて走行
させる処理を行う。すなわち、線100,線120により、ア
ドレスレジスタ35に状態表示テーブル2−1−1のアド
レスを設定し、タイムスライス値16を線100,線108によ
りタイマ7へ、また線100,線101により状態退避領域14
の内容をプロセツサレジスタ6に設定する。以上の処理
により、状態表示テーブル2−1−1に対応する仮想プ
ロセツサの走行を開始する。
以上述べた処理を繰り返すことにより、該当プロセツ
サ以外の非アクテイブ状態のプロセツサにおいて、走行
の条件を満足する仮想プロセツサを走行させることがで
きる。また、デイスパツチ命令群29は、前述の方法によ
り、ウエイト状態でなく、かつアクテイブ状態でない仮
想プロセツサ群の中で、最も走行優先度の高い仮想プロ
セツサを選択し、その状態表示テーブル2のアクテイブ
フラグ19に“1"を設定する。ただし、条件を満足する仮
想プロセツサが存在しない場合には、デイスパツチ命令
群29は、プロセツサ番号レジスタ読み取り命令により、
前述のように、そのプロセツサのプロセツサ番号をプロ
セツサ番号レジスタ31から、線100,線104により読み出
し、プロセツサ状態表28の該当するフイールドのプロセ
ツサアクテイブビツト32に、非アクテイブ状態を示す
“0"を設定する。条件を満足する仮想プロセツサが存在
する場合には、選択した状態表示テーブル2のプロセツ
サ番号30に上記プロセツサ番号を格納する。また、上記
選択した状態表示テーブル2のタイムスライス値16を、
線100,線108により命令実行回路4および命令実行マイ
クロプログラム12によつてタイマ7へ、また、状態退避
領域14の内容を線100,線101により命令実行回路4およ
び命令実行マイクロプログラム12によつてプロセツサレ
ジスタ6に設定することにより、このプロセツサで、上
記選択した仮想プロセツサを走行状態にする。
サ以外の非アクテイブ状態のプロセツサにおいて、走行
の条件を満足する仮想プロセツサを走行させることがで
きる。また、デイスパツチ命令群29は、前述の方法によ
り、ウエイト状態でなく、かつアクテイブ状態でない仮
想プロセツサ群の中で、最も走行優先度の高い仮想プロ
セツサを選択し、その状態表示テーブル2のアクテイブ
フラグ19に“1"を設定する。ただし、条件を満足する仮
想プロセツサが存在しない場合には、デイスパツチ命令
群29は、プロセツサ番号レジスタ読み取り命令により、
前述のように、そのプロセツサのプロセツサ番号をプロ
セツサ番号レジスタ31から、線100,線104により読み出
し、プロセツサ状態表28の該当するフイールドのプロセ
ツサアクテイブビツト32に、非アクテイブ状態を示す
“0"を設定する。条件を満足する仮想プロセツサが存在
する場合には、選択した状態表示テーブル2のプロセツ
サ番号30に上記プロセツサ番号を格納する。また、上記
選択した状態表示テーブル2のタイムスライス値16を、
線100,線108により命令実行回路4および命令実行マイ
クロプログラム12によつてタイマ7へ、また、状態退避
領域14の内容を線100,線101により命令実行回路4およ
び命令実行マイクロプログラム12によつてプロセツサレ
ジスタ6に設定することにより、このプロセツサで、上
記選択した仮想プロセツサを走行状態にする。
次に、第2の実施例として、第1の仮想プロセツサが
走行中に、VMCPを介在させることなく割込み回路5およ
び割込みマイクロプログラム13により直接処理可能な割
込みが発生し、この割込みにより第2の仮想プロセツサ
のウエイト状態が解除された場合の処理について述べ
る。
走行中に、VMCPを介在させることなく割込み回路5およ
び割込みマイクロプログラム13により直接処理可能な割
込みが発生し、この割込みにより第2の仮想プロセツサ
のウエイト状態が解除された場合の処理について述べ
る。
割込みが、割込み回路5および割込みマイクロプログ
ラム13により第2の仮想プロセツサに線105によつて反
映され、その結果、第2の仮想プロセツサのウエイトあ
る状態が解除された場合、すなわち、第2の仮想プロセ
ツサの状態表示テーブル2内に状態退避領域14のPSWを
表わすフイールドのウエイトビツト9に相当する部分が
“1"から“0"に変わつた場合、線106により仮想プロセ
ツサ状態退避機構10に起動信号を送出する。その後、第
1の実施例で述べた場合と全く同じ処理により、仮想プ
ロセツサを走行させる。
ラム13により第2の仮想プロセツサに線105によつて反
映され、その結果、第2の仮想プロセツサのウエイトあ
る状態が解除された場合、すなわち、第2の仮想プロセ
ツサの状態表示テーブル2内に状態退避領域14のPSWを
表わすフイールドのウエイトビツト9に相当する部分が
“1"から“0"に変わつた場合、線106により仮想プロセ
ツサ状態退避機構10に起動信号を送出する。その後、第
1の実施例で述べた場合と全く同じ処理により、仮想プ
ロセツサを走行させる。
次に、第3の実施例として、仮想プロセツサが走行開
始後、VMCPが介在することなく、ハードウエアおよびマ
イクロプログラムにより直接実行する場合の処理につい
て述べる。
始後、VMCPが介在することなく、ハードウエアおよびマ
イクロプログラムにより直接実行する場合の処理につい
て述べる。
この場合にも、第2の実施例と同じように、割込み回
路5および割込みマイクロプログラム13は、線106によ
り仮想プロセツサ状態退避機構10に起動信号を送る。そ
の後、第1の実施例で述べた場合とほぼ同じ方法によ
り、仮想プロセツサのデイスパツチ処理を行うが、次の
2つの点が異なる。
路5および割込みマイクロプログラム13は、線106によ
り仮想プロセツサ状態退避機構10に起動信号を送る。そ
の後、第1の実施例で述べた場合とほぼ同じ方法によ
り、仮想プロセツサのデイスパツチ処理を行うが、次の
2つの点が異なる。
第1番目は、仮想プロセツサ状態退避機構10および仮
想プロセツサ状態退避マイクロプログラム11が、該当す
る状態表示テーブル2のタイムスライス値16に設定する
値は、タイマ7の値ではなく、例えば特定のプロセツサ
レジスタ6に設定されている正の値を線102,線103によ
り設定する。
想プロセツサ状態退避マイクロプログラム11が、該当す
る状態表示テーブル2のタイムスライス値16に設定する
値は、タイマ7の値ではなく、例えば特定のプロセツサ
レジスタ6に設定されている正の値を線102,線103によ
り設定する。
第2番目は、走行していた仮想プロセツサの状態表示
テーブル2を現在キユーイングされている仮想プロセツ
サ管理用テーブル3−iの1番最後のキユーイングす
る。以上の変更により、仮想プロセツサを走行させる。
テーブル2を現在キユーイングされている仮想プロセツ
サ管理用テーブル3−iの1番最後のキユーイングす
る。以上の変更により、仮想プロセツサを走行させる。
次に、本発明の第4の実施例について、仮想プロセツ
サの選択・起動用命令に関する動作を説明する。VMCPが
仮想プロセツサの切換処理を行う場合としては、仮想プ
ロセツサが走行開始後、その仮想プロセツサに割当てら
れたタイムスライス値に示された時間が経過した時の割
込み処理をVMCPが介在して行う場合、OSが発行したPSW
をウエイト状態にする命令のシミユレーシヨンを、VMCP
が行う場合、およびVMCPによる割込みのシミユレーシヨ
ンにより、仮想プロセツサのウエイト状態が解除された
場合等が考えられる。
サの選択・起動用命令に関する動作を説明する。VMCPが
仮想プロセツサの切換処理を行う場合としては、仮想プ
ロセツサが走行開始後、その仮想プロセツサに割当てら
れたタイムスライス値に示された時間が経過した時の割
込み処理をVMCPが介在して行う場合、OSが発行したPSW
をウエイト状態にする命令のシミユレーシヨンを、VMCP
が行う場合、およびVMCPによる割込みのシミユレーシヨ
ンにより、仮想プロセツサのウエイト状態が解除された
場合等が考えられる。
本発明による仮想プロセツサ選択・起動用命令は、上
記の場合の仮想プロセツサの切換処理を高速化する。
記の場合の仮想プロセツサの切換処理を高速化する。
仮想プロセツサの走行が中断されると、VMCPまたは仮
想プロセツサ状態退避機構10および仮想プロセツサ状態
退避マイクロプログラム11により、走行していた仮想プ
ロセツサの状態を線102,線103により該当する状態表示
テーブル2の状態退避領域14に格納し、次に線122,線10
3によりタイマ7の値を該当するタイムスライス値に退
避する。また、該当仮想プロセツサのアクテイブフラグ
19に、非アクテイブ状態を表わす“0"を設定する。次
に、VMCPは、制御がVMCPに渡された原因に応じて、タイ
ムスライス値を使い切つた場合の処理、プロセツサをウ
エイト状態にする命令のシミユレーシヨン、割込み処理
を行う。その後、VMCPは、仮想プロセツサ選択・起動用
命令を発行する。VMCPが仮想プロセツサ選択・起動用命
令を発行すると、線100を通して命令実行回路4に仮想
プロセツサ選択・起動用命令の起動信号が出される。仮
想プロセツサ選択・起動用命令が発行されると、命令実
行回路4および命令実行マイクロプログラム12は、線10
1によりデイスパツチ命令群29のアドレスを有するプロ
セツサレジスタ6−jの値を読み出し、主記憶装置1上
のデイスパツチ命令群29に制御を渡す。デイスパツチ命
令群29の処理は、第1の実施例と全く同じである。これ
により、走行可能な仮想プロセツサを走行状態にするこ
とができる。
想プロセツサ状態退避機構10および仮想プロセツサ状態
退避マイクロプログラム11により、走行していた仮想プ
ロセツサの状態を線102,線103により該当する状態表示
テーブル2の状態退避領域14に格納し、次に線122,線10
3によりタイマ7の値を該当するタイムスライス値に退
避する。また、該当仮想プロセツサのアクテイブフラグ
19に、非アクテイブ状態を表わす“0"を設定する。次
に、VMCPは、制御がVMCPに渡された原因に応じて、タイ
ムスライス値を使い切つた場合の処理、プロセツサをウ
エイト状態にする命令のシミユレーシヨン、割込み処理
を行う。その後、VMCPは、仮想プロセツサ選択・起動用
命令を発行する。VMCPが仮想プロセツサ選択・起動用命
令を発行すると、線100を通して命令実行回路4に仮想
プロセツサ選択・起動用命令の起動信号が出される。仮
想プロセツサ選択・起動用命令が発行されると、命令実
行回路4および命令実行マイクロプログラム12は、線10
1によりデイスパツチ命令群29のアドレスを有するプロ
セツサレジスタ6−jの値を読み出し、主記憶装置1上
のデイスパツチ命令群29に制御を渡す。デイスパツチ命
令群29の処理は、第1の実施例と全く同じである。これ
により、走行可能な仮想プロセツサを走行状態にするこ
とができる。
次に、第5の実施例として、仮想プロセツサ1が走行
中に同一VMの仮想プロセツサ2がロツクをかけている領
域を参照・更新しようとする場合の処理を述べる。
中に同一VMの仮想プロセツサ2がロツクをかけている領
域を参照・更新しようとする場合の処理を述べる。
第4図は、本発明の他の実施例を示すVMSのブロツク
図である。第4図において、第1図と異なる点は、命令
コード等のレジスタ21〜24および演算器25,26を命令実
行回路4に接続したことである。21は、実行中の命令の
命令コードを保持する命令コードレジスタ、22は命令の
条件コードを保持する条件コードレジスタ、23は特定の
命令の命令コードを有する命令コード保持レジスタ、24
は特定の条件コードを有する条件コード保持レジスタ、
25,26は比較回路、27はアンド回路である。
図である。第4図において、第1図と異なる点は、命令
コード等のレジスタ21〜24および演算器25,26を命令実
行回路4に接続したことである。21は、実行中の命令の
命令コードを保持する命令コードレジスタ、22は命令の
条件コードを保持する条件コードレジスタ、23は特定の
命令の命令コードを有する命令コード保持レジスタ、24
は特定の条件コードを有する条件コード保持レジスタ、
25,26は比較回路、27はアンド回路である。
OSが命令を発行すると、線100により命令実行回路4
に命令起動信号が出る。命令実行回路4および命令実行
マイクロプログラム12は、条件コードレジスタ22を線11
5によりイニシヤライズした後、命令コードレジスタ21
に線113により該当する命令コードをセツトする。ま
た、上記命令の条件コードが決定した時に、命令実行回
路4は、条件コードレジスタ22に、この条件コードを設
定するものとする。本実施例では、命令コードレジスタ
21と条件コードレジスタ22を1個ずつ設けているが、複
数個持たせることも勿論可能である。
に命令起動信号が出る。命令実行回路4および命令実行
マイクロプログラム12は、条件コードレジスタ22を線11
5によりイニシヤライズした後、命令コードレジスタ21
に線113により該当する命令コードをセツトする。ま
た、上記命令の条件コードが決定した時に、命令実行回
路4は、条件コードレジスタ22に、この条件コードを設
定するものとする。本実施例では、命令コードレジスタ
21と条件コードレジスタ22を1個ずつ設けているが、複
数個持たせることも勿論可能である。
第5図は、本発明における状態表示テーブルのキユー
イング処理の説明図である。第5図において、状態表示
テーブル2−1−0と2−n−0は、同一VMの異なる仮
想プロセツサに対応するものであり、互いに同一VM状態
表示テーブルアドレスポインタ18(第2図参照)により
ポイントされている。これは、同一VMの全ての仮想プロ
セツサに対応する状態表示テーブル2を、仮想プロセツ
サがウエイト状態であるか否かにかかわらず、リンクす
るものとする。
イング処理の説明図である。第5図において、状態表示
テーブル2−1−0と2−n−0は、同一VMの異なる仮
想プロセツサに対応するものであり、互いに同一VM状態
表示テーブルアドレスポインタ18(第2図参照)により
ポイントされている。これは、同一VMの全ての仮想プロ
セツサに対応する状態表示テーブル2を、仮想プロセツ
サがウエイト状態であるか否かにかかわらず、リンクす
るものとする。
命令コード保持レジスタ23と条件コード保持レジスタ
24には、それぞれOSがある領域にロツクがかかつている
か否かを判定する時に使用する命令の命令コードと、上
記命令において、他プロセツサのロツクがかかつていた
時にPSW8に設定される条件コードをVMCP専用命令により
線100,112,114により、予め設定しておく。
24には、それぞれOSがある領域にロツクがかかつている
か否かを判定する時に使用する命令の命令コードと、上
記命令において、他プロセツサのロツクがかかつていた
時にPSW8に設定される条件コードをVMCP専用命令により
線100,112,114により、予め設定しておく。
状態表示テーブル2−1−0に対応する走行中の仮想
プロセツサ1のOSが、命令コード保持レジスタ23に命令
コードを有する命令を発行し、その条件コードが条件コ
ードレジスタ24に示された条件コードの場合、線116,11
7,118,119から信号が比較回路25および26に送られ、次
に線109、110から信号がアンドゲート27に送られ、線11
1により仮想プロセツサ切換制御機構(状態退避機構)1
0が起動される。仮想プロセツサ切換制御機構10および
仮想プロセツサ切換制御マイクロプログラム(状態退避
マイクロプログラム)11は、プロセツサレジスタ6の値
を、線102から取り込み、これをアドレスレジスタ35に
アドレスが格納されている状態表示テーブル2−1−0
の状態退避領域14に、線103により退避する。次に、線1
22,線103により、タイマ7の値をタイムスライス値16に
格納する。また、状態表示テーブル2−1−0のアクテ
イブフラグを“0"に設定する。
プロセツサ1のOSが、命令コード保持レジスタ23に命令
コードを有する命令を発行し、その条件コードが条件コ
ードレジスタ24に示された条件コードの場合、線116,11
7,118,119から信号が比較回路25および26に送られ、次
に線109、110から信号がアンドゲート27に送られ、線11
1により仮想プロセツサ切換制御機構(状態退避機構)1
0が起動される。仮想プロセツサ切換制御機構10および
仮想プロセツサ切換制御マイクロプログラム(状態退避
マイクロプログラム)11は、プロセツサレジスタ6の値
を、線102から取り込み、これをアドレスレジスタ35に
アドレスが格納されている状態表示テーブル2−1−0
の状態退避領域14に、線103により退避する。次に、線1
22,線103により、タイマ7の値をタイムスライス値16に
格納する。また、状態表示テーブル2−1−0のアクテ
イブフラグを“0"に設定する。
次に、仮想プロセツサ切換制御機構10および仮想プロ
セツサ切換制御マイクロプログラム11は、主記憶装置1
上のデイスパツチ命令群29に制御を渡す。デイスパツチ
命令群29の処理は、第1の実施例で述べて処理とほぼ同
じであるが、走行させる対象とする仮想プロセツサの選
択方法が異なる。本実施例では、デイスパツチ命令群29
は、直前に走行していた仮想プロセツサを除く、仮想プ
ロセツサと同一VM上の仮想プロセツサでウエイト状態で
なく、かつアクテイブ状態でない仮想プロセツサを、同
一VM状態表示テーブルアドレスポインタ18を用いて選択
する。これにより、中断された仮想プロセツサでない同
一VM上の仮想プロセツサを走行させることができる。
セツサ切換制御マイクロプログラム11は、主記憶装置1
上のデイスパツチ命令群29に制御を渡す。デイスパツチ
命令群29の処理は、第1の実施例で述べて処理とほぼ同
じであるが、走行させる対象とする仮想プロセツサの選
択方法が異なる。本実施例では、デイスパツチ命令群29
は、直前に走行していた仮想プロセツサを除く、仮想プ
ロセツサと同一VM上の仮想プロセツサでウエイト状態で
なく、かつアクテイブ状態でない仮想プロセツサを、同
一VM状態表示テーブルアドレスポインタ18を用いて選択
する。これにより、中断された仮想プロセツサでない同
一VM上の仮想プロセツサを走行させることができる。
なお、本実施例では、走行していた仮想プロセツサを
一旦非アクテイブ状態としたが、アクテイブ状態を継続
し、他プロセツサにおいて仮想プロセツサのデイスパツ
チ処理終了後、上記走行していた仮想プロセツサを継続
して走行させることも可能である。また、以上の実施例
においては、デイスパツチ命令群29をソフトウエアによ
り実現したが、マイクロプログラムでも実現可能であ
る。
一旦非アクテイブ状態としたが、アクテイブ状態を継続
し、他プロセツサにおいて仮想プロセツサのデイスパツ
チ処理終了後、上記走行していた仮想プロセツサを継続
して走行させることも可能である。また、以上の実施例
においては、デイスパツチ命令群29をソフトウエアによ
り実現したが、マイクロプログラムでも実現可能であ
る。
最後に、状態表示テーブル2内の走行優先度15の設定
手順と、VMまたはVMCPがマルチプロセツサ構成時におけ
る仮想プロセツサ切換処理について、述べる。
手順と、VMまたはVMCPがマルチプロセツサ構成時におけ
る仮想プロセツサ切換処理について、述べる。
走行優先度14は、VMCPがコマンド等により固定的に与
えることも可能であり、またVMCPが動的に変更すること
も可能である。例えば、チエインジビツト20が“1"の時
には、コマンドによつてのみ走行優先度15を変更可能と
し、チエインジビツト20が“0"の時には、VMCPは該当仮
想プロセツサが走行時のCPU利用率等をもとにして、走
行優先度15を動的に変えることは、従来の技術により可
能である。
えることも可能であり、またVMCPが動的に変更すること
も可能である。例えば、チエインジビツト20が“1"の時
には、コマンドによつてのみ走行優先度15を変更可能と
し、チエインジビツト20が“0"の時には、VMCPは該当仮
想プロセツサが走行時のCPU利用率等をもとにして、走
行優先度15を動的に変えることは、従来の技術により可
能である。
また、走行優先度15に対応してタイムスライス値16を
変更する場合には、走行優先度15とタイムスライス値16
との対応表を設け、走行優先度15が変わる度に、その対
応表により、タイムスライス値16を更新すればよい。
変更する場合には、走行優先度15とタイムスライス値16
との対応表を設け、走行優先度15が変わる度に、その対
応表により、タイムスライス値16を更新すればよい。
また、本実施例においては、説明を省略したがVMある
いはVMCPがマルチプロセツサ構成の場合には、主記憶1
上の仮想プロセツサ管理用テーブル3,状態表示テーブル
2,およびプロセツサ状態テーブル28を参照・更新する場
合には、通常のマルチプロセツサ技術におけるロツクに
より、予め他のプロセツサあるいは仮想プロセツサから
は、参照・更新できないようにしておく。
いはVMCPがマルチプロセツサ構成の場合には、主記憶1
上の仮想プロセツサ管理用テーブル3,状態表示テーブル
2,およびプロセツサ状態テーブル28を参照・更新する場
合には、通常のマルチプロセツサ技術におけるロツクに
より、予め他のプロセツサあるいは仮想プロセツサから
は、参照・更新できないようにしておく。
以上説明したように、本発明によれば、VM上の仮想プ
ロセツサがウエイト状態になつたり、同一VM上の他の仮
想プロセツサのロツクによりOSがループ状態となる場合
には、その仮想プロセツサが走行しているプロセツサ、
およびアクテイブ状態にないプロセツサ上で、走行可能
な仮想プロセツサを起動させることができるので、マル
チプロセツサの仮想計算機において、計算機のプロセツ
サを効率よく利用することができる。
ロセツサがウエイト状態になつたり、同一VM上の他の仮
想プロセツサのロツクによりOSがループ状態となる場合
には、その仮想プロセツサが走行しているプロセツサ、
およびアクテイブ状態にないプロセツサ上で、走行可能
な仮想プロセツサを起動させることができるので、マル
チプロセツサの仮想計算機において、計算機のプロセツ
サを効率よく利用することができる。
第1図は本発明に係るディスパッチ制御機構の構成の第
1の実施例を示すブロック図、第2図は第1図における
状態表示テーブルの説明図、第3図は第1図におけるプ
ロセツサ状態テーブルの説明図、第4図は本発明に係る
ディスパッチ制御機構の構成の第2の実施例を示すブロ
ック図、第5図は本発明における状態表示テーブルのキ
ユーイング処理の説明図である。 1:主記憶装置、2:状態表示テーブル、3:仮想プロセツサ
管理用テーブル、4:命令実行回路、5:割込み回路、6:プ
ロセツサレジスタ、7:タイマ、8:PSW、9:ウエイトビツ
ト、10:仮想プロセツサ状態退避機構、11:仮想プロセツ
サ状態退避マイクロプログラム、12:命令実行マイクロ
プログラム、13:割込みマイクロプログラム、14:状態退
避領域、15:走行優先度、16:タイムスライス値、17:同
一走行優先度状態表示テーブルアドレスポインタ、18:
同一VM状態表示テーブルアドレスポインタ、19:アクテ
イブフラグ、20:チエインジビツト、21:命令コードレジ
スタ、22:条件コードレジスタ、23:命令コード保持レジ
スタ、24:条件コード保持レジスタ、25,26:比較回路、2
7:アンドゲート、28:プロセツサ状態テーブル、29:デイ
スパツチ命令群、30:プロセツサ番号、31:プロセツサ番
号レジスタ、32:プロセツサアクテイブビツト、33:プロ
セツサロツクワード、34:アクテイブ状態表示テーブル
アドレス、35:アドレスレジスタ、100〜122:信号線。
1の実施例を示すブロック図、第2図は第1図における
状態表示テーブルの説明図、第3図は第1図におけるプ
ロセツサ状態テーブルの説明図、第4図は本発明に係る
ディスパッチ制御機構の構成の第2の実施例を示すブロ
ック図、第5図は本発明における状態表示テーブルのキ
ユーイング処理の説明図である。 1:主記憶装置、2:状態表示テーブル、3:仮想プロセツサ
管理用テーブル、4:命令実行回路、5:割込み回路、6:プ
ロセツサレジスタ、7:タイマ、8:PSW、9:ウエイトビツ
ト、10:仮想プロセツサ状態退避機構、11:仮想プロセツ
サ状態退避マイクロプログラム、12:命令実行マイクロ
プログラム、13:割込みマイクロプログラム、14:状態退
避領域、15:走行優先度、16:タイムスライス値、17:同
一走行優先度状態表示テーブルアドレスポインタ、18:
同一VM状態表示テーブルアドレスポインタ、19:アクテ
イブフラグ、20:チエインジビツト、21:命令コードレジ
スタ、22:条件コードレジスタ、23:命令コード保持レジ
スタ、24:条件コード保持レジスタ、25,26:比較回路、2
7:アンドゲート、28:プロセツサ状態テーブル、29:デイ
スパツチ命令群、30:プロセツサ番号、31:プロセツサ番
号レジスタ、32:プロセツサアクテイブビツト、33:プロ
セツサロツクワード、34:アクテイブ状態表示テーブル
アドレス、35:アドレスレジスタ、100〜122:信号線。
Claims (12)
- 【請求項1】複数の実プロセッサと、それぞれ複数の仮
想プロセッサを有する複数の仮想計算機とからなり、前
記各仮想プロセッサを前記各実プロセッサにディスパッ
チして走行させるマルチプロセッサ構成の仮想計算機シ
ステムにおいて、前記ディスパッチ時に、第1の仮想プ
ロセッサによるロック獲得状態を、該第1の仮想プロセ
ッサと同一の前記仮想計算機を構成する第2の仮想プロ
セッサで検出した場合、該第2の仮想プロセッサの走行
を中断し、該第2の仮想プロセッサを走行していた前記
実プロセッサで、前記第1の仮想プロセッサを含む前記
同一の仮想計算機を構成する他の仮想プロセッサを順次
に起動するディスパッチ制御手段を設けることを特徴と
するマルチプロセッサ仮想計算機システム。 - 【請求項2】前記ディスパッチ制御手段は、少なくとも
前記各仮想プロセッサの起動に必要な起動情報と各仮想
プロセッサが走行可能な状態にあるか否かを示す情報と
を、各仮想プロセッサのそれぞれに対応付けて登録する
状態表示テーブルを具備し、該状態表示テーブルを参照
して、走行可能な仮想プロセッサを順次に選択して起動
することを特徴とする特許請求の範囲第1項に記載のマ
ルチプロセッサ仮想計算機システム。 - 【請求項3】前記ディスパッチ制御手段は、前記状態表
示テーブルに、同一の仮想計算機に属する各仮想プロセ
ッサをリンクするリンク情報を登録し、該リンク情報に
基づき前記仮想プロセッサの選択を行うことを特徴とす
る特許請求の範囲第2項記載のマルチプロセッサ仮想計
算機システム。 - 【請求項4】複数の実プロセッサと、それぞれ複数の仮
想プロセッサを有する複数の仮想計算機とからなり、前
記各仮想プロセッサを前記各実プロセッサにディスパッ
チして走行させるマルチプロセッサ構成の仮想計算機シ
ステムにおいて、前記ディスパッチ時に、第1の実プロ
セッサ上で走行中に獲得した第1の仮想プロセッサによ
るロック獲得状態を、第2の実プロセッサ上で走行中の
前記第1の仮想プロセッサと同一の前記仮想計算機を構
成する第2の仮想プロセッサで検出した場合、該第2の
仮想プロセッサの前記第2の実プロセッサでの走行を中
断し、該第2の実プロセッサで、前記第1の仮想プロセ
ッサを含む前記同一の仮想計算機を構成する他の仮想プ
ロセッサを順次に起動するディスパッチ制御手段を設け
ることを特徴とするマルチプロセッサ仮想計算機システ
ム。 - 【請求項5】複数の実プロセッサと、それぞれ複数の仮
想プロセッサを有する複数の仮想計算機とからなり、前
記各仮想プロセッサを前記各実プロセッサにディスパッ
チして走行させるマルチプロセッサ構成の仮想計算機シ
ステムにおいて、走行中の仮想プロセッサの走行が所定
の事象の発生により中断した場合に、走行可能な状態の
他の仮想プロセッサを順次に選択して、前記走行中断し
た実プロセッサを含む任意の実プロセッサで起動するデ
ィスパッチ制御手段を設けることを特徴とするマルチプ
ロセッサ仮想計算機システム。 - 【請求項6】前記ディスパッチ制御手段は、前記各実プ
ロセッサが前記仮想プロセッサを起動可能な状態にある
か否かを示す情報を保持するプロセッサ状態テーブル
と、少なくとも前記各仮想プロセッサの起動に必要な起
動情報と各仮想プロセッサが走行可能な状態にあるか否
かを示す情報とを、各仮想プロセッサのそれぞれに対応
付けて登録する状態表示テーブルとを具備し、前記仮想
プロセッサの走行中断時に、前記状態表示テーブルを参
照して、走行可能な仮想プロセッサを順次に選択し、前
記プロセッサ状態テーブルを参照して、前記選択した仮
想プロセッサを起動可能な実プロセッサを選択し、該選
択した実プロセッサ上で、前記選択した仮想プロセッサ
を起動することを特徴とする特許請求の範囲第5項記載
のマルチプロセッサ仮想計算機システム。 - 【請求項7】前記ディスパッチ制御手段は、前記走行中
の仮想プロセッサの走行を中断させる事象を、該走行中
の仮想プロセッサがウェイト状態となることにより検知
することを特徴とする特許請求の範囲第5項もしくは第
6項のいずれかに記載のマルチプロセッサ仮想計算機シ
ステム。 - 【請求項8】前記ディスパッチ制御手段は、前記走行中
の仮想プロセッサの走行を中断させる事象を、該仮想プ
ロセッサが走行中の実プロセッサへの割込みにより、他
の仮想プロセッサのウェイト状態が解除されることによ
り検知することを特徴とする特許請求の範囲第5項もし
くは第6項のいずれかに記載のマルチプロセッサ仮想計
算機システム。 - 【請求項9】前記ディスパッチ制御手段は、前記走行中
の仮想プロセッサの走行を中断させる事象を、該仮想プ
ロセッサが、走行後、所定の時間を経過することにより
検知することを特徴とする特許請求の範囲第5項もしく
は第6項のいずれかに記載のマルチプロセッサ仮想計算
機システム。 - 【請求項10】前記ディスパッチ制御手段は、前記走行
中の仮想プロセッサの走行を中断させる事象を、該走行
中の仮想プロセッサと同一の前記仮想計算機を構成する
他の仮想プロセッサによるロック獲得状態を検出するこ
とにより検知し、該ロックを獲得した仮想プロセッサを
含む前記同一の仮想計算機を構成する走行可能な状態の
各仮想プロセッサを順次に選択して、前記任意の実プロ
セッサで起動することを特徴とする特許請求の範囲第5
項もしくは第6項のいずれかに記載のマルチプロセッサ
仮想計算機システム。 - 【請求項11】前記ディスパッチ制御手段は、前記同一
の仮想計算機に属する各仮想プロセッサをリンクするリ
ンク情報を登録し、該リンク情報に基づき前記仮想プロ
セッサの選択を行うことを特徴とする特許請求の範囲第
10項に記載のマルチプロセッサ仮想計算機システム。 - 【請求項12】前記ディスパッチ制御手段は、前記仮想
プロセッサの選択を、前記各仮想プロセッサ毎に予め定
められた走行優先度に従って行なうことを特徴とする特
許請求の範囲第5項から第11項のいずれかに記載のマル
チプロセッサ仮想計算機システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61005391A JPH0814795B2 (ja) | 1986-01-14 | 1986-01-14 | マルチプロセッサ仮想計算機システム |
US07/365,694 US5095427A (en) | 1986-01-14 | 1989-06-14 | Dispatch control of virtual machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61005391A JPH0814795B2 (ja) | 1986-01-14 | 1986-01-14 | マルチプロセッサ仮想計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62163149A JPS62163149A (ja) | 1987-07-18 |
JPH0814795B2 true JPH0814795B2 (ja) | 1996-02-14 |
Family
ID=11609860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61005391A Expired - Lifetime JPH0814795B2 (ja) | 1986-01-14 | 1986-01-14 | マルチプロセッサ仮想計算機システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US5095427A (ja) |
JP (1) | JPH0814795B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016511489A (ja) * | 2013-03-14 | 2016-04-14 | クアルコム,インコーポレイテッド | ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5283900A (en) * | 1989-10-02 | 1994-02-01 | Spectron Microsystems, Inc. | Real-time operating system and virtual digital signal processor for the control of a digital signal processor |
JPH0776951B2 (ja) * | 1990-10-30 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方 |
JP3093293B2 (ja) * | 1991-02-08 | 2000-10-03 | 日本電気株式会社 | 情報処理装置の割り込み方式 |
JP2677474B2 (ja) * | 1992-01-14 | 1997-11-17 | 富士通株式会社 | 仮想計算機の制御情報収集装置および方法 |
JPH0635732A (ja) * | 1992-07-14 | 1994-02-10 | Hitachi Ltd | 記憶装置の領域割り当て方法 |
JP2977688B2 (ja) * | 1992-12-18 | 1999-11-15 | 富士通株式会社 | マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ |
JP3098344B2 (ja) * | 1992-12-18 | 2000-10-16 | 富士通株式会社 | データ転送処理方法及びデータ転送処理装置 |
JPH06187178A (ja) * | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
JPH0713766A (ja) * | 1993-06-14 | 1995-01-17 | Internatl Business Mach Corp <Ibm> | オブジェクト指向コンピュータ・システムおよびオブジェクト・クラス管理方法 |
JP2900767B2 (ja) * | 1993-09-20 | 1999-06-02 | 株式会社日立製作所 | 仮想計算機システムの仮想計算機走行時間間隔制御方式 |
US5692193A (en) * | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
US6567837B1 (en) * | 1997-01-29 | 2003-05-20 | Iq Systems | Object oriented processor arrays |
US5920881A (en) * | 1997-05-20 | 1999-07-06 | Micron Electronics, Inc. | Method and system for using a virtual register file in system memory |
US6192457B1 (en) | 1997-07-02 | 2001-02-20 | Micron Technology, Inc. | Method for implementing a graphic address remapping table as a virtual register file in system memory |
US6195734B1 (en) | 1997-07-02 | 2001-02-27 | Micron Technology, Inc. | System for implementing a graphic address remapping table as a virtual register file in system memory |
GB2336919A (en) * | 1998-04-30 | 1999-11-03 | Ibm | Pre-emptive threading in a virtual machine |
JP2000347883A (ja) * | 1999-06-03 | 2000-12-15 | Matsushita Electric Ind Co Ltd | 仮想計算機装置 |
US6408292B1 (en) * | 1999-08-04 | 2002-06-18 | Hyperroll, Israel, Ltd. | Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions |
US6385604B1 (en) * | 1999-08-04 | 2002-05-07 | Hyperroll, Israel Limited | Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements |
US20020029207A1 (en) * | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
JP2001256066A (ja) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置 |
US7703107B2 (en) * | 2000-04-06 | 2010-04-20 | Infineon Technologies Ag | Virtual machine interface for hardware reconfigurable and software programmable processors |
US8020176B2 (en) * | 2000-04-06 | 2011-09-13 | Infineon Technologies Ag | Virtual machine interface for hardware reconfigurable and software programmable processors |
US6912493B1 (en) | 2000-09-29 | 2005-06-28 | International Business Machines Corporation | Technique for configuring processors in system with logical partitions |
US20020099759A1 (en) * | 2001-01-24 | 2002-07-25 | Gootherts Paul David | Load balancer with starvation avoidance |
US6957435B2 (en) * | 2001-04-19 | 2005-10-18 | International Business Machines Corporation | Method and apparatus for allocating processor resources in a logically partitioned computer system |
US7310168B2 (en) | 2001-07-03 | 2007-12-18 | Infoprint Solutions Company Llc | Method and apparatus for controlling a spot function for digital halftoning |
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 |
KR100422132B1 (ko) * | 2001-09-06 | 2004-03-11 | 엘지전자 주식회사 | 실시간 시스템의 씨피유 타스크 점유율 측정장치 |
US7496494B2 (en) | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
US7793286B2 (en) * | 2002-12-19 | 2010-09-07 | Intel Corporation | Methods and systems to manage machine state in virtual machine operations |
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 |
US7475002B1 (en) * | 2004-02-18 | 2009-01-06 | Vmware, Inc. | Method and apparatus for emulating multiple virtual timers in a virtual computer system when the virtual timers fall behind the real time of a physical computer system |
US8271976B2 (en) * | 2004-06-30 | 2012-09-18 | Microsoft Corporation | Systems and methods for initializing multiple virtual processors within a single virtual machine |
US20060130062A1 (en) * | 2004-12-14 | 2006-06-15 | International Business Machines Corporation | Scheduling threads in a multi-threaded computer |
US7802251B2 (en) * | 2005-11-09 | 2010-09-21 | Hitachi, Ltd. | System for resource allocation to an active virtual machine using switch and controller to associate resource groups |
US8028290B2 (en) * | 2006-08-30 | 2011-09-27 | International Business Machines Corporation | Multiple-core processor supporting multiple instruction set architectures |
JP2008112934A (ja) * | 2006-10-31 | 2008-05-15 | Oki Electric Ind Co Ltd | 半導体記憶装置及びその製造方法 |
US8479194B2 (en) | 2007-04-25 | 2013-07-02 | Microsoft Corporation | Virtual machine migration |
JP2009175960A (ja) * | 2008-01-23 | 2009-08-06 | Panasonic Corp | 仮想マルチプロセッサシステム |
JP5308383B2 (ja) * | 2010-03-18 | 2013-10-09 | パナソニック株式会社 | 仮想マルチプロセッサシステム |
JP5648544B2 (ja) * | 2011-03-15 | 2015-01-07 | 富士通株式会社 | スケジューリングプログラム、および情報処理装置 |
US8954964B2 (en) | 2012-02-27 | 2015-02-10 | Ca, Inc. | System and method for isolated virtual image and appliance communication within a cloud environment |
US8839447B2 (en) * | 2012-02-27 | 2014-09-16 | Ca, Inc. | System and method for virtual image security in a cloud environment |
US8700898B1 (en) | 2012-10-02 | 2014-04-15 | Ca, Inc. | System and method for multi-layered sensitive data protection in a virtual computing environment |
US9389898B2 (en) | 2012-10-02 | 2016-07-12 | Ca, Inc. | System and method for enforcement of security controls on virtual machines throughout life cycle state changes |
US9292318B2 (en) | 2012-11-26 | 2016-03-22 | International Business Machines Corporation | Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system |
US9244615B2 (en) | 2013-09-13 | 2016-01-26 | Microsoft Technology Licensing, Llc | Systems and methods based on policy criteria for controlling the flow of data storage input/output requests between endpoints |
US9830178B2 (en) * | 2014-03-06 | 2017-11-28 | Intel Corporation | Dynamic reassignment for multi-operating system devices |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4189771A (en) * | 1977-10-11 | 1980-02-19 | International Business Machines Corporation | Method and means for the detection of deadlock among waiting tasks in a multiprocessing, multiprogramming CPU environment |
US4253145A (en) * | 1978-12-26 | 1981-02-24 | Honeywell Information Systems Inc. | Hardware virtualizer for supporting recursive virtual computer systems on a host computer system |
JPS55112651A (en) * | 1979-02-21 | 1980-08-30 | Fujitsu Ltd | Virtual computer system |
US4333144A (en) * | 1980-02-05 | 1982-06-01 | The Bendix Corporation | Task communicator for multiple computer system |
US4553202A (en) * | 1982-05-06 | 1985-11-12 | International Business Machines Corporation | User controlled dialog resource switching in a multi-tasking word processor |
JPS59167756A (ja) * | 1983-01-31 | 1984-09-21 | Nec Corp | 仮想計算機のデイスパツチ制御方式 |
US4674038A (en) * | 1984-12-28 | 1987-06-16 | International Business Machines Corporation | Recovery of guest virtual machines after failure of a host real machine |
-
1986
- 1986-01-14 JP JP61005391A patent/JPH0814795B2/ja not_active Expired - Lifetime
-
1989
- 1989-06-14 US US07/365,694 patent/US5095427A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016511489A (ja) * | 2013-03-14 | 2016-04-14 | クアルコム,インコーポレイテッド | ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法 |
US10133598B2 (en) | 2013-03-14 | 2018-11-20 | Qualcomm Incorporated | Systems and methods of using a hypervisor to assign virtual processor priority based on task priority and to schedule virtual processors for guest operating systems |
Also Published As
Publication number | Publication date |
---|---|
JPS62163149A (ja) | 1987-07-18 |
US5095427A (en) | 1992-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0814795B2 (ja) | マルチプロセッサ仮想計算機システム | |
CN100570565C (zh) | 在管理程序中提供基于策略的操作系统服务的方法和系统 | |
EP3039540B1 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
US6996698B2 (en) | Blocking processing restrictions based on addresses | |
US5305455A (en) | Per thread exception management for multitasking multithreaded operating system | |
JPH0695898A (ja) | 仮想計算機の制御方法および仮想計算機システム | |
US20050132363A1 (en) | Method, apparatus and system for optimizing context switching between virtual machines | |
US20010009020A1 (en) | Method and apparatus for providing seamless hooking and intercepting of selected kernel and hal exported entry points | |
US4660144A (en) | Adjunct machine | |
JPS61206043A (ja) | 仮想計算機システムにおける割込制御方法 | |
US20140025922A1 (en) | Providing multiple quiesce state machines in a computing environment | |
JP2013516021A (ja) | プロセッサコアのハイパーバイザ離隔 | |
JPH05216851A (ja) | ユーザプログラムおよびオペレーティングシステム間の高速通信のための方法 | |
US20090216929A1 (en) | System, method and computer program product for providing a programmable quiesce filtering register | |
JPH064322A (ja) | プロセスレベルプログラミングのための割込み処理の直列化方法 | |
CN103473135B (zh) | 虚拟化环境下自旋锁lhp现象的处理方法 | |
JPH07311749A (ja) | マルチプロセッサシステム及びカーネル置換方法 | |
CN106250217A (zh) | 一种多虚拟处理器间的同步调度方法及其调度系统 | |
US11243800B2 (en) | Efficient virtual machine memory monitoring with hyper-threading | |
CN108845969B (zh) | 适用于不完全对称多处理微控制器的操作控制方法及操作系统 | |
JPS62221041A (ja) | 仮想計算機システムにおけるデイスパツチ制御装置 | |
JP2986930B2 (ja) | 対称型マルチプロセッサのタスクスケジューリング方式 | |
JPS62180455A (ja) | 多重処理装置 | |
JPS61184643A (ja) | 仮想計算機の起動制御方式 | |
JPH0363768B2 (ja) |