JPS62221041A - 仮想計算機システムにおけるデイスパツチ制御装置 - Google Patents

仮想計算機システムにおけるデイスパツチ制御装置

Info

Publication number
JPS62221041A
JPS62221041A JP6394286A JP6394286A JPS62221041A JP S62221041 A JPS62221041 A JP S62221041A JP 6394286 A JP6394286 A JP 6394286A JP 6394286 A JP6394286 A JP 6394286A JP S62221041 A JPS62221041 A JP S62221041A
Authority
JP
Japan
Prior art keywords
processor
virtual
virtual processor
real
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6394286A
Other languages
English (en)
Inventor
Toshiharu Tanaka
俊治 田中
Yoshio Ukai
鵜飼 良夫
Hidenori Umeno
梅野 英典
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6394286A priority Critical patent/JPS62221041A/ja
Publication of JPS62221041A publication Critical patent/JPS62221041A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、仮想計算機システムに関し、特に、複数のプ
ロセッサを有する実計算機上における複数の仮想計算機
の走行の制御に関する。
〔従来の技術〕
仮想計算機7ステムは、1台の実計算機上で複数のオペ
レーティングシステム(以下O8という)が見掛は上回
時に走行するのを可能にする、ハードウェアとソフトウ
ェアからなるシステムである。
これらのO8のそれぞれは論理的には1台の計算機に対
応し、この論理的な計算機は仮想計算機(virtua
l Machine :以下VMという)と呼ばれる。
これらのV−Mに実計算機のリソースを時分割的に配分
して、各VMがあたかも実計算機を占有しているかのよ
うな環境を作シ出すためのプログラムが、仮想計算機制
御プログラム(virtualMachine Con
trol program :以下VMCPという)で
ある。
仮想計算機システム(以下VMシステムという)におい
て、諸VMに時分割的に配分されるべき実計算機リソー
スの代表は、プロセッサ(いわゆるCPU)である。マ
ルチプロセッサ構成の実計算機は、複数のプロセッサ(
実プロセッサ)を有する。他方、各VMは、少なくとも
1台のプロセッサ(仮想プロセッサ)を有し、マルチプ
ロセッサ構成であれば、複数の仮想プロセッサを有する
したがって、マルチプロセッサ構成の実計算機上で効率
の良いVMシステムを構築するには、複数の実プロセッ
サを複数の仮想プロセッサに効率良く割当てる機構が必
要である。
特開昭59−167756号公報には、マルチプロセッ
サ構成の実計算機上でマルチプロセッサ構成のVMを含
む複数のVMを走行させるVMシステムのだめの、ディ
スパッチ制御方式が記載されている。このディスパッチ
制御方式によれば、各仮想プロセッサに対応してVPC
Bと呼ばれる記憶領域が用意される。各VPCBは、対
応する仮想プロセッサのVM番号(VMN)、仮想プロ
セッサ番号(VPN)及び走行優先度ffPPRI)並
びにキュー関連情報を保持するとともに、各種レジスタ
内容のだめの退避領域を含み、ディスパッチ待ち状態に
ある仮想プロセッサに対応するVPCBは、走行優先度
に従ってキューを形成する。■Pディスパッチャと呼ば
れるマイクロプログラム又はプログラムルーチンは、実
行すべきVMCP(前掲公報ではVMCと呼ばれる)の
プロセスがなければ、このvPディスパッチャを実行中
の実プロセッサの番号と等しいVPNを持つ仮想プロセ
ッサをVPCBのキューから探し出し、そして、その実
プロセッサ上で走行中であった仮想プロセッサがあれば
、それと探し出された仮想プロセッサの内で高い走行優
先度を持つ方をディスパッチし、走行中であった仮想プ
ロセッサがなければ、探し出された仮想プロセッサをデ
ィスパッチする。
〔発明が解決しようとする問題点〕
前掲公開公報に記載された方式は、マルチブロセッサ構
成の実計算機上でマルチプロセッサ構成のVMを含むV
Mシステムを構築するために、非常に有効である。しか
しながら、そこには、更に洗練されたVMシステムを実
現するために考慮すべき、いくつかの点がある。
第1は、VMの内部における管理用情報であるVPNが
、走行可能な実プロセッサの番号に対応付けられている
ことに起因する制約を、除くことである。VPNが走行
可能な実プロセッサを決定する型の機構では、各仮想プ
ロセッサは、単一の実プロセッサ上での走行が許されう
るにすぎず。
しかも、その単一の走行可能な実プロセッサの割当てが
VPNに依存し、不自由である。その結果、複数の仮想
プロセッサの間における実プロセッサの割当てを、負荷
の不均一に応じて適切に決定し、また、負荷の変化に応
じて変更するのは、必ずしも容易ではない。更に、備え
られた実プロセッサよシも多い仮想プロセッサを持っV
Mを走行させるには、どうしたらよいかも問題である。
第2は、VPディスパッチャを実行中の実プロセッサ以
外の実プロセッサに対する措置である。
ある実プロセッサ上で走行中の仮想プロセッサがアイド
ル又はウェイト状態に入った時に、その実プロセッサに
対するディスパッチに加えて、他の遊休実プロセッサに
対するディスパッチが行なわれれば、VMシステムの効
率の一層の向上が期待できる。
第3は、マルチプロセッサ構成のVMにおける、記憶領
域のロックに対する措置である。ある仮想プロセッサが
、同じVMの他の仮想プロセッサによりロックされた記
憶領域へのアクセスを必要とした時、前者は、後者がそ
のロックを解除するまで、実質的な処理を進めることが
できない。このような場合に有効な特別のディスパッチ
処理は、前掲公報には開示されていない。
〔問題点を解決するだめの手段〕
前記第1の問題点を解決するために、本発明によれば、
仮想プロセッサの走行が許されうる実プロセッサを示す
情報(前掲公報記載の方式におけるVPNに相当)は、
任意の1又は複数の実プロセッサを示す。このような指
示は、例えば、各実プロセッサに対応するフラグの群に
よシ、容易に実現することができる。
前記第2の問題点を解決するために、各実プロセッサが
空いているか否かを示す情報を保持する実プロセッサ状
態テーブルが設けられ、そして、ディスパッチ手段(前
掲公報記載の方式におけるVPディスパッチャに相当)
は、前記テーブルを参照して、特定の実プロセッサに限
らず、すべての空いている実プロセッサについて、仮想
プロセッサのディスパッチを逐次試みる。
第3の問題点を解決するために、同じVMに属する仮想
プロセッサに対応する仮想プロセッサ状態テーブル(前
掲公報記載の方式におけるVPCBに相当)がリンクさ
れるとともに、ロック判定命令によシ記憶領域のロック
が発見されたことを検出する手段が設けられ、そして、
前記検出手段が走行中の仮想プロセッサについてロック
を検出した時に、ディスパッチ手段は、前記リンクに沿
って、同じVMに属する他の仮想プロセッサの起動を試
みる。
〔作用〕
仮想プロセッサが走行を許されうる実プロセッサとして
任意の1又は複数の実プロセッサが指定できる構成は、
オペレータが、VMCPを介して、仮想プロセッサ番号
とは無関係に、各仮想プロセッサの負荷の相対的大きさ
あるいはその変動に応じて、適当な数の適当な実プロセ
ッサをそれぞれの仮想プロセッサに割当て、あるいはそ
の割当てを変更することを、容易にする。
また、ディスパッチ手段は、実プロセッサ状態テーブル
を参照することによシ、ディスパッチ処理を実行中の実
プロセッサ以外の各実プロセッサについても、実プロセ
ッサが空き状態にあるか否かを逐次判定し、空き状態に
あればそこで走行可能な仮想プロセッサを探して、もし
あればそれを起動する。
更に、走行中の仮想プロセッサに関して、ロック判定命
令が発行されて、その結果、記憶領域が同じVMの他の
仮想プロセッサによりロックされていることが発見され
ると、ロック検出手段はそれを検出し、この検出に応じ
て起動されたディスパッチ手段は、同−VMの仮想プロ
セッサ状態テーブルの間のリンクをたどって、空いてい
る実プロセッサ上で走行可能な同−VMの他の仮想フロ
セッサを探し、あればそれを起動する。したがって、ロ
ックの解除が早められる。
〔実施例〕
第1図は、本発明の一実施例をブロックダイヤグラムで
示す。主記憶装置1は複数のプロセッサ(いわゆるCP
U)2により共有される。ただし、図には1台のプロセ
ッサのみが示されている。他のプロセッサは、少なくと
もディスパッチ処理機構に関する限シ、図示のプロセッ
サ、2と同じ構成である。このコンピュータシステム上
で、VMCPの管理の下に複数のVMが走行することが
でき、各VMは、少なくとも1台の仮想プロセッサを有
し、あるいは、複数の仮想プロセッサを有してもよい。
なお、本欄において、単にプロセッサといえば、それは
実プロセッサを意味する。
主記憶装置1内に、実プロセッサ状態テーブル(以下R
,P状態テーブルという)3と、一群の仮想プロセッサ
状態テーブル(以下VP状態テーブルという)4と、仮
想プロセッサ管理テーブル(以下VP管理テーブルとい
う)5が用意される。
RP状態テーブル3は、システム中の全プロセッサ2の
それぞれの稼動状態を示す情報を保持する。
vP状態テーブル4のそれぞれ(図において4−1−0
〜4− n −0)は、個々の仮想プロセッサに対応し
、対応する仮想プロセッサの管理用情報と状態情報を保
持する。この状態情報は、走行の中断・再開に際して退
避・回復される各種レジスタ等の内容を含む。vP管理
テーブル5は、VP状態テーブル4のキューを、対応す
る仮想プロセッサの走行優先変則に形成するだめのテー
ブルである。そのフィールド5−0〜5− nは、その
順に低くなる走行優先度のVP状態テーブルのキューの
先頭を指す。第1図においては、2番目に高い走行優先
度に対応するフィールド5−1に、3個+7)VP状態
テーブル4−1−0〜4−1−2がリンクされ、最も低
い走行優先度に対応するフィールド5−nに、1個のV
P状態テーブル4− n−〇がリンクされている。R,
P状態テーブル3と■P状態テーブル4の詳細は後述す
る。主記憶装置1は、まだ、仮想プロセッサのディスパ
ッチを制御するだめのディスパッチ命令群6を保持する
プロセッサ2において、命令実行回路7は、命令実行マ
イクロプログラム7aと協同して、命令を解釈・実行す
る。割込回路8は、割込処理マイクロプログラム8aと
協同して、割込みを処理する。プロセッサレジスタ群9
は、各種の制御情報を保持するだめのレジスタ群と、処
理途上でデータを一時的に保持するためのレジスタ群か
らなる。
前記制御情報はpSW(program 5tatus
 Word)9aを含む。PSW9aの特定のビットw
