JPS62163149A - マルチプロセッサ仮想計算機システム - Google Patents
マルチプロセッサ仮想計算機システムInfo
- Publication number
- JPS62163149A JPS62163149A JP61005391A JP539186A JPS62163149A JP S62163149 A JPS62163149 A JP S62163149A JP 61005391 A JP61005391 A JP 61005391A JP 539186 A JP539186 A JP 539186A JP S62163149 A JPS62163149 A JP S62163149A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- state
- virtual
- active
- running
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、仮想計算機のディスパッチ制御方式に関し、
特にマルチプロセッサの仮想計算機システムにおいて、
各プロセッサを有効に利用するディスパッチ制御方式に
関するものである。
特にマルチプロセッサの仮想計算機システムにおいて、
各プロセッサを有効に利用するディスパッチ制御方式に
関するものである。
仮想計算機システム(Virtual Machin
e System :以下、VMSと略記する)は、
1台の計算機のもとで、1つ以上のOS(オペレーティ
ングシステム)の同時走行を可能とするシステムである
。仮想計算機制御プログラム(Virtual、 M
achine Cor+trol P rogra
m :以下VMCPと略記する)は、1台の実計算機上
に各OSごとに、あたかも仮想計算機(Vj、rtua
l Machine:以下、VMと略記する)と呼ば
れる計算機が存在するかのように制御するプログラムで
ある。
e System :以下、VMSと略記する)は、
1台の計算機のもとで、1つ以上のOS(オペレーティ
ングシステム)の同時走行を可能とするシステムである
。仮想計算機制御プログラム(Virtual、 M
achine Cor+trol P rogra
m :以下VMCPと略記する)は、1台の実計算機上
に各OSごとに、あたかも仮想計算機(Vj、rtua
l 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
が割当てられるのを待っている。CPU以外のリソース
を確保できないで待つているタスクは、ウェイト状態し
;あるといわれる。
実行可能の状態にあるタスクにCPUが割当てられると
、アクティブ状態に入る。また、実行中のタスクが、優
先度の高いタスクにCPUを奪われると、実行可能の状
態に戻る。すなわち、タスクは、アクティブ状態、実行
可能状態、およびウェイト状態の3つの状態のいずれか
にあり、実行可能の状態にあるタスクにCPUを割当て
るものをディスパッチャ(dispacher )と呼
ぶ。このディスパッチャは、CPUを管理して、タスク
の実行を制御するもので、OSの中核をなす特殊な部分
である。
、アクティブ状態に入る。また、実行中のタスクが、優
先度の高いタスクにCPUを奪われると、実行可能の状
態に戻る。すなわち、タスクは、アクティブ状態、実行
可能状態、およびウェイト状態の3つの状態のいずれか
にあり、実行可能の状態にあるタスクにCPUを割当て
るものをディスパッチャ(dispacher )と呼
ぶ。このディスパッチャは、CPUを管理して、タスク
の実行を制御するもので、OSの中核をなす特殊な部分
である。
本発明の目的は、このような従来の問題を改善し、VM
上の仮想プロセッサがウェイト状態になったり、同−V
M上の他の仮想プロセッサのロックによりOSがループ
状態となる場合には、その仮想プロセッサが走行してい
るプロセッサ、およびアクティブ状態にないプロセッサ
上で、走行可能な仮想プロセッサを起動することができ
、これによりプロセッサの有効利用を実現する仮想計算
機のディスパッチ制御方式を提供することにある。
上の仮想プロセッサがウェイト状態になったり、同−V
M上の他の仮想プロセッサのロックによりOSがループ
状態となる場合には、その仮想プロセッサが走行してい
るプロセッサ、およびアクティブ状態にないプロセッサ
上で、走行可能な仮想プロセッサを起動することができ
、これによりプロセッサの有効利用を実現する仮想計算
機のディスパッチ制御方式を提供することにある。
上記目的を達成するため、本発明による仮想計算機のデ
ィスパッチ制御方式は、VMSの各VM上の仮想プロセ
ッサごとに、プロセッサ状態の退避とアクティブフラグ
とVMCPが設定する走行優先度とタイムスライス値と
を格納する領域を備え、また計算機を構成する各プロセ
ッサがアクティブ状態か否かを示すプロセッサ状態表を
備える。
ィスパッチ制御方式は、VMSの各VM上の仮想プロセ
ッサごとに、プロセッサ状態の退避とアクティブフラグ
とVMCPが設定する走行優先度とタイムスライス値と
を格納する領域を備え、また計算機を構成する各プロセ
ッサがアクティブ状態か否かを示すプロセッサ状態表を
備える。
本発明による仮想プロセッサ切換処理を仮想プロセッサ
の切換え要因別に述べる。
の切換え要因別に述べる。
(1)VMが走行中に、VM上のOSがプロセッサをウ
ェイト状態にする命令を発行し、この命令をVMCPが
介在することなく、ハードウェアおよびマイクロプログ
ラムが直接実行した結果、仮想プロセッサがウェイ1−
状態となった場合には、仮想プロセッサ状態退避マイク
ロプログラムとともに、走行中の仮想プロセッサの状態
を上記状態退避領域に格納し、またその仮想プロセッサ
のアクチイブフラグに、非アクティブ状態を設定する。
ェイト状態にする命令を発行し、この命令をVMCPが
介在することなく、ハードウェアおよびマイクロプログ
ラムが直接実行した結果、仮想プロセッサがウェイ1−
状態となった場合には、仮想プロセッサ状態退避マイク
ロプログラムとともに、走行中の仮想プロセッサの状態
を上記状態退避領域に格納し、またその仮想プロセッサ
のアクチイブフラグに、非アクティブ状態を設定する。
次に、仮想プロセッサ状態退避機構および仮想プロセッ
サ状態退避マイクロプログラムは、主記憶装置」二のデ
ィスパッチ命令群に制御を渡す。ディスパッチ命令群は
、プロセッサ状態表に非アクティブ状態が指示されてい
るプロセッサを選択し、プロセッサ状態表のそのプロセ
ッサに対応するフィールドにアクティブ状態を指示する
。また、ウェイト状態でなく、かつアクティブ状態でな
い仮想プロセッサ群の中で、最も走行優先度の高い仮想
プロセッサを選択し、その仮想プロセッサのアクティブ
フラグにアクティブ状態を指示する。ただし、条件を満
足する仮想プロセッサが存在しない場合には、上記選択
したプロセッサのプロセッサ状態表のフィールドに非ア
クティブ状態を指示する。また、上記選択したプロセッ
サにおいて、上記選択した仮想プロセッサを走行させる
ことをプロセッサ状態表に指示しておく。次に、ディス
パッチ命令群は、上記選択したプロセッサに対して、外
部割込みを発生させるために、従来よりあるマルチプロ
セッサ用命令S T G P (SignalP ro
cessor)を発行する。これにより、5IGP命令
が発行されたプロセッサに外部割込みが報告され、その
割込み処理プログラムにおいて、次の処理が行われる。
サ状態退避マイクロプログラムは、主記憶装置」二のデ
ィスパッチ命令群に制御を渡す。ディスパッチ命令群は
、プロセッサ状態表に非アクティブ状態が指示されてい
るプロセッサを選択し、プロセッサ状態表のそのプロセ
ッサに対応するフィールドにアクティブ状態を指示する
。また、ウェイト状態でなく、かつアクティブ状態でな
い仮想プロセッサ群の中で、最も走行優先度の高い仮想
プロセッサを選択し、その仮想プロセッサのアクティブ
フラグにアクティブ状態を指示する。ただし、条件を満
足する仮想プロセッサが存在しない場合には、上記選択
したプロセッサのプロセッサ状態表のフィールドに非ア
クティブ状態を指示する。また、上記選択したプロセッ
サにおいて、上記選択した仮想プロセッサを走行させる
ことをプロセッサ状態表に指示しておく。次に、ディス
パッチ命令群は、上記選択したプロセッサに対して、外
部割込みを発生させるために、従来よりあるマルチプロ
セッサ用命令S T G P (SignalP ro
cessor)を発行する。これにより、5IGP命令
が発行されたプロセッサに外部割込みが報告され、その
割込み処理プログラムにおいて、次の処理が行われる。
すなわち、割込み処理プログラムは、プロセッサ状態表
により、そのプロセッサによって走行させる仮想プロセ
ッサを識別し、この仮想プロセッサのタイムスライス値
をそのプロセッサのタイマに設定し、その仮想プロセッ
サの状態退避領域の内容をプロセッサのレジスタに設定
することにより、上記選択した仮想プロセッサを走行状
態にする。
により、そのプロセッサによって走行させる仮想プロセ
ッサを識別し、この仮想プロセッサのタイムスライス値
をそのプロセッサのタイマに設定し、その仮想プロセッ
サの状態退避領域の内容をプロセッサのレジスタに設定
することにより、上記選択した仮想プロセッサを走行状
態にする。
ディスパッチ命令群は、上述の処理を繰り返すことによ
り、プロセッサ状態表に非アクティブ状態が指示されて
いたプロセッサ上で仮想プロセッサを走行させることが
できる。
り、プロセッサ状態表に非アクティブ状態が指示されて
いたプロセッサ上で仮想プロセッサを走行させることが
できる。
次に、ディスパッチ命令群は、さらにウェイト状態でな
くアクティブ状態でもない仮想プロセッサ群の中で、最
も走行優先度の高い仮想プロセッサを選択し、その仮想
プロセッサのアクティブフラグにアクティブ状態を指示
する。ただし、条件を満足する仮想プロセッサが存在し
ない場合には、この処理を行っているプロセッサのプロ
セッサ状態表のフィールドに、非アクティブ状態を指示
する。条件を満足する仮想プロセッサが存在する場合に
は、この仮想プロセッサのタイムスライス値をタイマに
設定し、その仮想プロセッサの状態退避領域の内容をプ
ロセッサのレジスタに設定することにより、このプロセ
ッサでの上記選択した仮想プロセッサを走行状態にする
。
くアクティブ状態でもない仮想プロセッサ群の中で、最
も走行優先度の高い仮想プロセッサを選択し、その仮想
プロセッサのアクティブフラグにアクティブ状態を指示
する。ただし、条件を満足する仮想プロセッサが存在し
ない場合には、この処理を行っているプロセッサのプロ
セッサ状態表のフィールドに、非アクティブ状態を指示
する。条件を満足する仮想プロセッサが存在する場合に
は、この仮想プロセッサのタイムスライス値をタイマに
設定し、その仮想プロセッサの状態退避領域の内容をプ
ロセッサのレジスタに設定することにより、このプロセ
ッサでの上記選択した仮想プロセッサを走行状態にする
。
(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が上記命令
を発行し、その条件コードが上記特定の条件コードの場
合には、仮想プロセッサ状態退避機構が起動され、仮想
プロセッサ状態退避マイクロプログラムとともに2走行
中の仮想プロセッサの状態を該当する状態退避領域に格
納し、またその仮想プロセッサのアクティブフラグに非
アクティブ状態を設定する。
特定の条件コードとなるか否かで判定できる。このため
、本発明では、上記命令コードと条件コードとを保持す
るレジスタを設ける。そして、VM上のOSが上記命令
を発行し、その条件コードが上記特定の条件コードの場
合には、仮想プロセッサ状態退避機構が起動され、仮想
プロセッサ状態退避マイクロプログラムとともに2走行
中の仮想プロセッサの状態を該当する状態退避領域に格
納し、またその仮想プロセッサのアクティブフラグに非
アクティブ状態を設定する。
次に、仮想プロセッサ状態退避機構および仮想プロセッ
サ状態退避マイクロプログラムは、主記憶装置上のディ
スパッチ命令群に制御を渡す。ディー 1日 − スパツチ命令群は、走行していた仮想プロセッサと同−
VM上の仮想プロセッサの状態の判定と選択を行い、前
記(1〕と同じ方法により、上記仮想プロセッサを走行
状態にする。
サ状態退避マイクロプログラムは、主記憶装置上のディ
スパッチ命令群に制御を渡す。ディー 1日 − スパツチ命令群は、走行していた仮想プロセッサと同−
VM上の仮想プロセッサの状態の判定と選択を行い、前
記(1〕と同じ方法により、上記仮想プロセッサを走行
状態にする。
以上が、本発明による仮想プロセッサの切換え制御方式
の処理概要である。各仮想プロセッサの走行優先度は、
VMCPがコマンド等により固定的に与えることも可能
であり、また仮想プロセッサ走行中のプロセッサ利用率
等により動的にVMCPが変更することも可能である。
の処理概要である。各仮想プロセッサの走行優先度は、
VMCPがコマンド等により固定的に与えることも可能
であり、また仮想プロセッサ走行中のプロセッサ利用率
等により動的にVMCPが変更することも可能である。
また、走行優先度とタイムスライスf直との対応表を持
つことにより、仮想プロセッサのタイムスライス値を動
的に制御することも可能である。
つことにより、仮想プロセッサのタイムスライス値を動
的に制御することも可能である。
このように、本発明では、少量のハードウェアおよびマ
イクロプログラムにより、VMCPが指定した走行優先
度にもとづき、次に走行する仮想プロセッサの選択と起
動を行うことによって、オーバヘッドを削減している。
イクロプログラムにより、VMCPが指定した走行優先
度にもとづき、次に走行する仮想プロセッサの選択と起
動を行うことによって、オーバヘッドを削減している。
以下、本発明の実施例を、図面により詳細に説明する。
第1図は、本発明の一実施例を示すVMSのブロック図
である。第1図において、1は主記憶装置、4は命令実
行回路、5は割込み回路、6はプロセッサを制御するプ
ロセッサレジスタ、7は仮想プロセッサの切換え信号を
線107を介して割込み回路5に送出するためのタイマ
、10は仮想プロセッサ状態退避機構□、35はアドレ
スレジスタである。
である。第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がキューイングされる。
セッサごとに、仮想プロセッサを走行状態にする時に必
要な情報を持つ状態表示テーブル2−1−0〜2− n
−0が設けられる。仮想プロセッサ管理用テーブル3
は、仮想プロセッサの状態表示テーブル2−1〜2−n
を、走行優先度側にキューイングするためのテーブルで
ある。走行可能仮想プロセッサ管理用テーブル3−iで
は、iの値が小さいほど、走行優先度の高い状態表示テ
ーブル2−1〜2−nがキューイングされる。
第1図では、2番目に走行優先度の高い仮想プロセッサ
管理用テーブル3−1に3つの状態表示テ−プル21−
0.2−1−1および2−1−2がキューイングされて
おり、また最も走行優先度の低い仮想プロセッサ管理用
テーブル3−nには、1つの状態表示テーブル2−n−
0がキュ−イングされている。また、プロセッサ状態テ
ーブル28は、計算機を構成するプロセッサの状態の管
理テーブルである。さらに、ディスパッチ命令群29は
、仮想プロセッサおよびプロセッサを選択し、このプロ
セッサ上で、該当仮想プロセッサの起動を行う命令群で
ある。命令実行回路4における12は命令実行マイクロ
プログラムであり、割込み回路5における13は割込み
マイクロプログラムである。また、プロセッサレジスタ
6にはPSW8が設置され、とのPSW8にはプロセッ
サがウェイト状態か否かを示すウェイトビット9が設け
られる。ウェイトビット9は、その値がII 1. I
Iの時、プロセッサがウェイト状態であることを示し、
0″の時、プロセッサがウェイト状態でないことを示す
。6−1〜6−jは、それぞれプロセッサレジスタであ
る。仮想プロセッサ状態退避機構1Oにおける11は、
仮想プロセッサ状態退避マイクロプログラムである。ア
ドレスレジスタ35には、走行中の仮想プロセッサ状態
表示テーブル2−1〜2− nのアドレスが格納される
。また、プロセッサ番号レジスタ31は、該当プロセッ
サのプロセッサ番号を保持する。第1図では、この場合
、状態表示テーブル2−1.−0に対応する仮想プロセ
ッサが走行中であることを表わす。
管理用テーブル3−1に3つの状態表示テ−プル21−
0.2−1−1および2−1−2がキューイングされて
おり、また最も走行優先度の低い仮想プロセッサ管理用
テーブル3−nには、1つの状態表示テーブル2−n−
0がキュ−イングされている。また、プロセッサ状態テ
ーブル28は、計算機を構成するプロセッサの状態の管
理テーブルである。さらに、ディスパッチ命令群29は
、仮想プロセッサおよびプロセッサを選択し、このプロ
セッサ上で、該当仮想プロセッサの起動を行う命令群で
ある。命令実行回路4における12は命令実行マイクロ
プログラムであり、割込み回路5における13は割込み
マイクロプログラムである。また、プロセッサレジスタ
6にはPSW8が設置され、とのPSW8にはプロセッ
サがウェイト状態か否かを示すウェイトビット9が設け
られる。ウェイトビット9は、その値がII 1. I
Iの時、プロセッサがウェイト状態であることを示し、
0″の時、プロセッサがウェイト状態でないことを示す
。6−1〜6−jは、それぞれプロセッサレジスタであ
る。仮想プロセッサ状態退避機構1Oにおける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−Qが“OF+の時
には、プロセッサ番号aのプロセッサ、つまりプロセッ
サ番号レジスタ31にQが格納されているプロセッサは
、非アクティブ状態であることを表わす。また、プロセ
ッサアクティブビット32−Qが111 ITの時には
、プロセッサ番号Qのプロセッサはアクテ、イブ状態で
あり、またアクティブ状態表示テープルアドレス34−
Qにアドレスが格納されている状態表示テーブル2に対
応する仮想プロセッサが使用中であることを表わす。ま
た、プロセッサロックワード33−Qは、プロセッサ状
態テーブル28の該当プロセッサフィールドの参照、お
よび更新を行う場合のロックに用いるフィールドである
。
明図である。プロセッサテーブル28は、計算機を構成
するプロセッサごとに、現在プロセッサがアクティブ状
態か否か、またアクティブ状態の場合には、どの仮想プ
ロセッサをアクティブとしているかを表わす。すなわち
、プロセッサアクティブビット32−Qが“OF+の時
には、プロセッサ番号aのプロセッサ、つまりプロセッ
サ番号レジスタ31にQが格納されているプロセッサは
、非アクティブ状態であることを表わす。また、プロセ
ッサアクティブビット32−Qが111 ITの時には
、プロセッサ番号Qのプロセッサはアクテ、イブ状態で
あり、またアクティブ状態表示テープルアドレス34−
Qにアドレスが格納されている状態表示テーブル2に対
応する仮想プロセッサが使用中であることを表わす。ま
た、プロセッサロックワード33−Qは、プロセッサ状
態テーブル28の該当プロセッサフィールドの参照、お
よび更新を行う場合のロックに用いるフィールドである
。
先ず、第1の実施例として、走行中の仮想プロセッサ上
のOSが、プロセッサをウェイト状態にする命令を発行
し、この命令がVMCPの介在なしに、ハードウェアお
よびマイクロプログラムにより直接実行された場合の処
理を述べる。
のOSが、プロセッサをウェイト状態にする命令を発行
し、この命令がVMCPの介在なしに、ハードウェアお
よびマイクロプログラムにより直接実行された場合の処
理を述べる。
走行中の仮想プロセッサ上のOSがPSW8をウェイト
状態にする、つまりウェイトビット9をN 171にす
る命令を線100を通して命令実行回路4に出すと、こ
の命令が命令実行回路4および命令実行マイクロプログ
ラム12により直接実行可能な場合には、線101によ
りPSW8のウェイトピッ]・9が11177となる。
状態にする、つまりウェイトビット9をN 171にす
る命令を線100を通して命令実行回路4に出すと、こ
の命令が命令実行回路4および命令実行マイクロプログ
ラム12により直接実行可能な場合には、線101によ
りPSW8のウェイトピッ]・9が11177となる。
ウェイトビット9が1″となると、線102により仮想
プロセッサ状態退避機構10が起動され、仮想プロセッ
サ状態退避マイクロプログラム11とともに、次のよう
にして仮想プロセッサの状態退避を行う。
プロセッサ状態退避機構10が起動され、仮想プロセッ
サ状態退避マイクロプログラム11とともに、次のよう
にして仮想プロセッサの状態退避を行う。
先ず、仮想プロセッサ状態退避機構10および仮想プロ
セッサ状態退避マイクロプログラム11は、線121か
らアドレスレジスタ35の値を取り込み、この値をアド
レスとする状態表示テーブル2− ]、 −0の状態退
避領域14に、プロセッサレジスタ6の内容を線102
、線103により退避する。また、線122、線103
によりタイマ7の値を、状態表示テーブル2−1−0の
タイムスライス値16に退避する。また、線103によ
り状態表示テーブル2−1−0のアクティブフラグ19
に、rr Ouを設定する。
セッサ状態退避マイクロプログラム11は、線121か
らアドレスレジスタ35の値を取り込み、この値をアド
レスとする状態表示テーブル2− ]、 −0の状態退
避領域14に、プロセッサレジスタ6の内容を線102
、線103により退避する。また、線122、線103
によりタイマ7の値を、状態表示テーブル2−1−0の
タイムスライス値16に退避する。また、線103によ
り状態表示テーブル2−1−0のアクティブフラグ19
に、rr Ouを設定する。
次に、仮想プロセッサ状態退避機構]、Oおよび仮想プ
ロセッサ状態退避マイクロプログラム11は、主記憶装
置1−ヒのディスパッチ命令群29に制御を渡す。これ
は、例えば、ディスパッチ命令群29のアドレスを、特
定のプロセッサレジスタ6のレジスタに設けておくこと
により可能である。
ロセッサ状態退避マイクロプログラム11は、主記憶装
置1−ヒのディスパッチ命令群29に制御を渡す。これ
は、例えば、ディスパッチ命令群29のアドレスを、特
定のプロセッサレジスタ6のレジスタに設けておくこと
により可能である。
また、プロセッサ状態テーブル28および仮想ブー 9
7= ロセツサ管理用テーブル3についても、アドレスが特定
のプロセッサレジスタ6のレジスタに設定されている。
7= ロセツサ管理用テーブル3についても、アドレスが特定
のプロセッサレジスタ6のレジスタに設定されている。
ディスパッチ命令群29の処理は、次のようにして行わ
れる。先ず、プロセッサ状態テーブル28のプロセッサ
ロックワード33− Qに対してロックをかけた後、プ
ロセッサアクティブビット32−Qが” 1 ”か否か
を判定する。プロセッサがアクティブ、つまりプロセッ
サアクティブピッl−32−Qがtt 1 nであれば
、ロックを解除して、次のプロセッサのフィールドを判
定する。
れる。先ず、プロセッサ状態テーブル28のプロセッサ
ロックワード33− Qに対してロックをかけた後、プ
ロセッサアクティブビット32−Qが” 1 ”か否か
を判定する。プロセッサがアクティブ、つまりプロセッ
サアクティブピッl−32−Qがtt 1 nであれば
、ロックを解除して、次のプロセッサのフィールドを判
定する。
プロセッサが非アクティブ状態、つまりプロセッサアク
ティブピッ1へ32−Ωが11 Onであれば、プロセ
ッサアクティブビット32−Qに11111を設定後、
ロックを解除する。以上の処理により、アクティブでな
いプロセッサを選択する。次に、仮想プロセッサ管理用
テーブル3にキューインクされたウェイト状態でなく、
かつアクティブ状Jぶてない状態表示テーブル2のうち
で、最も走行優先度が高いものを選択し、状態表示テー
ブル2のアクティブフラグ19にrt 1 ++を設定
する。状態表示テーブル2に対応する仮想プロセッサが
ウェイ1−状態か否かは、状態退避領域14中にあるP
SW8のウェイトビット9に対応するビットにより判定
できる。すなわち、このビットが′1″であれば、該当
する仮想プロセッサはウェイト状態であり、++ 01
1であればウェイト状態でない。ただし、条件を満足す
る仮想プロセッサが存在しない場合には、プロセッサ状
態テーブル28の上記選択したプロセッサのプロセッサ
アクティブビット32をII Ogにする。
ティブピッ1へ32−Ωが11 Onであれば、プロセ
ッサアクティブビット32−Qに11111を設定後、
ロックを解除する。以上の処理により、アクティブでな
いプロセッサを選択する。次に、仮想プロセッサ管理用
テーブル3にキューインクされたウェイト状態でなく、
かつアクティブ状Jぶてない状態表示テーブル2のうち
で、最も走行優先度が高いものを選択し、状態表示テー
ブル2のアクティブフラグ19にrt 1 ++を設定
する。状態表示テーブル2に対応する仮想プロセッサが
ウェイ1−状態か否かは、状態退避領域14中にあるP
SW8のウェイトビット9に対応するビットにより判定
できる。すなわち、このビットが′1″であれば、該当
する仮想プロセッサはウェイト状態であり、++ 01
1であればウェイト状態でない。ただし、条件を満足す
る仮想プロセッサが存在しない場合には、プロセッサ状
態テーブル28の上記選択したプロセッサのプロセッサ
アクティブビット32をII Ogにする。
いま、状態表示テーブル2−1−1に対応する仮想プロ
セッサがウェイト状態でなく、アクティブフラグ19が
110 IFであるとする。これにより、ディスパッチ
命令群29は、プロセッサ状態テーブル28の上記選択
したプロセッサのアクティブ状態表示テーブルアドレス
34に、上記選択した仮想プロセッサの状態表示テーブ
ル2−1−1のアドレスを設定する。また、状態表示テ
ーブル2−1−1のプロセッサ番号30に、上記選択し
たプロセッサのプロセッサ番号を設定する。ここで、−
ン8− プロセッサ番号は、プロセッサ状態テーブル28のイン
デックスに等しいものとする。すなわち、プロセッサ状
態テーブル28−mに対応するプロセッサのプロセッサ
番号は、mとする。次に、ディスパッチ命令群29は、
従来よりマルチプロセッサ支援用にある5IGP命令を
上記選択したプロセッサに対して発行する。5IGP命
令は、オペランドとしてプロセッサ番号と、副指命コー
ドを持つが、プロセッサ番号には、上記選択したプロセ
ッサのプロセッサ番号を設定し、副指命コードには、仮
想プロセッサの起動の指示を行う。5IGP命令により
、上記選択したプロセッサに対して、外部割込みが発生
するとともに、副指命コードが送られる。この外部割込
みにより、次の処理が行われ、そのプロセッサが起動さ
れる。
セッサがウェイト状態でなく、アクティブフラグ19が
110 IFであるとする。これにより、ディスパッチ
命令群29は、プロセッサ状態テーブル28の上記選択
したプロセッサのアクティブ状態表示テーブルアドレス
34に、上記選択した仮想プロセッサの状態表示テーブ
ル2−1−1のアドレスを設定する。また、状態表示テ
ーブル2−1−1のプロセッサ番号30に、上記選択し
たプロセッサのプロセッサ番号を設定する。ここで、−
ン8− プロセッサ番号は、プロセッサ状態テーブル28のイン
デックスに等しいものとする。すなわち、プロセッサ状
態テーブル28−mに対応するプロセッサのプロセッサ
番号は、mとする。次に、ディスパッチ命令群29は、
従来よりマルチプロセッサ支援用にある5IGP命令を
上記選択したプロセッサに対して発行する。5IGP命
令は、オペランドとしてプロセッサ番号と、副指命コー
ドを持つが、プロセッサ番号には、上記選択したプロセ
ッサのプロセッサ番号を設定し、副指命コードには、仮
想プロセッサの起動の指示を行う。5IGP命令により
、上記選択したプロセッサに対して、外部割込みが発生
するとともに、副指命コードが送られる。この外部割込
みにより、次の処理が行われ、そのプロセッサが起動さ
れる。
外部割込みの処理では、先ずプロセッサ番号レジスタ読
み取り命令を発行する。この命令により、命令実行回路
4と命令実行マイクロプログラム12は、線100.線
104によりプロセッサ番号レジスタ31の値をプロセ
ッサレジスタ6内のしシフタ、または主記憶上の指定さ
れた領域に格納する。次に、プロセッサ状態テーブル2
8の上記命令により得られたプロセッサ番号に対応する
プロセッサフィールドのアクティブ状態表示テーブルア
ドレス34にアドレスが格納される状態表示テーブル2
−1−1に対応する仮想プロセッサを、そのプロセッサ
において走行させる処理を行う。
み取り命令を発行する。この命令により、命令実行回路
4と命令実行マイクロプログラム12は、線100.線
104によりプロセッサ番号レジスタ31の値をプロセ
ッサレジスタ6内のしシフタ、または主記憶上の指定さ
れた領域に格納する。次に、プロセッサ状態テーブル2
8の上記命令により得られたプロセッサ番号に対応する
プロセッサフィールドのアクティブ状態表示テーブルア
ドレス34にアドレスが格納される状態表示テーブル2
−1−1に対応する仮想プロセッサを、そのプロセッサ
において走行させる処理を行う。
すなわち、線100.線120により、アドレスレジス
タ35に状態表示テーブル2−1−1のアドレスを設定
し、タイムスライス値16を線100、線108により
タイマ7へ、また線100゜線101により状態退避領
域14の内容をプロセッサレジスタ6に設定する。以上
の処理により、状態表示テーブル2−]−1に対応する
仮想プロセッサの走行を開始する。
タ35に状態表示テーブル2−1−1のアドレスを設定
し、タイムスライス値16を線100、線108により
タイマ7へ、また線100゜線101により状態退避領
域14の内容をプロセッサレジスタ6に設定する。以上
の処理により、状態表示テーブル2−]−1に対応する
仮想プロセッサの走行を開始する。
以上述べた処理を繰り返すことにより、該当プロセッサ
以外の非アクティブ状態のプロセッサにおいて、走行の
条件を満足する仮想プロセッサを走行させることができ
る。また、ディスパッチ命令群29は、前述の方法によ
り、ウェイ1へ状態で= 31− なく、かつアクティブ状態でない仮想プロセッサ群の中
で、最も走行優先度の高い仮想プロセッサを選択し、そ
の状態表示テーブル2のアクティブフラグ19にII
i IIを設定する。ただし、条件を満足する仮想プロ
セッサが存在しない場合には、ディスパッチ命令群29
は、プロセッサ番号レジスタ読み取り命令により、前述
のように、そのプロセッサのプロセッサ番号をプロセッ
サ番号レジスタ31から、線100.線104により読
み出し、プロセッサ状態表28の該当するフィールドの
プロセッサアクティブビット32に、非アクティブ状態
を示す0°′を設定する。条件を満足する仮想プロセッ
サが存在する場合には、選択した状態表示テーブル2の
プロセッサ番号30に上記プロセッサ番号を格納する。
以外の非アクティブ状態のプロセッサにおいて、走行の
条件を満足する仮想プロセッサを走行させることができ
る。また、ディスパッチ命令群29は、前述の方法によ
り、ウェイ1へ状態で= 31− なく、かつアクティブ状態でない仮想プロセッサ群の中
で、最も走行優先度の高い仮想プロセッサを選択し、そ
の状態表示テーブル2のアクティブフラグ19にII
i IIを設定する。ただし、条件を満足する仮想プロ
セッサが存在しない場合には、ディスパッチ命令群29
は、プロセッサ番号レジスタ読み取り命令により、前述
のように、そのプロセッサのプロセッサ番号をプロセッ
サ番号レジスタ31から、線100.線104により読
み出し、プロセッサ状態表28の該当するフィールドの
プロセッサアクティブビット32に、非アクティブ状態
を示す0°′を設定する。条件を満足する仮想プロセッ
サが存在する場合には、選択した状態表示テーブル2の
プロセッサ番号30に上記プロセッサ番号を格納する。
また、上記選択した状態表示テーブル2のタイムスライ
ス値16を、線100、線108により命令実行回路4
および命令実行マイクロプログラム12によってタイマ
7八、また、状態退避領域14の内容を線100.線I
Q1により命令実行回路4および命令実行マイクロプロ
グラム12によってプロセッサレジスタ6に設定するこ
とにより、このプロセッサで、上記選択した仮想プロセ
ッサを走行状態にする。
ス値16を、線100、線108により命令実行回路4
および命令実行マイクロプログラム12によってタイマ
7八、また、状態退避領域14の内容を線100.線I
Q1により命令実行回路4および命令実行マイクロプロ
グラム12によってプロセッサレジスタ6に設定するこ
とにより、このプロセッサで、上記選択した仮想プロセ
ッサを走行状態にする。
次に、第2の実施例として、第1の仮想プロセッサが走
行中に、VMCPを介在させることなく割込み回路5お
よび割込みマイクロプログラム13により直接処理可能
な割込みが発生し、この割込みにより第2の仮想プロセ
ッサのウェイト状態が解除された場合の処理について述
べる。
行中に、VMCPを介在させることなく割込み回路5お
よび割込みマイクロプログラム13により直接処理可能
な割込みが発生し、この割込みにより第2の仮想プロセ
ッサのウェイト状態が解除された場合の処理について述
べる。
割込みが、割込み回路5および割込みマイクロプログラ
ム13により第2の仮想プロセッサに線105によって
反映され、その結果、第2の仮想プロセッサのウェイト
状態が解除された場合、すなわち、第2の仮想プロセッ
サの状態表示テーブル2内にある状態退避領域14のP
SWを表わすフィールドのウェイi・ビット9に相当す
る部分がIt i IIからII OIIに変わった場
合、線106により仮想プロセッサ状態退避機構10に
起動信号を送出する。その後、第1の実施例で述べた場
合と全く同じ処理により、仮想プロセッサを走行させる
。
ム13により第2の仮想プロセッサに線105によって
反映され、その結果、第2の仮想プロセッサのウェイト
状態が解除された場合、すなわち、第2の仮想プロセッ
サの状態表示テーブル2内にある状態退避領域14のP
SWを表わすフィールドのウェイi・ビット9に相当す
る部分がIt i IIからII OIIに変わった場
合、線106により仮想プロセッサ状態退避機構10に
起動信号を送出する。その後、第1の実施例で述べた場
合と全く同じ処理により、仮想プロセッサを走行させる
。
−;SZ −
次に、第3の実施例として、仮想プロセッサが走行開始
後、VMCPが介在することなく、ハードウェアおよび
マイクロプログラムにより直接実行する場合の処理につ
いて述べる。
後、VMCPが介在することなく、ハードウェアおよび
マイクロプログラムにより直接実行する場合の処理につ
いて述べる。
この場合にも、第2の実施例と同じように、割込み回路
5および割込みマイクロプログラム13は、線106に
より仮想プロセッサ状態退避機構10に起動信号を送る
。その後、第1の実施例で述べた場合とほぼ同じ方法に
より、仮想プロセッサのディスパッチ処理を行うが、次
の2つの点が異なる。
5および割込みマイクロプログラム13は、線106に
より仮想プロセッサ状態退避機構10に起動信号を送る
。その後、第1の実施例で述べた場合とほぼ同じ方法に
より、仮想プロセッサのディスパッチ処理を行うが、次
の2つの点が異なる。
第1番目は、仮想プロセッサ状態退避機v110および
仮想プロセッサ状態退避マイクロプログラム11が、該
当する状態表示テーブル2のタイムスライス値16に設
定する値は、タイマ7の値ではなく、例えば特定のプロ
セッサレジスタ6に設定されている正の値を線102.
線】03により設定する。
仮想プロセッサ状態退避マイクロプログラム11が、該
当する状態表示テーブル2のタイムスライス値16に設
定する値は、タイマ7の値ではなく、例えば特定のプロ
セッサレジスタ6に設定されている正の値を線102.
線】03により設定する。
第2番目は、走行していた仮想プロセッサの状態表示テ
ーブル2を現在キューインクされている仮想プロセッサ
管理用テーブル3−iの1番最後にキューイングする。
ーブル2を現在キューインクされている仮想プロセッサ
管理用テーブル3−iの1番最後にキューイングする。
以上の変更により、仮想プロセッサを走行させる。
次に、本発明の第4の実施例について、仮想プロセッサ
の選択・起動用命令に関する動作を説明する。VMCP
が仮想プロセッサの切換処理を行う場合としては、仮想
プロセッサが走行開始後、その仮想プロセッサに割当て
られたタイムスライス値に示された時間が経過した時の
割込み処理をVMCPが介在して行う場合、OSが発行
したPSWをウェイト状態にする命令のシミュレーショ
ンを、VMCPが行う場合、およびVMCPによる割込
みのシミュレーションにより、仮想プロセッサのウェイ
1−状態が解除された場合等が考えられる。
の選択・起動用命令に関する動作を説明する。VMCP
が仮想プロセッサの切換処理を行う場合としては、仮想
プロセッサが走行開始後、その仮想プロセッサに割当て
られたタイムスライス値に示された時間が経過した時の
割込み処理をVMCPが介在して行う場合、OSが発行
したPSWをウェイト状態にする命令のシミュレーショ
ンを、VMCPが行う場合、およびVMCPによる割込
みのシミュレーションにより、仮想プロセッサのウェイ
1−状態が解除された場合等が考えられる。
本発明による仮想プロセッサ選択・起動用命令は、上記
の場合の仮想プロセッサの切換処理を高速化する。
の場合の仮想プロセッサの切換処理を高速化する。
仮想プロセッサの走行が中断されると、VMCPまたは
仮想プロセッサ状態退避機構10および仮想プロセッサ
状態退避マイクロプログラム11により、走行していた
仮想プロセッサの状態を線102、線103により該当
する状態表示テーブル2の状態退避領域14に格納し、
次に線122゜線103によりタイマ7の値を該当する
タイムスライス値に退避する。また、該当仮想プロセッ
サのアクティブフラグ19に、非アクティブ状態を表わ
すII Ouを設定する。次に、VMCPは、制御がV
MCPに渡された原因に応じて、タイムスライス値を使
い切った場合の処理、プロセッサをウェイト状態にする
命令のシミュレーション、割込み処理を行う。その後、
VMCPは、仮想プロセッサ選択・起動用命令を発行す
る。VMCPが仮想プロセッサ選択・起動用命令を発行
すると、線100を通して命令実行回路4に仮想プロセ
ッサ選択・起動用命令の起動信号が出される。仮想プロ
セッサ選択・起動用命令が発行されると、命令実行回路
4および命令実行マイクロプログラム12は、線10]
によりディスパッチ命令群29のアドレスを有するプロ
セッサレジスタ6−jの値を読み出し、主記憶装置1上
のディスパッチ命令群29に制御を渡す。ディスパッチ
命令群29の処理は、第1の実施例と全く同じである。
仮想プロセッサ状態退避機構10および仮想プロセッサ
状態退避マイクロプログラム11により、走行していた
仮想プロセッサの状態を線102、線103により該当
する状態表示テーブル2の状態退避領域14に格納し、
次に線122゜線103によりタイマ7の値を該当する
タイムスライス値に退避する。また、該当仮想プロセッ
サのアクティブフラグ19に、非アクティブ状態を表わ
すII Ouを設定する。次に、VMCPは、制御がV
MCPに渡された原因に応じて、タイムスライス値を使
い切った場合の処理、プロセッサをウェイト状態にする
命令のシミュレーション、割込み処理を行う。その後、
VMCPは、仮想プロセッサ選択・起動用命令を発行す
る。VMCPが仮想プロセッサ選択・起動用命令を発行
すると、線100を通して命令実行回路4に仮想プロセ
ッサ選択・起動用命令の起動信号が出される。仮想プロ
セッサ選択・起動用命令が発行されると、命令実行回路
4および命令実行マイクロプログラム12は、線10]
によりディスパッチ命令群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はアンド
回路である。
−,5b −
OSが命令を発行すると、線100により命令実行回路
4に命令起動信号が出る。命令実行回路4および命令実
行マイクロプログラム12は、条件コードレジスタ22
を線115によりイニシャライズした後、命令コードレ
ジスタ21に線113により該当する命令コードをセッ
トする。また、上記命令の条件コードが決定した時に、
命令実行回路4は、条件コードレジスタ22に、この条
件コードを設定するものとする。本実施例では、命令コ
ードレジスタ21と条件コードレジスタ22を1個ずつ
設けているが、複数個持たせることも勿論可能である。
4に命令起動信号が出る。命令実行回路4および命令実
行マイクロプログラム12は、条件コードレジスタ22
を線115によりイニシャライズした後、命令コードレ
ジスタ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専
用命令により線1.00,112,114により、予め
設定しておく。
24には、それぞれOSがある領域にロックがかかつて
いるか否かを判定する時に使用する命令の命令コードと
、上記命令において、他プロセツサのロックがかかつて
いた時にPSW8に設定される条件コードをVMCP専
用命令により線1.00,112,114により、予め
設定しておく。
状態表示テーブル2−1−0に対応する走行中の仮想プ
ロセッサ1のOSが、命令コード保持レジスタ23に命
令コードを有する命令を発行し、その条件コードが条件
コードレジスタ24に示された条件コードの場合、線1
.16,117,118.119から信号が比較回路2
5および26に送られ、次に線109.110から信号
がアンドゲート27に送られ、線111により仮想プロ
セッサ切換制御機構(状態退避機構)10が起動される
。仮想プロセッサ切換制御機構10および仮想プロセッ
サ切換制御マイクロプログラム(状態退避マイクロプロ
グラム)11は、プロセッサレジスタ6の値を、線10
2から取り込み、これをアドレスレジスタ35にアドレ
スが格納されている状態表示テーブル2−1−0の状態
退避領域14に、線103により退避する。次に、線1
22゜線103 Kより、タイマ7の値をタイムスライ
ス値16に格納する。また、状態表示テーブル2−1−
〇のアクティブフラグを“0″に設定する。
ロセッサ1のOSが、命令コード保持レジスタ23に命
令コードを有する命令を発行し、その条件コードが条件
コードレジスタ24に示された条件コードの場合、線1
.16,117,118.119から信号が比較回路2
5および26に送られ、次に線109.110から信号
がアンドゲート27に送られ、線111により仮想プロ
セッサ切換制御機構(状態退避機構)10が起動される
。仮想プロセッサ切換制御機構10および仮想プロセッ
サ切換制御マイクロプログラム(状態退避マイクロプロ
グラム)11は、プロセッサレジスタ6の値を、線10
2から取り込み、これをアドレスレジスタ35にアドレ
スが格納されている状態表示テーブル2−1−0の状態
退避領域14に、線103により退避する。次に、線1
22゜線103 Kより、タイマ7の値をタイムスライ
ス値16に格納する。また、状態表示テーブル2−1−
〇のアクティブフラグを“0″に設定する。
次に、仮想プロセッサ切換制御機構10および仮想プロ
セッサ切換制御マイクロプログラム11は、主記憶装置
1上のディスパッチ命令群29に制御を渡す。ディスパ
ッチ命令群29の処理は、第1の実施例で述べた処理と
ほぼ同じであるが、走行させる対象とする仮想プロセッ
サの選択方法が異なる。本実施例では、ディスパッチ命
令群29は、直前に走行していた仮想プロセッサを除く
、仮想プロセッサと同−VM上の仮想プロセッサでウェ
イト状態でなく、かつアクティブ状態でない仮想プロセ
ッサを、開−VM状態表示テープルアドレスポインタ1
8を用いて選択する。これにより、中断された仮想プロ
セッサでない同−VM上の仮想プロセッサを走行させる
ことができる。
セッサ切換制御マイクロプログラム11は、主記憶装置
1上のディスパッチ命令群29に制御を渡す。ディスパ
ッチ命令群29の処理は、第1の実施例で述べた処理と
ほぼ同じであるが、走行させる対象とする仮想プロセッ
サの選択方法が異なる。本実施例では、ディスパッチ命
令群29は、直前に走行していた仮想プロセッサを除く
、仮想プロセッサと同−VM上の仮想プロセッサでウェ
イト状態でなく、かつアクティブ状態でない仮想プロセ
ッサを、開−VM状態表示テープルアドレスポインタ1
8を用いて選択する。これにより、中断された仮想プロ
セッサでない同−VM上の仮想プロセッサを走行させる
ことができる。
なお、本実施例では、走行していた仮想プロセッサを一
旦非アクチイブ状態としたが、アクティブ状態を継続し
、他プロセツサにおいて仮想プロセッサのディスパッチ
処理終了後、上記走行していた仮想プロセッサを継続し
て走行させることも可能である。また、以上の実施例に
おいては、ディスパッチ命令群29をソフトウェアによ
り実現したが、マイクロプログラムでも実現可能である
。
旦非アクチイブ状態としたが、アクティブ状態を継続し
、他プロセツサにおいて仮想プロセッサのディスパッチ
処理終了後、上記走行していた仮想プロセッサを継続し
て走行させることも可能である。また、以上の実施例に
おいては、ディスパッチ命令群29をソフトウェアによ
り実現したが、マイクロプログラムでも実現可能である
。
最後に、状態表示テーブル2内の走行優先度15の設定
方法と、VMまたはVMCPがマルチプ走行優先度14
は、VMCPがコマンド等により固定的に与えることも
可能であり、またVMCPが動的に変更することも可能
である。例えば、チェインジピット20がrz 1 n
の時には、コマンドによってのみ走行優先度15を変更
可能とし、チエインジビット20が“0″の時には、V
MCPは該当仮想プロセッサが走行時のCPU利用率等
をもとにして、走行優先度15を動的に変えることは、
従来の技術により可能である。
方法と、VMまたはVMCPがマルチプ走行優先度14
は、VMCPがコマンド等により固定的に与えることも
可能であり、またVMCPが動的に変更することも可能
である。例えば、チェインジピット20がrz 1 n
の時には、コマンドによってのみ走行優先度15を変更
可能とし、チエインジビット20が“0″の時には、V
MCPは該当仮想プロセッサが走行時のCPU利用率等
をもとにして、走行優先度15を動的に変えることは、
従来の技術により可能である。
また、走行優先度15に対応してタイムスライス値16
を変更する場合には、走行優先度15とタイ11スライ
ス値16との対応表を設け、走行優先度15が変わる度
に、その対応表により、タイムスライス値16を更新す
ればよい。
を変更する場合には、走行優先度15とタイ11スライ
ス値16との対応表を設け、走行優先度15が変わる度
に、その対応表により、タイムスライス値16を更新す
ればよい。
また、本実施例においては、説明を省略したがVMある
いはVMCPがマルチプロセッサ構成の場合には、主記
憶1上の仮想プロセッサ管理用テリ、予め他のプロセッ
サあるいは仮想プロセッサからは、参照・更新できない
ようにしておく。
いはVMCPがマルチプロセッサ構成の場合には、主記
憶1上の仮想プロセッサ管理用テリ、予め他のプロセッ
サあるいは仮想プロセッサからは、参照・更新できない
ようにしておく。
以上説明したように、本発明によれば、VM上の仮想プ
ロセッサがウェイト状態になったり、同−VM上の他の
仮想プロセッサのロックによりOSがループ状態となる
場合には、その仮想プロセッサが走行しているプロセッ
サ、およびアクティブ状態にないプロセッサ上で、走行
可能な仮想プロセッサを起動させることができるので、
マルチプロセッサの仮想計算機において、計算機のプロ
セッサを効率よく利用することができる。
ロセッサがウェイト状態になったり、同−VM上の他の
仮想プロセッサのロックによりOSがループ状態となる
場合には、その仮想プロセッサが走行しているプロセッ
サ、およびアクティブ状態にないプロセッサ上で、走行
可能な仮想プロセッサを起動させることができるので、
マルチプロセッサの仮想計算機において、計算機のプロ
セッサを効率よく利用することができる。
第1図は本発明の一実施例を示すVMSのブロック図、
第2図は第1図ト;おける状態表示テーブルの説明図、
第3図は第1図におけるプロセッサ、″ −・状態テーブルの説明図、第4図は本発明の他の実・
施例を示すVMSのブロック図、第5図は本発明におけ
る状態表示テーブルのギューイング方法の説明図である
。 1:主記憶装置、2:状態表示テーブル、3:仮想プロ
セッサ管理用テーブル、4:命令実行回路、5:割込み
回路、6:プロセッサレジスタ、7:タイマ、8:PS
W、9:ウエイ1−ビット、10:仮想プロセッサ状態
退避機構211:仮想プロセッサ状態退避マイクロプロ
グラム、12:命令実行マイクロプログラム、13;割
込みマイクロプログラム、14二状態退避領域、15:
走行優先度、1G=タイムスライス値、17:同一走行
優先度状態表示テーブルアドレスポインタ、18:同−
VM状態表示テーブルアドレスポインタ、19;アクテ
ィブフラグ、20:チェインジビット、21:命令コー
ドレジスタ、22:条件コードレジスタ、23:命令コ
ード保持レジスタ、24:条件コード保持レジスタ、2
5.26:比較回路、27:アンドゲート、28:プロ
セッサ状態テーブル、29:テイスパツチ命令群、30
:プロセッサ番号、31:プロセッサ番号レジスタ、3
2:プロセッサアクティブビット、33:プロセッサロ
ックワード、34ニアクチイブ状態表示テーブルアドレ
ス、35ニアドレスレジスタ、100〜122:信号線
。 第 2 図 第 3 図 第 4 図 r −−−−−−−−−−−−−−−コ′”°5心丑 1 28−q仙 −n−ol 覗 ■ 口う 唱 101 ”’ ](1) 1、f
11
−]1 01=稲6− 、 7
1甲=日R6−” L j
]20+10 107106 ’ ■ ]2]1 )−1−〜−111
第2図は第1図ト;おける状態表示テーブルの説明図、
第3図は第1図におけるプロセッサ、″ −・状態テーブルの説明図、第4図は本発明の他の実・
施例を示すVMSのブロック図、第5図は本発明におけ
る状態表示テーブルのギューイング方法の説明図である
。 1:主記憶装置、2:状態表示テーブル、3:仮想プロ
セッサ管理用テーブル、4:命令実行回路、5:割込み
回路、6:プロセッサレジスタ、7:タイマ、8:PS
W、9:ウエイ1−ビット、10:仮想プロセッサ状態
退避機構211:仮想プロセッサ状態退避マイクロプロ
グラム、12:命令実行マイクロプログラム、13;割
込みマイクロプログラム、14二状態退避領域、15:
走行優先度、1G=タイムスライス値、17:同一走行
優先度状態表示テーブルアドレスポインタ、18:同−
VM状態表示テーブルアドレスポインタ、19;アクテ
ィブフラグ、20:チェインジビット、21:命令コー
ドレジスタ、22:条件コードレジスタ、23:命令コ
ード保持レジスタ、24:条件コード保持レジスタ、2
5.26:比較回路、27:アンドゲート、28:プロ
セッサ状態テーブル、29:テイスパツチ命令群、30
:プロセッサ番号、31:プロセッサ番号レジスタ、3
2:プロセッサアクティブビット、33:プロセッサロ
ックワード、34ニアクチイブ状態表示テーブルアドレ
ス、35ニアドレスレジスタ、100〜122:信号線
。 第 2 図 第 3 図 第 4 図 r −−−−−−−−−−−−−−−コ′”°5心丑 1 28−q仙 −n−ol 覗 ■ 口う 唱 101 ”’ ](1) 1、f
11
−]1 01=稲6− 、 7
1甲=日R6−” L j
]20+10 107106 ’ ■ ]2]1 )−1−〜−111
Claims (10)
- (1)1台の実計算機のもとで1以上のオペレーティン
グシステム(OS)の同時走行を仮想計算機制御プログ
ラムにより制御する仮想計算機システムにおいて、上記
仮想計算機を構成する仮想プロセッサごとに状態の退避
と、該仮想プロセッサがアクティブ状態か否かを示すア
クティブフラグと、上記制御プログラムが指定する走行
優先度とを格納する記憶領域、および各プロセッサがア
クティブ状態か否かを示すプロセッサ状態表を有し、走
行中のOSが該当プロセッサをウェイト状態にする命令
を発行したとき、該命令を制御プログラムの介在なしに
ハードウェアおよびマイクロプログラムが直接実行した
後、走行中の仮想プロセッサの状態を上記状態退避領域
に格納し、該仮想プロセッサのアクティブフラグに非ア
クティブ状態を示し、さらに上記プロセッサ状態表に非
アクティブ状態が指示されているプロセッサの中からプ
ロセッサを選択して、プロセッサ状態表の該当フィール
ドにアクティブ状態を設定し、またウェイト状態でなく
、かつアクティブ状態でない仮想プロセッサ群の中から
走行優先度に従つて仮想プロセッサを選択するとともに
、該仮想プロセッサのアクティブフラグにアクティブ状
態を設定し、該仮想プロセッサの状態退避領域の内容を
プロセッサに設定することにより、仮想プロセッサを起
動することを特徴とする仮想計算機のディスパッチ制御
方式。 - (2)上記ハードウェアおよびマイクロプロセッサは、
非アクティブ状態が指示されているプロセッサの中から
プロセッサを選択した後、上記選択したプロセッサ上で
走行させる仮想プロセッサが存在しない場合には、プロ
セッサ状態表の該プロセッサのフィールドに非アクティ
ブ状態を指示することを特徴とする特許請求の範囲第1
項記載の仮想計算機のディスパッチ制御方式。 - (3)1台の実計算機のもとで1以上のオペレーティン
グシステム(OS)の同時走行を仮想計算機制御プログ
ラムにより制御する仮想計算機システムにおいて、上記
仮想計算機を構成する仮想プロセッサごとに状態の退避
と、該仮想プロセッサがアクティブ状態か否かを示すア
クティブフラグと、上記制御プログラムが指定する走行
優先度とを格納する記憶領域、および各プロセッサがア
クティブ状態か否かを示すプロセッサ状態表を有し、計
算機のプロセッサにより第1の仮想プロセッサが走行中
に、上記制御プログラムを介在させずにハードウェアお
よびマイクロプログラムが直接処理可能な割込みが発生
し、該割込みにより第2の仮想プロセッサのウェイト状
態が解除された場合、第1の仮想プロセッサの状態を該
当する状態退避領域に格納し、また該仮想プロセッサの
アクティブフラグに非アクティブ状態を設定するととも
に、上記プロセッサおよびプロセッサ状態表に非アクテ
ィブ状態が指示されているプロセッサの中からプロセッ
サを選択して、プロセッサ状態表の該当フィールドにア
クティブ状態を設定し、またウェイト状態でなく、かつ
アクティブ状態でない仮想プロセッサ群の中から走行優
先度に従つて仮想プロセッサを選択して、該仮想プロセ
ッサのアクティブフラグにアクティブ状態を設定し、上
記選択したプロセッサの状態退避領域の内容をプロセッ
サに設定することにより、仮想プロセッサを起動するこ
とを特徴とする仮想計算機のディスパッチ制御方式。 - (4)上記ハードウェアおよびマイクロプログラムは、
非アクティブ状態が指示されているプロセッサを選択し
た後、選択されたプロセッサ上で走行させる仮想プロセ
ッサが存在しない場合には、プロセッサ状態表の該プロ
セッサのフィールドに非アクティブ状態を指示すること
を特徴とする特許請求の範囲第3項記載の仮想計算機の
ディスパッチ制御方式。 - (5)1台の実計算機のもとで1以上のオペレーティン
グシステム(OS)の同時走行を仮想計算機制御プログ
ラムにより制御する仮想計算機システムにおいて、上記
仮想計算機を構成する仮想プロセッサごとに状態の退避
と、該仮想プロセッサがアクティブ状態か否かを示すア
クティブフラグと、上記制御プログラムが指定する走行
優先度と、上記制御プログラムが仮想プロセッサごとに
指定したタイムスライス値とを格納する記憶領域、各プ
ロセッサがアクティブ状態か否かを示すプロセッサ状態
表、およびOSが仮想プロセッサにより走行開始後、上
記タイムスライス値の時間が経過した時に、割込み信号
を発生するタイマを有し、仮想プロセッサが走行開始後
、タイムスライス値の時間が経過した時、ハードウェア
およびマイクロプログラムが走行中の該仮想プロセッサ
の状態を上記状態退避領域に格納し、該プロセッサのア
クティブフラグに非アクティブ状態を示し、さらに上記
プロセッサ状態表に非アクティブ状態が指示されている
プロセッサの中からプロセッサを選択するとともに、プ
ロセッサ状態表の該当フィールドにアクティブ状態を設
定し、またウェイト状態でなく、かつアクティブ状態で
ない仮想プロセッサ群の中から走行優先度に従つて仮想
プロセッサを選択するとともに、該仮想プロセッサのア
クティブフラグにアクティブ状態を設定し、該仮想プロ
セッサのタイムスライス値と該状態退避領域の内容をそ
れぞれタイマとプロセッサに設定することにより、仮想
プロセッサを起動することを特徴とする仮想計算機のデ
ィスパッチ制御方式。 - (6)上記ハードウェアおよびマイクロプログラムは、
非アクティブ状態が指示されているプロセッサの中から
プロセッサを選択した後、選択されたプロセッサ上で走
行させる仮想プロセッサが存在しない場合には、プロセ
ッサ状態表の該プロセッサのフィールドに非アクティブ
状態を指示することを特徴とする特許請求の範囲第5項
記載の仮想計算機のディスパッチ制御方式。 - (7)1台の実計算機のもとで1以上のオペレーティン
グシステム(OS)の同時走行を仮想計算機制御プログ
ラムにより制御する仮想計算機システムにおいて、上記
仮想計算機を構成する仮想プロセッサごとに状態の退避
と、該仮想プロセッサがアクティブ状態か否かを示すア
クティブフラグと、上記制御プログラムが指定する走行
優先度とを格納する記憶領域、各プロセッサがアクティ
ブ状態か否かを示すプロセッサ状態表、および仮想プロ
セッサの選択・起動用命令を有し、走行中の仮想プロセ
ッサの走行が中断され、上記制御プログラムまたはハー
ドウェアおよびマイクロプログラムにより走行中の仮想
プロセッサの状態を該当する仮想プロセッサの状態退避
領域に格納し、該仮想プロセッサのアクティブフラグに
非アクティブ状態を設定した後、上記制御プログラムは
上記選択・起動用命令を発行し、該命令は上記プロセッ
サおよびプロセッサ状態表に非アクティブ状態が指示さ
れているプロセッサの中からプロセッサを選択するとと
もに、プロセッサ状態表の該当フィールドにアクティブ
状態を設定し、またウェイト状態でなく、かつアクティ
ブ状態でない仮想プロセッサ群の中から走行優先度に従
つて仮想プロセッサを選択して、該仮想プロセッサのア
クティブフラグにアクティブ状態を設定し、該状態退避
領域の内容をプロセッサに設定することにより、仮想プ
ロセッサを起動することを特徴とする仮想計算機のディ
スパッチ制御方式。 - (8)上記制御プログラムまたはハードウェアおよびマ
イクロプログラムは、非アクティブ状態が指示されてい
るプロセッサの中からプロセッサを選択した後、選択さ
れたプロセッサ上で走行させる仮想プロセッサが存在し
ない場合には、プロセッサ状態表の該プロセッサのフィ
ールドに非アクティブ状態を指示することを特徴とする
特許請求の範囲第7項記載の仮想計算機のディスパッチ
制御方式。 - (9)1台の実計算機のもとで1以上のオペレーティン
グシステム(OS)の同時走行を仮想計算機制御プログ
ラムにより制御する仮想計算機システムにおいて、上記
仮想計算機を構成する仮想プロセッサごとに状態の退避
と該仮想プロセッサがアクティブ状態か否かを示すアク
ティブフラグと上記制御プログラムが指定する走行優先
度とを格納する記憶領域、計算機を構成する各プロセッ
サがアクティブ状態か否かを示すプロセッサ状態表、1
組以上の命令コードと条件コードの保持手段、マルチプ
ロセッサの仮想計算機を構成する仮想プロセッサ群の状
態判断手段、および状態の選択手段を有し、OSが走行
中に、上記保持手段に示された命令を発行し、該命令に
対する条件コードが上記保持手段に示された条件コード
に一致するならば、ハードウェアおよびマイクロプログ
ラムが走行中の仮想プロセッサの状態を上記状態退避領
域に格納して、該仮想プロセッサのアクティブフラグに
非アクティブ状態を示し、さらに上記プロセッサ状態表
に非アクティブ状態が指示されているプロセッサの中か
らプロセッサを選択するとともに、プロセッサ状態表の
該当フィールドにアクティブ状態を設定し、また上記選
択手段によりマルチプロセッサを構成する仮想プロセッ
サ群の状態の判定と選択を行い、選択した仮想プロセッ
サのアクティブフラグにアクティブ状態を設定し、選択
した仮想プロセッサの状態退避領域の内容を上記選択し
たプロセッサに設定することにより、走行仮想プロセッ
サを起動することを特徴とする仮想計算機のディスパッ
チ制御方式。 - (10)上記ハードウェアおよびマイクロプロセッサは
、非アクティブ状態が指示されているプロセッサの中か
らプロセッサを選択した後、選択されたプロセッサ上で
走行させる仮想プロセッサが存在しない場合には、プロ
セッサ状態表の該プロセッサのフィールドに非アクティ
ブ状態を指示することを特徴とする特許請求の範囲第9
項記載の仮想計算機のディスパッチ制御方式。
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 true JPS62163149A (ja) | 1987-07-18 |
| JPH0814795B2 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 (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7251814B2 (en) | 2001-08-24 | 2007-07-31 | International Business Machines Corporation | Yield on multithreaded processors |
| US7310168B2 (en) | 2001-07-03 | 2007-12-18 | Infoprint Solutions Company Llc | Method and apparatus for controlling a spot function for digital halftoning |
| US7428485B2 (en) | 2001-08-24 | 2008-09-23 | International Business Machines Corporation | System for yielding to a processor |
| US7496494B2 (en) | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
Families Citing this family (48)
| 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 | 記憶装置の領域割り当て方法 |
| JPH06187178A (ja) * | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
| JP2977688B2 (ja) * | 1992-12-18 | 1999-11-15 | 富士通株式会社 | マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ |
| JP3098344B2 (ja) * | 1992-12-18 | 2000-10-16 | 富士通株式会社 | データ転送処理方法及びデータ転送処理装置 |
| 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 |
| 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 |
| 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 |
| 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 |
| KR100422132B1 (ko) * | 2001-09-06 | 2004-03-11 | 엘지전자 주식회사 | 실시간 시스템의 씨피유 타스크 점유율 측정장치 |
| 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 |
| US9396012B2 (en) | 2013-03-14 | 2016-07-19 | Qualcomm Incorporated | Systems and methods of using a hypervisor with guest operating systems and virtual processors |
| 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 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59167756A (ja) * | 1983-01-31 | 1984-09-21 | Nec Corp | 仮想計算機のデイスパツチ制御方式 |
Family Cites Families (6)
| 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 |
| 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
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59167756A (ja) * | 1983-01-31 | 1984-09-21 | Nec Corp | 仮想計算機のデイスパツチ制御方式 |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US8108196B2 (en) | 2001-08-24 | 2012-01-31 | International Business Machines Corporation | System for yielding to a processor |
| US7496494B2 (en) | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
| US7844446B2 (en) | 2002-09-17 | 2010-11-30 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0814795B2 (ja) | 1996-02-14 |
| US5095427A (en) | 1992-03-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0814795B2 (ja) | マルチプロセッサ仮想計算機システム | |
| US7290261B2 (en) | Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor | |
| EP3039540B1 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
| US20050132363A1 (en) | Method, apparatus and system for optimizing context switching between virtual machines | |
| US3651482A (en) | Interlocking data subprocessors | |
| CN101095112B (zh) | 仿真os隔离定序器上的用户级多线程处理的机制 | |
| JPS646488B2 (ja) | ||
| US8539499B1 (en) | Symmetric multiprocessing with virtual CPU and VSMP technology | |
| US20110119667A1 (en) | Monitoring spin locks in virtual machines in a computing system environment | |
| JPH09258980A (ja) | 並列マルチタスキングの方法及びシステム | |
| US5590294A (en) | Method and apparatus for retarting pipeline processing | |
| JPS61206043A (ja) | 仮想計算機システムにおける割込制御方法 | |
| US9715403B2 (en) | Optimized extended context management for virtual machines | |
| CN106250217A (zh) | 一种多虚拟处理器间的同步调度方法及其调度系统 | |
| US5148542A (en) | Multitask processing apparatus utilizing a central processing unit equipped with a micro-program memory which contains no software instructions | |
| JP2005521937A (ja) | コンピュータオペレーティングシステムにおけるコンテキスト切り替え方法及び装置 | |
| KR102003721B1 (ko) | Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치 | |
| EP0335990B1 (en) | Processor-processor synchronization | |
| JPS6079462A (ja) | 複数のレコ−ドへのアクセスを制御するコントロ−ラ | |
| US20240231867A9 (en) | Paravirtual pause loops in guest user space | |
| JPH0754467B2 (ja) | データ処理装置 | |
| CN109213575B (zh) | 单一处理器运行程序的方法 | |
| JPS61184643A (ja) | 仮想計算機の起動制御方式 | |
| JPS62221041A (ja) | 仮想計算機システムにおけるデイスパツチ制御装置 | |
| JPH0363768B2 (ja) |