は、対応する仮想プロセッサがウェイト状態にあるか否
かを示すウェイトビットであり、@l1jjの時にウェ
イト状態を示し、N O#の時に非ウェイト状態(走行
可能状態)を示す。RP状態テーブル3、VP管理テー
ブル5及びディスパッチ命令群6のアドレスも、プロセ
ッサレジスタ群9中の予め定められた各レジスタに保持
される。
タイマ10は、仮想プロセッサの走行をタイムスライス
に基づいて管理するためのタイマであシ、走行中の仮想
プロセッサのタイムスライス値ヲカウントダウンして、
それが“0”に達すると、仮想プロセッサの切換えのた
めの割込原因信号を割込回路8に送る。プロセッサ番号
レジスタ11は、それが属するプロセッサ2を識別する
プロセッサ番号を保持する。仮想プロセッサアドレスレ
ジスタ(以下vPアドレスレジスタという)12は、目
下走行中の仮想プロセッサに対応するVP状態テーブル
4のアドレスを保持する。第1図における点線100は
、vP状態テーブル4−1−0に対応する仮想プロセッ
サが走行中であることを表わす。プロセッサ状態退避機
構13は、プロセッサ状態退避マイクロプログラム13
aと協同して、仮想プロセッサの切換えに際して、プロ
セッサレジスタ群9の内容の一部及びその他の情報の退
避を制御する。ロック検出回路14は後述する。
第2図は、第1図におけるRP状態テーブル3の詳細を
示す。RP状態テーブル3は、システム中のプロセッサ
20個数に等しいフィールド3−〇〜3−i〜3−mを
有し、一般に、番号iのフィールドの内容は、番号iの
プロセッサ(プロセッサ番号レジスタ11がHj#を保
持するプロセッサ)の稼動状態を示す。すなわち、各フ
ィールドのR,Pアクティブピット3aは、それが61
”ならば対応するプロセッサ2がアクティブ状態(仮想
プロセッサが走行中)にあることを示し。
“07jならば遊休状態にあることを示す。■P状態テ
ーブルアドレス3bは、対応するプロセッサ2がアクテ
ィブ状態にあるとき、そこで走行中の仮想プロセッサに
対応するVP状態テーブルのアドレスを指す。プロセッ
サロックワード3Cは、あるプロセッサフィールド(3
−i)の参照又は更新が行なわれている間にそこへの他
の参照又は更新動作が行なわれないように、各プロセッ
サフィールドをロックするためにセットされる。
第3図は、■P状態テーブル4の詳細を示す。
VPアクティブフラグ4aは、対応する仮想プロセッサ
がアクティブ状態にあるか否か、すなわち、実プロセッ
サ上で走行中か否かを示す。チェンジピッ)4bは、対
応する仮想プロセッサの走行優先度が、VMCPによっ
て動的に変更されうるか否かを示す。走行可能プロセッ
サフラグ4Cは、対応する仮想プロセッサの走行に使用
しうる実プロセッサを示す。例えば、このフィールドは
複数のビットを持ち、各ビットは1台の実プロセッサに
対応し、あるビットが1”であれば、このビットに対応
するプロセッサは、このvP状態テーブルに対応する仮
想プロセッサの走行のために使用することができる。単
一の仮想プロセッサに複数の走行可能な実プロセッサが
与えられてもよい。
プロセッサ番号4dは、■Pアクティブフラグ4aが1
″(走行中)のとき、対応する仮想プロセッサが走行中
のプロセッサのプロセッサ番号を示す。走行優先度4e
は、対応する仮想プロセッサの走行優先度を示す。
プロセッサ状態退避領域4fは、対応する仮想プロセッ
サの状態の保存のための領域であり、この仮想プロセッ
サの走行が中断されるときには、プロセッサレジスタ群
9の内容の所要部分がこの領域に退避され、走行の再開
に際しては、この領域の内容がプロセッサレジスタ群9
に戻される。
タイムスライス値4gは、対応する仮想プロセッサの走
行時間の管理のためのタイムスライスの値であり、走行
の都度更新される。同一走行優先度vP状態テーブルポ
インタ4hは、同じ走行優先度を持つvP状態テーブル
のキューを形成するためのリンク情報であシ、キュー中
次位のvP状態テーブルのアドレスを指す。同−VMV
P状態テーブルポインタ41は、対応するVMが複数の
仮想プロセッサを持つ場合に、それらのvP状態テーブ
ルをリンクするため、同じVMに属する他の■P状態テ
ーブルのアドレスを指す。これらの他に、図示されてい
ないが、第1図の30と同様なロックワードのためのフ
ィールドが用意される。
次に、いくつかの場合について、ディスパッチ処理の過
程を説明する。最初は、VMのO8が発する。
if、vPアドレスレジスタ12の内容が取込まれ、そ
の値をアドレスとするVP状態テーブル4−1−0がア
クセスされて(33)、そのプロセッサ状態退避領域4
fに、プロセッサレジスタ群9から、走行中の仮想プロ
セッサに個有の情報が転送され(34)、また、タイマ
1oの内容が、タイムスライス値フィールド4gに転送
される(35)。
更に、■Pアクティブフラグ4aは@ Ojlにセット
される(36)。これらの処理が終ると、プロセッサ状
態退避機構13及びプロセッサ状態退避マイクロプログ
ラム13aは、主記憶装置1上のディスパッチ命令群6
に制御を渡す(37)。ディスパッチ命令群6のアドレ
スは、前述のように、プロセッサレジスタ群9中の予め
定められたレジスタに常時保持されている。そこで、デ
ィスパッチ命令群6中の命令は、命令実行回路7に逐次
読出されて、実行される。
ディスパッチ命令群6によって行なわれる処理は、次の
とおシである。プロセッサ番号レジスタ行する走行中の
仮想プロセッサをウェイト状態にする命令が、VMCP
の介在なしに、ハードウェアとマイクロプログラムによ
り直接実行されるようなアーキテクチャが備えられてい
る場合である。
第4図A−Cはその処理のフローチャートであり。
これらの図において、RP及び■Pは、実プロセッサ及
び仮想プロセッサをそれぞれ意味する。
ある仮想プロセッサがプロセッサ2上で走行中に、その
仮想プロセッサ上のO8が、PSW9aのウェイトビッ
トWを1″にする(すなわち、その仮想プロセッサをウ
ェイト状態にする)命令を、命令実行回路7に渡す。こ
の命令は、前記のアーキテクチャにより、命令実行回路
7と命令実行マイクロプログラム7aによシ直接実行さ
れ、その結果、P8W9aのウェイトビットWは′1″
になる(第4図A、31)。プロセッサ状態退避機構1
3は、ウェイトピッ)wが1”になったことにより起動
され(32) 、プロセッサ状態退避マイクロプログラ
ム13aと協同して、走行中の仮想プロセッサの状態退
避を次のようにして遂行11からプロセッサ番号が取出
されて、このプロセッサ番号(例えばi)の次のプロセ
ッサ番号(例えばi+1)に対応するRP状態テーブル
のフィールド(例えば3− (i+1))がアクセスさ
れる。まず、そのプロセッサロックワード3Cが、プロ
セッサ&iによるロックを示す値にセットされる。次い
で、そのR,Pアクティブピット3aが調べられる(第
4図B、38.39)。RPアクティブビット39が′
1″、すなわち、そのプロセッサがアクティブ状態にあ
れば、ロックは解除され、次の番号(i+2 )のプロ
セッサに対応するフィールドが調べられる(47.38
)。他方、RPアクティブビット3aが10″ならば、
そのプロセッサは利用可能である。そこで、そのRPア
クティブビットが1”に変更され、ロックが解除される
(40)。この処理により、待機中の仮想プロセッサを
走行させる1台のプロセッサが選択される。今、番号t
のプロセッサが選択されたとする。
ディスパッチ命令群6は、次いで、前記のようにして選
択されたプロセッサ2上で走行させる仮想プロセッサを
選出する。この選出のだめに、vP管理テーブル5にリ
ンクされたvP状態テーブルのキューが、走行優先度の
最も高いキューの先頭から始めて、順次調べられ、VP
アクティブフラグ4aが“0”で、走行可能プロセッサ
フラグ4Cが前記の選択されたプロセッサAAを示し、
かつ、プロセッサ状態退避領域4f中のPSWのウェイ
トビットWが0”である最初のvP状態テーブルが選択
される(41.42)。pswのウェイトビットWが1
0”であることは、対応する仮想プロセッサがウェイト
状態にはないことを意味する。前記の条件を満たすVP
状態テーブルが発見されなければ、前記選択されたプロ
セッサMlに対応するR、P状態テーブルのフィールド
3−2のRPアクティブピッ)3aが0”に戻され(4
2,43)、次の利用可能なプロセッサの選択が開始さ
れる(48.38)。
今、VP状態テーブル4−1−1が、前記の条件を満た
すものとして選択されたとする。ディスパンチ命令群6
は、選択されたVP状態テーブル4−1−1のvpルア
クチイブフラグ4a1″にセットしく44) 、また、
そのプロセッサ番号4dを先に選択されたプロセッサの
番号″′t″にセットする(45)。更に、このプロセ
ッサA7に対応するR、P状態テーブルのフィールド3
−1のvP状態テーブルアドレス3bが、選択されたv
P状態テーブル4−1−1のアドレス値にセットされる
(46)。それから、ディスパッチ命令群6は、選択さ
れたプロセッサA6に対するSIGP(Signal 
processor)命令を発行する(47)。
マルチプロセッサシステムのための支援機能として周知
の5IGP命令は、プロセッサ間通信のために他のプロ
セッサへの割込要求を発生する命令であり、そのオペラ
ンドとして、プロセッサ番号と副指令コードを持つ。前
記のようにして発行された5IGP命令は、プロセッサ
番号として前記の選択されたプロセッサの番号”A +
tを持ち、副指令コードとして仮想プロセッサ起動指示
コードを持つ。この5IGP命令が実行されると、前記
の選択されたプロセッサ16.1に対して外部割込みが
発生されるとともに、そこに仮想プロセッサ起動指示コ
ードが送られる。
前述の外部割込みを受付けたプロセッサAtでは、送ら
れてきた仮想プロセッサ起動指示コードに従って、仮想
プロセッサ起動ルーチンが起動される(第4図C,56
)。仮想プロセッサ起動ルーチンは、図示されていない
が、主記憶装置1上の命令群として用意される。まず、
プロセッサ番号レジスタ読取命令が発行され、それによ
り、プロセッサ番号レジスタ11の内容(a)が読出さ
れル(57)。次に、こうして得られたプロセッサ番号
に対応するR、P状態テーブル3のフィールド3−1か
ら、VP状態テーブルアドレス3bが読出されて(58
)、VPアドレスレジスタ12にセットされる(59)
。また、この読出されたvP状態テーブルアドレスを用
いて、それが示すVP状態テーブル4−1−1がアクセ
スされて、そのタイムスライス値4gはタイマ10に転
送され(6o)、プロセッサ状態退避領域4fの内容は
プロセッサレジスタ群9中の所定の諸レジスタに転送さ
れる(61)。そこで、新だにセットされたPSWに従
って、VP状態テーブル4−1−1に対応する仮想プロ
セッサが走行を開始する(62)。仮想プロセッサ起動
ルーチン又はその一部は、プロセッサ2内のマイクロプ
ログラムとして用意されてもよい。
走行中の仮想プロセッサがウェイト状態に切換えられた
ことによって前述の処理を開始したプロセッサAiは、
ディスパッチ命令群6に従って前述の処理(第4図B、
38〜48)を反覆実行し、RP状態テーブル3の他の
プロセッサに対応するフィールドのすべてを処理する。
最後に、ディスパッチ命令群6は、もう一度VP状態テ
ーブルのキューをたどって、ウェイト状態にもアクティ
ブ状態にもなく、かつ、プロセッサ&i自身上で走行が
可能な、走行優先度が最も高いVP状態テーブルを選択
する(49.50)。選択されたVP状態テーブルのV
Pアクティブ7ラグ4aは1”にセットされ(51)、
そのプロセッサ番号4dはi″(プロセッサ番号レジス
タ11の内容)にセットされる(52)。また、この選
択されたVP状態テーブルのアドレスは、このプロセッ
サに対応するR、P状態テーブルのフィールド3− i
に■P状態テーブルアドレス3bとして書込まれる(5
3)。そして、第4図Cに示されたのと同様なりP起動
ルーチンが起動されて1選択されたvP状態テーブルに
対応する仮想プロセッサが、プロセッサ&i上で走行を
開始する。他方、所定の条件を満たす■P状態テーブル
が発見できなかったときは、RP状態テーブルの対応す
るフィールド3− iのRPアクティブビット3aがf
″0”に上床 ツトされ、プロセッサA1は遊体状態に入る。説明は省
略したが、VP状態テーブル4及びvP管理テーブル5
も、RP状態テーブル3と同様に、参照又は更新されつ
つある間ロックされる。
次に、第2の場合として、プロセッサAiにおいて、第
1の仮想プロセッサの走行中に割込みが発生し、それに
より、第2の仮想プロセッサのウェイト状態が解除され
るときの処理を説明する。
割込回路8及び割込マイクロプログラム8aは、この割
込みを、VMCPの介入なしに、直接処理することがで
きるものとする。
割込回路8及び割込マイクロプログラム8aは、前記の
割込みを第2の仮想プロセッサに反映させ、その結果、
第2の仮想プロセッサに対応するVP状態テーブル4の
プロセッサ状態退避領域4f中のPSWのウェイトビッ
トWが1”から0”に変わる。そこで、割込回路8及び
割込マイクロプログラム8aは、プロセッサ状態退避機
構13に起動信号を送る。その後は、第1の場合と同じ
処理(第4図A−C)が遂行され、全遊休プロセッサに
おいて、そこでの走行が可能な状態にあった仮想プロセ
ッサが、走行優先度とキュー内頴位に従って走行を開始
する。ウェイト状態が解除された第2の仮想プロセッサ
は、走行優先度が充分高く、かつ、先行キューがなけれ
ば、この時点で走行を開始し、さもなければ、キュー中
で次の機会を待つ。
第3の場合は、走行中の仮想プロセッサのタイムスライ
スが尽きたときの割込処理が、VMCPの介入なしに、
割込回路8及び割込マイクロプログラム8aによシ直接
実行される場合である。
割込回路8及び割込マイクロプログラム8aは、タイマ
10からの信号により、走行中の仮想プロセッサの予め
定められたタイムスライス値が+017まで減少された
ことを知ると、プロセッサ状態退避機構13を起動する
とともに、タイムスライスの消尽を告げる。その後行な
われる処理は、次の2点を除き、第1の場合と同じであ
る。
第1の相違点は、タイムスライス値の更新である。本場
合において、タイムスライスの尽きた仮想プロセッサに
対応するvP状態テーブルのタイムスライス値4gには
、タイマ1oの内容が退避される代りに、予め定められ
た特定の値がセットされる。この値は、例えば、プロセ
ッサレジスタ群9中の特定のレジスタに保持されている
第2の相違点は、キューの変更である。タイムスライス
が尽きてその値が更新されたVP状態テーブルは、同じ
走行優先度を持っVP状態テーブルのキューの末尾に置
かれる。
第4の場合は、仮想プロセッサの切換えがVMCPによ
シ行なわれる場合である。VMCPが仮想プロセッサの
切換えを行なう主な場合としては、走行中の仮想プロセ
ッサのタイムスライスが尽きた時に生じる割込みの処理
へのVMCPの介入、VMのO8が発行したPSWをウ
ェイト状態に変える命令のVMCPによるシミュレーシ
ョン、割込処理のVMCPによるシミュレーションの結
果仮想プロセッサのウェイト状態が解除されたとき、な
どがあシうる。第1図に示されたコンピュータ上でVM
CPによる仮想プロセッサ切換処理を効率良く実現する
ために、仮想プロセッサ選択・起動命令が用意される。
これは、簡単にいえば、ディスパッチ命令群6に対する
起動命令である。
前記のような原因が発生すると、VMCPは、直接に、
あるいはプロセッサ状態退避機構13及び連携マイクロ
プログラム13aを介して、第4図Aに示された退避処
理を行なう。次に、VMCPは、制御がそれに渡された
原因に応じて、タイムスライスの消尽に対処する処理、
プロセッサをウェイト状態にする命令のシミュレーショ
ン、割込みによるウェイト状態の解除のシミュレーショ
ンなどを実行する。その後、VMCPは、仮想プロセッ
サ選択・起動命令を発行する。この命令を受取ると、命
令実行回路7及び連携マイクロプログラム7aは、プロ
セッサレジスタ群9中の予め定められたレジスタからデ
ィスパッチ命令群6のアドレスを取出し、主記憶装置1
上のディスパッチ命令群6を呼出して、その実行を開始
する。以後、第4図B及びCに示されるようにして、仮
想プロセッサの切換えが行なわれる。
第5の場合は、記憶領域のロックに関連する。
マルチプロセッサ構成のVMにおいて、ある仮想プロセ
ッサがある記憶領域をロックした後は、その仮想プロセ
ッサがそのロックを解くまで、同じVMに属する他の仮
想プロセッサは、そのロックされた領域にアクセスする
ことができず、しだがって、処理を進めることができな
い。このような場合には、同じVMに属する他の仮想プ
ロセッサを優先的に走行させて、ロックが解除される機
会を増すことが望まれる。
第1図におけるロック検出回路14は、このような目的
のために設けられ、その詳細は第5図に示されている。
第5図において、演算コードレジスタ71は、各時点に
おいて実行中の命令の演算コードを保持するレジスタで
あシ、条件コードレジスタ72は、その命令の実行状態
を示すためにPSWにセットされるべき条件コードを保
持するレジスタであり、これらは命令実行回路7のコン
ポーネントである。発行された命令の演算コードは演算
コードレジスタ71にセットされ、その命令の条件コー
ドが確定すると、それは条件コードレジスタ72にセッ
トされる。
ロック検出回路14は、演算コード指定レジスタ141
1条件コード指定レジスタ142、演算コードレジスタ
71と演算コード指定レジスタ141の内容の一致を検
出するだめの比較器143、条件コードレジスタ72と
条件コード指定レジスタ142の内容の一致を検出する
だめの比較器144、及び両比較器143,144の出
力を受けるAND回路145を有し、AND回路145
の出力102は、プロセッサ状態退避機構13に送られ
る。演算コード指定レジスタ141は、後述するロック
判定命令の演算コードを予め保持するだめのレジスタで
あり、条件コード指定レジスタ142は、このロック判
定命令により調査された記憶領域が他のプロセッサによ
ブロックされていたときに形成されるべき条件コードを
、予め保持するだめのレジスタである。両指定レジスタ
141.142へのこれらの値の格納は、予め、そのた
めのVMCP専用命令によシ行なわれる。
演算コード指定レジスタ141及び/又は条件コード指
定レジスタ142並びに連携する比較器143.144
及びAND回路145は、複数個設けられてもよい。
マルチプロセッサ構成のVMの場合、第6図に示すよう
に、VP状態テーブルにおける開−VMVP状態テーブ
ルポインタ41により、同じVMに属する全仮想プロセ
ッサに対応するVP状態テーブルが環状にリンクされる
。このリンクは、ウェイト状態にある仮想プロセッサも
含み、また、すべての走行優先度の仮想プロセッサを含
む。第6図においては、vP状態テーブル4−1−0と
4−n−0が、前記のようKしてリンクされている。
今、あるVP状態テーブルに対応する仮想プロセッサが
プロセッサ2上で走行しつつあり、そして、その仮想プ
ロセッサのアドレス空間のある領域が、同じVMの他の
仮想プロセッサによりロックされていたとする。走行中
の仮想プロセッサ上のO8が、前記の領域が他のプロセ
ッサによシロツクされているか否かを判定するために、
ロック判定命令を発行すると、その演算コードは演算コ
ードレジスタ71にセットされる。やがて、対象領域が
ロックされていたことを示す条件コードが。
条件コードレジスタ72に形成される。そこで、比較器
141及び142はそれぞれ一致信号を発生し、これら
の信号に応答して、AND回路145は、線102に信
号を送出し、プロセッサ状態退避機構13を起動する。
プロセッサ状態退避機構13は、第4図A33以下の処
理を行なって、ディスパッチ命令群6に制御を渡す。
ディスパッチ命令群6は、第4図Bに示されたのと同様
な処理を行なう。ただし、この場合には、処理41にお
ける■P状態テーブルの探索は、VP状態テーブルの開
−VMVP状態テーブルポインタ41をたどって行なわ
れる。しだがって。
走行が中断された仮想プロセッサが属するVMの他の待
機中の仮想プロセッサが選択されて、走行を開始し、そ
の結果、ロックの解除が促進される。
第3図に戻り、チェンジビット4bは、走行優先度4e
の動的変更の可否を示す。チェンジピットが1”ならば
、走行優先度4eはコンソールからのコマンドによって
のみ変更が許され、それが0″ならば、VMCPによる
動的変更も許される。走行優先度によりタイムスライス
値が異なる場合には、走行優先度とタイムスライス値の
対応表を主記憶装置1内に用意して、走行優先度4eの
変更に応じてタイムスライス値4gを変更すればよい。
諸仮想プロセッサの稼動率等に応じて走行優先度やタイ
ムスライス値を動的に変更する機能をVMCPに設ける
ことは、従来技術により容易に実現することができ、V
Mシステムの効率の向上に有益である。
走行可能プロセッサフラグ4Cは、コンソールからのコ
マンドによりVMCPを介して変更される。例えば、2
台のプロセッサ(&1及び&2)を有するコンピュータ
上で3台のVM (VMl。
VM2、及びVM3)が走行する場合に、VMIの負荷
が他よりも大きい間は、VM2とVM3の仮想プロセッ
サはプロセッサA2上でのみ走行が許され、VMIの負
荷が小さくなった時に、両プロセッサが全VMの仮想プ
ロセッサに平等に割当てられるように、走行可能プロセ
ッサフラグ4Cの設定と変更を行なうことができる。
ディスパッチ命令群6を主記憶装置1に用意する代シK
、それと同じ機能又はその一部を遂行するマイクロプロ
グラムが、各プロセッサ2に設けられてもよい。
〔発明の効果〕
本発明によれば、実プロセッサの仮想プロセッサへの割
当てに対する制約が除かれること忙より、仮想プロセッ
サの負荷の大きさとその変化に応じた適切な実プロセッ
サの割当てが可能であり、また、常にすべての遊休状態
にある実プロセッサが調べられることにより、実プロセ
ッサの稼動率が向上し、更に、記憶ロックに遭遇した仮
想プロセッサと同じVMの他の仮想プロセッサのディス
パッチが促進されることによシ、マルチプロセッサ構成
のVMの走行の記憶ロックによる遅滞が軽減される。
【図面の簡単な説明】
第1図は本発明の一実施例のブロックダイヤグラム、第
2図は第1図におけるBP状態テーブルの内容を示す図
、第3図は第1図におけるVP状態テーブルの内容を示
す図、第4図A−Cは第1図のシステムで行なわれるデ
ィスパッチ処理の70−チャート、第5図は第1図にお
けるロック検出回路の一例のブロックダイヤグラム、第
6図は同−VMの仮想プロセッサに対応するVP状態テ
ーブルのリンクの一例を示す図である。 2・・・実プロセッサ、3・・・実プロセッサ状態テー
ブル、4−1−0〜4− n −0・・・仮想プロセッ
サ状態テーブル、6・・・ディスパッチ命令群、7・・
・命令実行回路、9・・・プロセッサレジスタ群、13
・・・プロセッサ状態退避機構、14・・・記憶ロック
検出回路、3a・・・実プロセッサの動作状態を示すビ
ット、4a・・・仮想プロセッサの走行状態を示すフラ
グ、4C・・・仮想プロセッサの走行が許されうる実プ
ロセッサを示すフラグ、4h・・・同一走行優先度を持
つVP状態テーブルのキューのためのポインタ、41・
・・同−VMの■P状態テーブルをリンクするボイ/り

Claims (1)

  1. 【特許請求の範囲】 1、複数の実プロセッサを有するコンピュータ上でそれ
    ぞれが少なくとも1台の仮想プロセッサを有する複数の
    仮想計算機の同時走行が許される仮想計算機システムに
    おいて、各前記実プロセッサが空いているか否かを示す
    情報を保持する実プロセッサ状態テーブルと、各前記仮
    想プロセッサごとに設けられてその状態を示す情報を保
    持する仮想プロセッサ状態テーブルと、予め定められた
    事象が発生した時に前記2種のテーブルを参照しながら
    走行可能状態にあつて空いている実プロセッサ上で走行
    が許されうる仮想プロセッサの索出と起動を試みるディ
    スパッチ手段とを備え、前記仮想プロセッサ状態テーブ
    ルに保持される情報は、対応する仮想プロセッサが走行
    可能状態にあるか否かを示す情報と、対応する仮想プロ
    セッサが走行を許されうる任意の1又は複数の前記実プ
    ロセッサを示す情報とを含む、ディスパッチ制御装置。 2、特許請求の範囲1において、前記ディスパッチ手段
    は、起動されるたびにすべての空いている前記実プロセ
    ッサについて走行可能な仮想プロセッサの索出と起動を
    逐次試みる、ディスパッチ制御装置。 3、複数の実プロセッサを有するコンピュータ上でそれ
    ぞれが少なくとも1台の仮想プロセッサを有する複数の
    仮想計算機の同時走行が許され、少なくとも1台の前記
    仮想計算機は複数の仮想プロセッサを有する仮想計算機
    システムにおいて、各前記実プロセッサが空いているか
    否かを示す情報を保持する実プロセッサ状態テーブルと
    、各前記仮想プロセッサごとに設けられてその状態を示
    す情報を保持する仮想プロセッサ状態テーブルと、同じ
    仮想計算機に属する仮想プロセッサに対応する仮想プロ
    セッサ状態テーブルをリンクする手段と、記憶領域のロ
    ックがロック判定命令により発見されたことを検出する
    手段と、仮想プロセッサの起動を制御するディスパッチ
    手段とを備え、前記仮想プロセッサ状態テーブルに保持
    される情報は、対応する仮想プロセッサが走行可能な状
    態にあるか否かを示す情報と、対応する仮想プロセッサ
    が走行を許されうる任意の1又は複数の前記実プロセッ
    サを示す情報とを含み、前記ディスパッチ手段は、走行
    中のある仮想プロセッサについて前記検出手段がロック
    を検出した時に前記2種のテーブルを参照しながら走行
    可能状態にあつて空いている実プロセッサ上で走行が許
    されうる同一仮想計算機の他の仮想プロセッサの索出と
    起動を試み、他の予め定められた事象が発生した時に前
    記2種のテーブルを参照しながら走行可能状態にあつて
    空いている実プロセッサ上で走行が許されうる任意の仮
    想プロセッサの索出と起動を試みる、ディスパッチ制御
    装置。 4、特許請求の範囲3において、前記ディスパッチ手段
    は、起動されるたびにすべての空いている前記実プロセ
    ッサについて走行可能な仮想プロセッサの索出と起動を
    試みる、ディスパッチ制御装置。
JP6394286A 1986-03-24 1986-03-24 仮想計算機システムにおけるデイスパツチ制御装置 Pending JPS62221041A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6394286A JPS62221041A (ja) 1986-03-24 1986-03-24 仮想計算機システムにおけるデイスパツチ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6394286A JPS62221041A (ja) 1986-03-24 1986-03-24 仮想計算機システムにおけるデイスパツチ制御装置

Publications (1)

Publication Number Publication Date
JPS62221041A true JPS62221041A (ja) 1987-09-29

Family

ID=13243908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6394286A Pending JPS62221041A (ja) 1986-03-24 1986-03-24 仮想計算機システムにおけるデイスパツチ制御装置

Country Status (1)

Country Link
JP (1) JPS62221041A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252565A (ja) * 2005-03-11 2006-09-21 Microsoft Corp 仮想マシン環境におけるマルチレベルインターセプト処理のためのシステムおよび方法
JP2008186136A (ja) * 2007-01-29 2008-08-14 Hitachi Ltd 計算機システム
US8327353B2 (en) 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252565A (ja) * 2005-03-11 2006-09-21 Microsoft Corp 仮想マシン環境におけるマルチレベルインターセプト処理のためのシステムおよび方法
US8327353B2 (en) 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
JP2008186136A (ja) * 2007-01-29 2008-08-14 Hitachi Ltd 計算機システム
JP4705051B2 (ja) * 2007-01-29 2011-06-22 株式会社日立製作所 計算機システム

Similar Documents

Publication Publication Date Title
US5095427A (en) Dispatch control of virtual machine
US7290261B2 (en) Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
US5553291A (en) Virtual machine control method and virtual machine system
JP3546678B2 (ja) マルチos構成方法
JP2629278B2 (ja) 仮想計算機システム
US6834385B2 (en) System and method for utilizing dispatch queues in a multiprocessor data processing system
EP0106669B1 (en) Operating system supervisor
US8539499B1 (en) Symmetric multiprocessing with virtual CPU and VSMP technology
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
JPS646488B2 (ja)
JPH0430053B2 (ja)
EP0257655B1 (en) Multitask processing apparatus
JPH06243112A (ja) マルチプロセッサ装置
CN108845969B (zh) 适用于不完全对称多处理微控制器的操作控制方法及操作系统
JPH05173961A (ja) データ・ブロック転送制御方法
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
JP2001216172A (ja) マルチos構成方法
EP0223463B1 (en) Multiprocessor data processing system
JP2986930B2 (ja) 対称型マルチプロセッサのタスクスケジューリング方式
JPS61184643A (ja) 仮想計算機の起動制御方式
Hatch Jr et al. Hardware/software interaction on the Honeywell model 8200
JP3022398B2 (ja) 仮想計算機方式
JPS6314241A (ja) メモリ拡張方式
JPS6336012B2 (ja)
JPH0363768B2 (ja)