JPH0695898A - 仮想計算機の制御方法および仮想計算機システム - Google Patents

仮想計算機の制御方法および仮想計算機システム

Info

Publication number
JPH0695898A
JPH0695898A JP4246730A JP24673092A JPH0695898A JP H0695898 A JPH0695898 A JP H0695898A JP 4246730 A JP4246730 A JP 4246730A JP 24673092 A JP24673092 A JP 24673092A JP H0695898 A JPH0695898 A JP H0695898A
Authority
JP
Japan
Prior art keywords
processor
virtual machine
virtual
running
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4246730A
Other languages
English (en)
Inventor
Toshiharu Tanaka
俊治 田中
Hidenori Umeno
英典 梅野
Nobuyoshi Sugama
延芳 須釜
Masaru Sato
勝 佐藤
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 JP4246730A priority Critical patent/JPH0695898A/ja
Priority to US08/120,472 priority patent/US5553291A/en
Publication of JPH0695898A publication Critical patent/JPH0695898A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 スーパーコンピュータにおいて、複数の仮想
計算機(VM)がベクトルプロセッサを利用可能な仮想
計算機システム(VMS)を提供する。 【構成】 仮想計算機モニタ(VMM)410におい
て、起動しようとする仮想計算機(VM−1)以外の仮
想計算機がベクトルプロセッサ200を使用中か否かを
判定し、使用中の場合にはVM−1の起動を保留し、使
用中でない場合にはベクトルプロセッサ200とスカラ
プロセッサ100の両方をVM−1に与える。また、ア
ドレス変換回路220は、仮想計算機の絶対アドレスを
主記憶装置400における絶対アドレスに変換する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想計算機の制御方法
に関し、特に、複数の仮想計算機がスーパーコンピュー
タのベクトルプロセッサを使用するのに好適な仮想計算
機の制御方法に関する。
【0002】
【従来の技術】仮想計算機システム(VMS:Virtual
Machine System)は、特開昭57−212680号公報
に記載のように、1台の実計算機上に論理的な計算機で
ある仮想計算機(VM:Virtual Machine)を複数台生
成し、これらの各仮想計算機において、対応する1つの
オペレーティング・システム(OS:Operating Syste
m)の走行を可能とする。この仮想計算機システムにお
いて、仮想計算機のスケジューリング処理や、仮想計算
機上のOSが発行した命令のうち、実計算機(以下、単
に計算機という)では直接実行できない命令のシミュレ
ーション処理等を行なうのが仮想計算機モニタ(VM
M:Virtual Machine Monitor)である。仮想計算機シ
ステムは、使用目的の異なる複数のOSを1台の計算機
上で運用したり、旧OSから新OSへのOS移行時に新
旧2つのOSを1台の計算機上で運用したり、OSのテ
ストを並列に1台の計算機上で実行するツールとして主
に利用されている。
【0003】一方、科学技術計算等を高速に行なう計算
機として、スカラプロセッサとベクトルプロセッサから
なるスーパーコンピュータがある。スカラプロセッサは
ベクトルプロセッサを起動し、その後、別の処理を行
う。ベクトルプロセッサは、起動の際スカラプロセッサ
からベクトルジョブを受けて、ベクトルジョブを実行す
る。ベクトルプロセッサは、このベクトルジョブの終了
をスカラプロセッサに割込みにより通知する。特開昭6
4−54542号公報は、1台の仮想計算機(VM)が
ベクトルプロセッサ(前記公報では、ベクトルユニット
と呼んでいる)を専有し、複数の仮想計算機がスカラプ
ロセッサ(前記公報では、スカラユニットと呼んでい
る)を共用可能とする仮想計算機方式を開示している。
【0004】
【発明が解決しようとする課題】スーパーコンピュータ
上で仮想計算機システムを運用し、複数の仮想計算機が
ベクトルプロセッサを使用可能とするためには、以下の
課題がある。
【0005】(1)第1の課題は、複数の仮想計算機が
ベクトルプロセッサを共用する場合の、仮想計算機のス
ケジューリング処理に関する。従来は、ベクトルプロセ
ッサを1台の仮想計算機に専有させたのでこのスケジュ
ーリング処理には特に問題はなかった。しかしながら、
複数の仮想計算機でベクトルプロセッサを共用しようと
する場合、次のような問題が生じる。すなわち、仮想計
算機は一旦生成されると長時間運用されるので、1台の
仮想計算機がベクトルプロセッサを使用している際、そ
の仮想計算機が終了するまで、次にベクトルプロセッサ
を使用しようとする仮想計算機は長時間待たなければな
らない。
【0006】(2)第2の課題は、ベクトルプロセッサ
による命令実行の終了をスカラプロセッサに通知する割
込みの処理に関する。この処理としては、仮想計算機モ
ニタ(VMM)が介在してこの割込みのシミュレーショ
ン処理を行なうことが考えられるが、オーバヘッドとな
り、全体の性能を低下させてしまう。
【0007】(3)第3の課題は、ベクトルプロセッサ
におけるアドレス変換方法に関する。前記特開昭64−
54542号公報に開示された仮想計算機方式では、ベ
クトルプロセッサを使用する仮想計算機に、主記憶装置
の特定のアドレスから最高位アドレスまでの領域を専有
させている。従って、ベクトルプロセッサを利用可能な
仮想計算機は、1台に限られる。また、1台のスーパー
コンピュータに複数のベクトルプロセッサがある場合
に、前記公報に開示された方法では、複数のOSの各々
にベクトルプロセッサを専有させることもできない。
【0008】本発明の目的は、ベクトルプロセッサとス
カラプロセッサとを有するスーパーコンピュータ上で仮
想計算機システムを効率よく制御することにある。
【0009】本発明の他の目的は、複数の仮想計算機が
ベクトルプロセッサを共用するための、仮想計算機のス
ケジューリング方法を提供することにある。
【0010】本発明のさらに他の目的は、仮想計算機モ
ニタが介在することなく、ベクトルプロセッサの命令実
行終了割込みを直接、ベクトルプロセッサを起動した仮
想計算機上のOSに対して実行する割込み実行方法を提
供することにある。
【0011】本発明の別の目的は、主記憶装置の任意の
連続領域を有する仮想計算機がベクトルプロセッサを利
用できるようにするための、ベクトルプロセッサにおけ
るアドレス変換方法を提供することにある。
【0012】
【課題を解決するための手段】上記目的を達成するため
の本発明の方法およびシステムの代表的な構成は、以下
の通りである。
【0013】本発明の仮想計算機の制御方法は、第1の
プロセッサと、該第1のプロセッサからの指示により命
令実行を開始し、命令実行終了を割込みにより前記第1
のプロセッサに通知する第2のプロセッサとを有する計
算機上で、仮想計算機モニタによる管理のもと複数のオ
ペレーティング・システム(OS)が走行する仮想計算
機システムにおいて、前記仮想計算機モニタが第1のO
Sの走行を開始するとき、前記第1のOS以外の第2の
OSが前記第2のプロセッサを使用中か否かを判定する
ステップと、前記判定が肯定的であるとき、前記第1の
OSの走行を保留するステップと、前記判定が否定的で
あるとき、前記第1のプロセッサと前記第2のプロセッ
サを前記第1のOSに与えて走行を開始するステップと
を備えたことを特徴とする。
【0014】本発明による仮想計算機システムは、第1
のプロセッサと、該第1のプロセッサからの指示により
命令実行を開始し、命令実行終了を割込みにより前記第
1のプロセッサに通知する第2のプロセッサとを有する
計算機上で、仮想計算機モニタによる管理のもと複数の
オペレーティング・システム(OS)が走行する仮想計
算機システムにおいて、前記複数のOSに前記第1およ
び第2のプロセッサをどのように割り当てるかを決定す
るスケジューリング手段と、前記第2のプロセッサ内に
設けた、前記複数のOSの主記憶領域と前記計算機の主
記憶装置とのメモリアドレスの対応関係を定めるマッピ
ング情報を格納する手段と、前記スケジューリング手段
のスケジューリングによって前記第1のプロセッサにお
いて走行中のOSの識別子を前記第2のプロセッサに転
送する手段と、前記第2のプロセッサによる1つのOS
の主記憶領域のアクセス要求時に、前記マッピング情報
のなかから当該OSの主記憶領域のマッピング情報を前
記第1のプロセッサから送られてきたOS識別子によっ
て選択する手段と、該選択したマッピング情報により前
記アクセス要求のあるOSの主記憶領域のアドレスを対
応する主記憶装置上のアドレスに変換する手段とを備え
たことを特徴とする。
【0015】
【作用】以下、第1のプロセッサをスカラプロセッサ、
第2のプロセッサをベクトルプロセッサとして、本発明
の代表的な作用を説明する。
【0016】(1)スカラプロセッサとベクトルプロセ
ッサを有する1台のスーパーコンピュータ上で、複数の
オペレーティング・システム(OS)が走行する仮想計
算機システムにおいて、仮想計算機モニタは、次のよう
に仮想計算機をスケジュールする。仮想計算機モニタ
は、まず、次に走行させようとする第1のOS以外の第
2のOSがベクトルプロセッサを使用中か否かを判定す
る。そして、第2のOSが使用中ならば、第1のOSの
走行を保留する。この第1のOSは、第2のOSによる
ベクトルプロセッサの使用終了を契機として、再び、仮
想計算機モニタがスケジューリングを行なう。また、ベ
クトルプロセッサをどのOSも使用中でないか、あるい
は、第1のOS自身が使用中の場合には、スカラプロセ
ッサとベクトルプロセッサの両方を第1のOSに与え
て、第1のOSの走行を開始する。
【0017】このように、第1のOSが走行を開始した
時点では、ベクトルプロセッサは未使用中か、あるい
は、第1のOS自身が使用中である。また、ベクトルプ
ロセッサの起動は、スカラプロセッサが発行する命令に
よってのみ行なわれる。従って、第1のOSがスカラプ
ロセッサにおいて走行中に他のOSがベクトルプロセッ
サを起動することはない。
【0018】この方法とは別に、ベクトルプロセッサの
使用中か否かに関わらず第1のOSにスカラプロセッサ
を与え、ベクトルプロセッサの使用要求時にベクトルプ
ロセッサの使用中か否かの判断を行う方法も提供する。
【0019】以上のようにして、複数の仮想計算機上の
OSがベクトルプロセッサを共用するための、仮想計算
機のスケジューリング方法を提供できる。
【0020】(2)スカラプロセッサとベクトルプロセ
ッサを有する1台のスーパーコンピュータ上で、複数の
OSが走行する仮想計算機システムにおいて、ベクトル
プロセッサが命令の実行を終了したとき、ベクトルプロ
セッサを使用したOSに対する割込みを保留する。その
後、当該OSがスカラプロセッサで走行中に、割込み可
能となった時点で、割込みを実行する。このように、割
込みをOS毎に保留することにより、仮想計算機モニタ
が介在することなく、ベクトルプロセッサの命令実行終
了割込みを実行できる。これにより仮想計算機モニタ介
在に伴うオーバヘッドを低減することができる。
【0021】(3)スカラプロセッサとベクトルプロセ
ッサを有する1台のスーパーコンピュータ上で、複数の
OSが走行する仮想計算機システムにおいて、仮想計算
機モニタは、予め、各仮想計算機に、実計算機の主記憶
装置上の連続領域を与えておく。仮想計算機モニタは、
まず、複数のOSの主記憶領域と実計算機の主記憶装置
と間のメモリアドレスマッピング情報をベクトルプロセ
ッサに登録する。また、スカラプロセッサにおいて仮想
計算機上のOSがベクトルプロセッサの使用を要求した
ときに、このOSの識別子をスカラプロセッサからベク
トルプロセッサに送る。ベクトルプロセッサによるOS
の主記憶領域のアクセス要求時には、前記OSの識別子
から当該OSのメモリアドレスマッピング情報を選択す
る。次に、ベクトルプロセッサは、選択したメモリアド
レスマッピング情報により、アクセス要求のあるOSの
主記憶領域のアドレスを実計算機の主記憶装置における
アドレスに変換する。そして、この変換結果のアドレス
を用いて、当該OSの主記憶領域に対応する実計算機の
主記憶装置上の領域にアクセスする。
【0022】以上のようにして、実計算機の主記憶装置
の任意の連続領域を割り当てられた仮想計算機がベクト
ルプロセッサを利用することが可能となる。
【0023】
【実施例】以下、本発明の実施例を、図を用いて詳細に
説明する。
【0024】I.スーパーコンピュータの構成 図1は、本発明を適用したスーパーコンピュータ上の仮
想計算機システム(VMS)の構成図である。図1にお
いて、100はスカラ処理を行なうスカラプロセッサ
(SP:Scaler Processor)、200はベクトル処理を
行なうベクトルプロセッサ(VP:Vector Processo
r)、300はスカラプロセッサ100あるいはベクト
ルプロセッサ200の指示に従って主記憶装置(MS:
Main Storage)400を参照あるいは更新する記憶制御
装置(SC:Storage Controller)である。
【0025】スカラプロセッサ100は、スカラ命令実
行回路110と割込み実行回路120を有する。また、
ベクトルプロセッサ200は、ベクトル命令実行回路2
10とアドレス変換回路220を有する。スカラプロセ
ッサ100内のスカラ命令実行回路110がEXVP
(Execute Vector Processor)命令を実行すると、ベク
トル命令実行回路210は主記憶装置400上のベクト
ル命令列の実行を開始する。さらに、ベクトル命令実行
回路210はベクトル命令列の実行終了をスカラプロセ
ッサ100内の割込み実行回路120に通知する。スカ
ラプロセッサ100には、上記EXVP命令以外にベク
トルプロセッサ200を制御するために、ベクトルプロ
セッサ200がビジーか否かを判定するTVP(Test V
ector Processor)命令が設けられている。
【0026】一方、主記憶装置400上には、仮想計算
機(VM)のスケジューリング等を行なう仮想計算機モ
ニタ(VMM)410が配置される。また、主記憶装置
400の0番地からα番地未満の領域には仮想計算機
(VM−1)の主記憶領域420が常駐し、α番地から
β番地未満の領域には仮想計算機(VM−2)の主記憶
領域430が常駐している。仮想計算機の主記憶領域4
20、430と区別するために、主記憶装置400を実
計算機の主記憶装置と呼ぶ。アドレス変換回路220
は、仮想計算機上のOSが生成した仮想空間440およ
び450(図ではそれぞれ多重仮想空間として示してい
る)上のベクトル命令列が指定する論理アドレス(ゲス
ト論理アドレス:GLA)を仮想計算機の主記憶領域に
おける絶対アドレス(ゲスト絶対アドレス:GAA)に
変換し、さらに、このゲスト絶対アドレスを主記憶装置
400における絶対アドレス(ホスト絶対アドレス:H
AA)に変換する。また、仮想計算機モニタ410は、
複数の仮想計算機がベクトルプロセッサ200を使用可
能とするように、仮想計算機をスケジュールする。さら
に、割込み実行回路120は、ベクトルプロセッサ20
0の命令実行終了割込みを、仮想計算機モニタ410が
介在することなく、ベクトルプロセッサ200を起動し
たOSに対して直接実行できるようにしている。
【0027】各仮想計算機には、ベクトルプロセッサ2
00を使用するか否かの属性が、仮想計算機生成時に与
えられている。即ち、ベクトルプロセッサ200を使用
するという属性を有する仮想計算機は、ベクトルプロセ
ッサを仮想計算機の構成に有し、この仮想計算機下で
は、スーパーコンピュータ用のOSが動作する。また、
ベクトルプロセッサ200を使用しないという属性を有
する仮想計算機は、ベクトルプロセッサを仮想計算機の
構成に持たず、この仮想計算機下では、汎用計算機用の
OSが動作する。
【0028】以下、ベクトルプロセッサ200における
アドレス変換処理の1つの例と、仮想計算機のスケジュ
ーリング方法に関する3つの例と、ベクトルプロセッサ
200による命令実行終了割込みの処理方法の1つの例
を、それぞれ図を用いて詳細に説明する。
【0029】II.ベクトルプロセッサにおけるアドレス
変換処理 図2に、図1に示したアドレス変換回路220の詳細な
構成を示す。図2において、本発明にて設けたアドレス
対応表221は、仮想計算機の主記憶領域の、主記憶装
置400における起点アドレスと終了アドレスとを保持
する。例えば、アドレス対応表221の第1エントリ
は、主記憶装置400の0番地からα番地までの領域が
VM−1の主記憶領域420であることを、また、第2
エントリは、主記憶装置400のα番地からβ番地まで
の領域がVM−2の主記憶領域430であることを示し
ている。このアドレス対応表221の設定は、仮想計算
機モニタ410が、仮想計算機を生成したときにスカラ
命令を用いて行なえばよい。また、VP内アドレス変換
回路222は、仮想計算機の仮想空間上にあるベクトル
命令列が指定する論理アドレス(ゲスト論理アドレス)
226を仮想計算機の主記憶領域における絶対アドレス
(ゲスト絶対アドレス)229に変換する。さらに、ア
ドレス変換回路220は、加算器(ADD)223と比
較器(COMP)224とを有する。
【0030】ベクトル命令実行回路210は、ベクトル
命令列の実行を指示した仮想計算機の識別子を示すVM
ID信号225をアドレス変換回路220へ入力する。
このVMIDは、ベクトルプロセッサ200を起動する
前記EXVP命令をスカラ命令実行回路110が実行し
たとき、スカラプロセッサ100において走行中であっ
た仮想計算機のVMIDである。このVMIDをもと
に、アドレス変換回路220は、アドレス対応表221
からベクトル命令列の実行を指示した仮想計算機の主記
憶領域の主記憶装置400における起点アドレス231
および終点アドレス232を選択する。一方、ベクトル
命令実行回路210から入力されるゲスト論理アドレス
226は、まず、VP内アドレス変換回路222がゲス
ト絶対アドレス229に変換する。次に、このゲスト絶
対アドレス229は、加算器223によって起点アドレ
ス231と加算されホスト絶対アドレス227として出
力される。この出力結果を用いて、ベクトル命令実行回
路210は、ベクトル命令を実行する。
【0031】ただし、比較器224による判定の結果、
ゲスト絶対アドレス229の方が終点アドレス232よ
りも大きい場合(即ち、ゲスト絶対アドレス229が仮
想計算機の主記憶領域外を示す場合)には、割込み信号
228をベクトル命令実行回路210へ出力する。これ
は、他の仮想計算機の主記憶領域の内容を破壊しないよ
うにするためのチェック機構を構成する。ベクトル命令
実行回路210に割込み信号228が送られると、ベク
トル命令実行回路210は、ベクトル命令列の実行を中
止し、スカラプロセッサ100内の割込み実行回路12
0に割込み信号を送る。
【0032】以上のようにして、ベクトルプロセッサ2
00におけるアドレス変換により、主記憶装置400の
任意の連続領域を有する仮想計算機がベクトルプロセッ
サ200を利用可能とすることができる。
【0033】III.仮想計算機のスケジューリング方法 (1)第1のスケジューリング方法 まず、図3を用いて、仮想計算機のスケジューリング状
態の遷移を説明する。第1のスケジューリング方法にお
ける、仮想計算機モニタ410による仮想計算機のスケ
ジューリング状態としては、スカラプロセッサウェイト
状態(SPウェイト状態)、レディ状態、実行状態、お
よび、ベクトルプロセッサ待ち状態(VP待ち状態)の
4つの状態がある。このうち実行状態の仮想計算機のみ
が、ベクトルプロセッサ200の命令実行をスカラプロ
セッサ100のEXVP命令によって開始できる。
【0034】仮想計算機モニタ410が仮想計算機に対
して割込み等のシミュレーションを行なった結果、SP
ウェイト状態が解除されると、仮想計算機はレディ状態
となる。レディ状態の仮想計算機は、仮想計算機モニタ
410が順次ディスパッチすることにより、実行状態と
なる。ディスパッチとは、特定の仮想計算機のOSにス
カラプロセッサを与えることをいう。実行状態におい
て、仮想計算機上のOSがウェイト状態設定命令を発行
すると、仮想計算機はSPウェイト状態となる。一方、
実行状態において、タイムスライス(予め定められた微
小時間)を経過したときには、レディ状態に戻る。これ
は時分割で順次複数の仮想計算機を動作させるためのも
のである。さらに、ベクトルプロセッサ200が使用中
であることを仮想計算機モニタ410が検知すると、レ
ディ状態であって、ベクトルプロセッサ200を使用す
る属性を有し、現在ベクトルプロセッサ200を使用し
ていない仮想計算機VMを、ベクトルプロセッサ200
の使用の競合を防ぐためにVP待ち状態に移す。これら
VP待ち状態の仮想計算機VMは、ベクトルプロセッサ
200が未使用状態になった時点で、レディ状態に戻
る。ただし、レディ状態であって、ベクトルプロセッサ
200を使用しない属性の仮想計算機は、VP待ち状態
に移さない。これは、この仮想計算機をディスパッチし
て実行状態としても、ベクトルプロセッサ200を使用
中の仮想計算機に影響を与えることはなく、また、ベク
トルプロセッサ200を使用する可能性がない仮想計算
機は、ベクトルプロセッサ200を使用中の仮想計算機
から影響を受けることもないからである。
【0035】次に、図4のフローチャートを用いて、仮
想計算機モニタ410による仮想計算機第1のスケジュ
ーリング方法の手順を説明する。
【0036】仮想計算機モニタ410は、まず、レディ
状態の仮想計算機があるか否かを判定し(ステップ40
00)、ないならばスカラプロセッサ100をウェイト
状態にする(ステップ4070)。レディ状態の仮想計
算機があるならば、ディスパッチングキュー(待ち行
列)に従ってレディ状態の仮想計算機を1つ選択し(ス
テップ4010)、選択した仮想計算機がベクトルプロ
セッサ200を使用する属性を有するか否かを判定する
(ステップ4020)。使用しない属性を有する場合に
は、選択した仮想計算機の走行をスカラプロセッサ10
0において開始する(ステップ4040)。仮想計算機
の走行継続中(ステップ4042)、タイムスライスエ
ンドになれば(ステップ4046)、当該仮想計算機を
レディ状態に戻す(ステップ4048)。
【0037】ステップ4020において、選択した仮想
計算機がベクトルプロセッサ200を使用する属性を有
する場合には、仮想計算機モニタ410がTVP(Test
Vector Processor)命令を実行して、他の仮想計算機
がベクトルプロセッサ200を使用中か否かを判定し
(ステップ4030)、使用中でなければ、スカラプロ
セッサ100において、選択した仮想計算機の走行を開
始する(ステップ4040)。
【0038】本スケジューリング方法では、スカラプロ
セッサ100とベクトルプロセッサ200を同一の仮想
計算機に与えるようディスパッチする。このため、TV
P命令を実行してベクトルプロセッサ200がビジーで
あれば、ベクトルプロセッサ200を使用するという属
性が与えられた仮想計算機のうち、一番最近に仮想計算
機モニタ410がディスパッチした仮想計算機が、ベク
トルプロセッサ200を使用中であることが分かる。
【0039】仮想計算機のスカラプロセッサ100にお
ける走行は、後述するSIE(SIE:Start Interpre
tive Eexecution)命令によって行なわれる。この仮想
計算機上のOSは、ベクトルプロセッサ200を使用可
能であり、スカラ命令実行回路110は、OSが発行し
たEXVP命令を、仮想計算機モニタ410に割り込む
(仮想計算機モニタ410にシミュレーションさせる)
ことなく、直接実行する。
【0040】一方、ステップ4030の判定において、
他の仮想計算機がベクトルプロセッサ200を使用中の
場合、仮想計算機モニタ410は選択した仮想計算機を
VP待ち状態としてスカラプロセッサ100における走
行を保留する(ステップ4050)。以上の判定をレデ
ィ状態の仮想計算機の全てについて判定したか調べ(ス
テップ4060)、残っていればステップ4010に戻
り、再度、走行させる仮想計算機の選択を行なう。ま
た、全てのレディ状態の仮想計算機について判定済みの
場合、仮想計算機モニタ410は、スカラプロセッサ1
00をウェイト状態にする(ステップ4070)。その
後、入出力装置等からの仮想計算機モニタ410への割
込みの発生(ステップ4080)を契機として、特定の
仮想計算機のSPウェイト状態が解除された場合、その
仮想計算機をSPウェイト状態からレディ状態とし(ス
テップ4090)、再度ステップ4010に進み、走行
させる仮想計算機の選択を行なう。また、仮想計算機モ
ニタ410は、上記割込みによりベクトルプロセッサ2
00が未使用状態になったかをTVP命令を用いて判定
し(ステップ4100)、未使用状態ならばVP待ち状
態の仮想計算機をレディ状態とし、再度、ステップ40
10に進み、走行させる仮想計算機の選択を行なう。
【0041】このように、第1のスケジューリング方法
では、選択した仮想計算機がスカラプロセッサ100に
おいて走行を開始した時点では、ベクトルプロセッサ2
00はいずれの仮想計算機によっても使用中でないか、
あるいは、選択した仮想計算機自身が使用中である。ま
た、ベクトルプロセッサ200の起動は、スカラプロセ
ッサ100が実行するEXVP命令によってのみ行なわ
れる。従って、ある仮想計算機がスカラプロセッサ10
0で走行中に他の仮想計算機がベクトル命令を実行する
ことはない。従って、スカラプロセッサ100で走行中
の仮想計算機は、必ずベクトルプロセッサ200を使用
可能となる。
【0042】(2)第2のスケジューリング方法 まず、図6を用いて、仮想計算機のスケジューリング状
態の遷移を説明する。本スケジューリング方法において
も第1のスケジューリング方法の場合と同様に、仮想計
算機モニタ410による仮想計算機のスケジューリング
状態としては、スカラプロセッサウェイト状態(SPウ
ェイト状態)、レディ状態、実行状態、および、VP待
ち状態の4つの状態がある。この4つの状態は、第1の
スケジューリング方法の状態遷移と同様に遷移するが、
次の点が異なる。
【0043】(a)第1のスケジューリング方法では、
ベクトルプロセッサ200が使用中であることを仮想計
算機モニタ410が検知したとき、レディ状態であっ
て、ベクトルプロセッサ200を使用する可能性があ
り、現在ベクトルプロセッサ200を使用していない仮
想計算機をVP待ち状態に移した。これに対し、本スケ
ジューリング方法では、レディ状態にあれば他の条件は
問わず、スカラプロセッサを与えて実行状態に移し、こ
の実行状態の仮想計算機がベクトルプロセッサ200を
使用しようとした時点で、他の仮想計算機がベクトルプ
ロセッサ200を使用中かを判定する。そして、他の仮
想計算機が使用中ならば、実行状態を中断し、仮想計算
機モニタ410が、この中断した仮想計算機をVP待ち
状態に移す。即ち、第1のスケジューリング方法ではレ
ディ状態からVP待ち状態に遷移したが、本スケジュー
リング方法では実行状態からVP待ち状態へ遷移すると
いう違いがある。
【0044】ここで、本スケジューリング方法および後
続の説明に利用するスカラプロセッサ100の構成を図
5により説明する。スカラプロセッサ100には、スカ
ラ命令実行回路110および割込み実行回路120の他
に、ベクトルプロセッサ200を使用中の仮想計算機
(OS)の識別子を保持するVP使用中VM識別子レジ
スタ130、VPビジーをOSに通知したとき“1”が
格納されるビジー報告レジスタ131、仮想計算機のプ
ログラム状態語(PSW:Program Status Word)の内
容を保持するPSWレジスタ140、常時“0”を保持
するレジスタ132、レジスタ130の値とレジスタ1
32の値とを比較する比較器133、比較器133の出
力とビジー報告レジスタ131の値との論理積(AN
D)をとるアンド回路134、ベクトルプロセッサ20
0の終了割込みを保留するための保留レジスタ180と
を有する。
【0045】仮想計算機のスカラプロセッサ100にお
ける走行は、前述のようにSIE命令によって行なわれ
る。SIE命令のオペランドである状態記述子(SD:
State Description)は、仮想計算機起動情報412と
仮想計算機退避情報413とビジー報告ビット414と
仮想計算機識別子(VMID)415の領域を有する。
仮想計算機モニタ410がSIE命令を実行すると、ス
カラ命令実行回路110は、仮想計算機起動情報412
内の仮想計算機のプログラム状態語PSWの内容をスカ
ラプロセッサ100内のPSWレジスタ140に格納
し、ビジー報告ビット414の値をビジー報告レジスタ
131に格納する。その後、スカラ命令実行回路110
は、PSW140の一部である命令アドレスフィールド
が示す仮想計算機の主記憶領域上の命令を実行する。
【0046】次に、図7のフローチャートを用いて、仮
想計算機モニタ410による仮想計算機の第2のスケジ
ューリング方法の手順を説明する。
【0047】仮想計算機モニタ410は、まず、レディ
状態の仮想計算機があるか否かを判定し(ステップ70
00)、ないならば、スカラプロセッサ100をウェイ
ト状態にする(ステップ7060)。
【0048】レディ状態の仮想計算機があるならば、こ
の仮想計算機のスカラプロセッサ100における走行を
前記SIE命令を用いて開始する(ステップ701
0)。ただし、状態記述子(SD)411内のVMID
415の値のVP使用中VM識別子130への格納は、
このスカラプロセッサにおけるVM走行開始時点では行
なわず、OSがEXVP命令を発行した時点で行なう。
また、割込み実行回路120は、VP使用中VM識別子
130のリセットを、ベクトルプロセッサ200が命令
実行を終了した時に行なう。
【0049】この後、実行状態の仮想計算機上のOSか
らベクトルプロセッサ200の使用要求があった(EX
VP命令が発行された)場合(ステップ7020)、他
の仮想計算機がベクトルプロセッサ200を使用中か否
かを判定する(ステップ7030)。この判定では、V
P使用中VM識別子レジスタ130の内容が“0”でな
く(即ち、いずれかの仮想計算機がベクトルプロセッサ
200を使用中であって)、かつ、VP使用中VM識別
子レジスタ130の内容が状態記述子(SD)411内
のVMID415の内容と異なる場合に、他の仮想計算
機がベクトルプロセッサ200を使用中であると分か
る。他の仮想計算機がベクトルプロセッサ200を使用
中でないならば、スカラ命令実行回路110は、VP使
用中VM識別子レジスタ130に、スカラプロセッサ1
00において走行中の仮想計算機のVMID415の値
を設定し(ステップ7040)、仮想計算機のスカラプ
ロセッサ100における走行を継続する(ステップ70
50)。タイムスライスエンドになれば(ステップ70
52)、当該仮想計算機をレディ状態に戻す(ステップ
7054)。
【0050】ステップ7030において、他の仮想計算
機がベクトルプロセッサ200を使用中ならば、スカラ
命令実行回路110は、仮想計算機の走行を中断し、仮
想計算機モニタ410に制御を渡す(ステップ712
0)。その後、制御を渡された仮想計算機モニタ410
は、スカラプロセッサ100において走行していた仮想
計算機を、VP待ち状態にし(ステップ7130)、ス
テップ7000に戻り、再度、仮想計算機のディスパッ
チ処理を行なう。
【0051】一方、ステップ7000においてレディ状
態の仮想計算機が存在しない場合、仮想計算機モニタ4
10は、スカラプロセッサ100をウェイト状態にする
(ステップ7060)。その後、仮想計算機モニタ41
0への割込みが発生した時(ステップ7070)、割込
み実行回路120は、ベクトルプロセッサ200からの
割込みならば、VP使用中VM識別子130を“0”に
リセットする(ステップ7080)。その後、この割込
みのシミュレーション等により、仮想計算機のSPウェ
イト状態が解除された場合、仮想計算機モニタ410
は、この仮想計算機をSPウェイト状態からレディ状態
とする(ステップ7090)。さらに、仮想計算機モニ
タ410は、TVP命令によりベクトルプロセッサ20
0が未使用状態になったか否かを判定し(ステップ71
00)、未使用状態の場合、VP待ち状態の仮想計算機
をレディ状態として、ステップ7000に戻り、仮想計
算機のディスパッチ処理を行なう。
【0052】このように、第2のスケジューリング方法
では、制御が複雑になる反面、他のプロセッサがベクト
ルプロセッサを使用中であってもディスパッチされ、ベ
クトルプロセッサの使用要求を発行しない限りVP待ち
状態とならないので、仮想計算機の実行効率が向上す
る。スカラプロセッサ100において走行中の仮想計算
機がベクトルプロセッサ200の使用を要求した時点
で、他の仮想計算機がベクトルプロセッサ200を使用
中の場合には、当該走行中の仮想計算機のスカラプロセ
ッサ100における走行は中断されるので、ある仮想計
算機がベクトルプロセッサ200を使用中に、他の仮想
計算機上のOSがEXVP命令を実行する不都合はな
い。
【0053】(3)第3のスケジューリング方法 まず、図8を用いて、仮想計算機のスケジューリング状
態の遷移を説明する。本スケジューリング方法の仮想計
算機モニタ410による仮想計算機のスケジューリング
状態としては、スカラプロセッサウェイト状態(SPウ
ェイト状態)、レディ状態、実行状態の3つがあり、第
1および第2のスケジューリング方法におけるVP待ち
状態はない。第1および第2のスケジューリング方法で
は、VP待ち状態を仮想計算機モニタ410が管理し
て、仮想計算機上のOSにはあたかもベクトルプロセッ
サ200を専有しているかのような計算機環境を作り、
他の仮想計算機によるベクトルプロセッサ200の使用
状況を仮想計算機上のOSが認識することを不要とし
た。これに対し、本スケジューリング方法では各仮想計
算機上のOSがVP待ち状態を管理し、他の仮想計算機
によるベクトルプロセッサ200の使用状況を各仮想計
算機上のOSが認識しながら、ジョブを実行する。ベク
トルプロセッサの使用状態によらずレディ状態の仮想計
算機を実行状態とする点では第2のスケジューリング方
法と同様であるが、第2のスケジューリング方法におけ
る状態遷移と本スケジューリング方法における状態遷移
では、次の点が異なる。
【0054】(a)第2のスケジューリング方法では、
実行状態の仮想計算機がベクトルプロセッサ200を使
用しようとした時点で、他の仮想計算機がベクトルプロ
セッサ200を使用中ならば、実行状態を中断し、仮想
計算機モニタ410が、この中断した仮想計算機をVP
待ち状態に移した。これに対し、本スケジューリング方
法では、実行状態の仮想計算機がベクトルプロセッサ2
00を使用しようとしたとき、他の仮想計算機がベクト
ルプロセッサ200を使用中ならば、スカラ命令実行回
路110は、この実行状態の仮想計算機上のOSにVP
ビジー状態を通知する。この結果、当該OSはVP待ち
状態となり、ベクトルプロセッサ200を使用しないジ
ョブを実行する。また、仮想計算機モニタ410あるい
はスカラプロセッサ100は、ベクトルプロセッサ20
0が未使用状態になった時点で、このOSにベクトルプ
ロセッサ200がフリーになったことを割込みにより通
知する。この割込みを契機として、当該OSはVP未使
用状態に戻り、ベクトルプロセッサ200を使用するジ
ョブをEXVP命令により再起動し、VP使用状態に移
行する。また、当該OSはベクトルプロセッサからの終
了割込みによりVP未使用状態に戻る。
【0055】次に、図9のフローチャートを用いて、仮
想計算機モニタ410による仮想計算機の第3のスケジ
ューリング方法の手順を説明する。
【0056】仮想計算機モニタ410は、まず、レディ
状態の仮想計算機があるか否かを判定し(ステップ90
00)、ないならばスカラプロセッサ100をウェイト
状態にする(ステップ9070)。
【0057】レディ状態の仮想計算機があるならば、そ
のレディ状態の仮想計算機の走行をスカラプロセッサ1
00において開始する(ステップ9010)。仮想計算
機のスカラプロセッサ100における走行開始は、第2
のスケジューリング方法におけるSIE命令を用いて行
なわれる。スカラプロセッサ100における走行開始
後、OSからベクトルプロセッサ200の使用要求があ
ったとき(ステップ9020)、他の仮想計算機がベク
トルプロセッサ200を使用中か否かを第2のスケジュ
ーリング方法の場合と同様にVMID415の内容とV
P使用中VM識別子レジスタ130を用いて判定する
(ステップ9030)。判定の結果、他の仮想計算機が
ベクトルプロセッサ200を使用中であればベクトルプ
ロセッサ200がビジー状態であることをOSに通知し
て(ステップ9130)、仮想計算機のスカラプロセサ
100における走行を継続する(ステップ9060)。
さらに、このときスカラ命令実行回路110は、ビジー
報告レジスタ131に“1”を設定する。一方、他のい
ずれの仮想計算機もベクトルプロセッサ200を使用中
でなければ、VP使用中VM識別子レジスタ130に走
行中の仮想計算機のVMID415の内容を設定し(ス
テップ9040)、ベクトルプロセッサ200の使用を
開始する(ステップ9050)とともに、仮想計算機の
スカラプロセッサ100における走行を継続する(ステ
ップ9060)。タイムスライスエンドに達したら(ス
テップ9062)、当該仮想計算機をレディ状態に戻す
(9064)。
【0058】また、ステップ9070の後、仮想計算機
モニタ410への割込みが発生したとき(ステップ90
80)、ベクトルプロセッサ200からの割込みなら
ば、割込み実行回路120は、VP使用中VM識別子レ
ジスタ130を“0”にリセットする(ステップ909
0)。仮想計算機モニタ410が、この割込みをシミュ
レーションした結果、仮想計算機のSPウェイト状態が
解除された場合、この仮想計算機をSPウェイト状態か
らレディ状態にする(ステップ9100)。さらに、仮
想計算機モニタ410はベクトルプロセッサ200が未
使用状態になったか否かを判定し(ステップ911
0)、未使用状態の場合、ベクトルプロセッサ200が
フリー状態になったことを、ビジーを通知した全ての仮
想計算機、即ち、状態記述子(SD)411のビジー報
告ビット414が“1”の仮想計算機に割込みによって
通知する(ステップ9120)。この結果、フリーを通
知されたOSは、ディスパッチ後、ベクトルプロセッサ
200を使用するジョブを再起動する。
【0059】ここで、フリー割込みの実行は、上述のよ
うに仮想計算機モニタ410が、シミュレーションによ
って行なうことも可能であるが、仮想計算機モニタ41
0が介在することなく、実行することも可能である。こ
の場合、図5のVP使用中VM識別子レジスタ130の
値と、値“0”を保持するレジスタ132の値を比較器
133により比較する。比較の結果、VP使用中VM識
別子レジスタ130の値が“0”、即ち、ベクトルプロ
セッサ200を使用中でないならば比較器133の出力
が“1”となり、これとビジー報告レジスタ131との
積をアンド回路174によってとる。このアンド回路1
74の出力が“1”のとき、フリー割込み要求信号18
1を割込み実行回路120に送る。割込み実行回路12
0は、フリー割込み要求信号181が“1”のとき、走
行中のOSが割込み可能になった時点で、割込みを発生
させ、ビジー報告レジスタ131を“0”にリセットす
る。
【0060】以上のようにして、3つのスケジューリン
グ方法の各々により複数の仮想計算機上のOSがベクト
ルプロセッサ200を共用するための、仮想計算機のス
ケジューリング方法を提供できる。
【0061】IV.ベクトルプロセッサによる命令実行終
了割込みの処理 図5を用いて、ベクトルプロセッサ200による命令実
行終了割込みの処理を説明する。
【0062】ベクトルプロセッサ200において命令実
行が終了すると、スカラプロセッサ100には、割込み
信号160と、ベクトルプロセッサ200を使用した仮
想計算機のVMIDである割込み元VMID170とが
送られる。本実施例において設けられた割込み保留レジ
スタ180は、仮想計算機対応に割込みを保留するレジ
スタであり、第nビットはVMID=nの仮想計算機に
対する割込みの保留の有無を表わす。ベクトルプロセッ
サ200から割込み信号160が送られると、割込み元
VMID170に対応する割込み保留レジスタ180の
ビットを“1”にセットし、当該仮想計算機がスカラプ
ロセッサ100において走行中となるまで、割込みを保
留する。
【0063】割込み保留レジスタ180の複数のビット
のうち、スカラプロセッサ100において走行中の仮想
計算機のVMID415に対応するビット値165が割
込み実行回路120に送られる。このように、割込み実
行回路120へ入力されるビット値165が“1”のと
き、走行中のOSにベクトルプロセッサ200の命令実
行終了に伴う割込みが保留されている。従って、割込み
実行回路120は、ビット値165が“1”であり、ス
カラプロセッサ100において走行中の仮想計算機が割
込み可能ならば、このOSに対して割込みを実行する。
割込み実行後、割込み実行回路120は保留レジスタ1
80に対してリセット信号190を出力する。この結
果、走行中の仮想計算機に対応する割込み保留レジスタ
180のビットは、“0”にリセットされる。
【0064】以上のようにして、本実施例によれば、仮
想計算機モニタが介在することなく、ベクトルプロセッ
サの命令実行終了割込みを直接、ベクトルプロセッサを
起動した仮想計算機上のOSに実行することが可能とな
る。これにより、仮想計算機モニタ介在によるオーバヘ
ッドを軽減することができる。
【0065】以上、実施例では、仮想計算機はVM−1
とVM−2の2台としたが、3台以上であっても良いこ
とは、明らかであろう。
【0066】また、スーパーコンピュータは、1台のス
カラプロセッサ100と1台のベクトルプロセッサ20
0を有するとした。しかし、スカラプロセッサ100と
ベクトルプロセッサ200の対を複数組有するマルチプ
ロセッサ構成のスーパーコンピュータに本発明を適用す
ることもできる。さらに、スーパーコンピュータに限ら
ず、類似した構成の計算機にも本発明が適用できる。
【0067】
【発明の効果】本発明によれば、複数の仮想計算機上の
OSがベクトルプロセッサを共用するための、仮想計算
機のスケジューリング方法を提供できる。また、仮想計
算機モニタが介在することなく、ベクトルプロセッサの
命令実行終了割込みを直接、ベクトルプロセッサを起動
した仮想計算機上のOSに実行することにより、仮想計
算機モニタ介在によるオーバヘッドを低減できる。さら
に、ベクトルプロセッサ内にアドレス変換回路を設ける
ことにより、主記憶装置の任意の連続領域を有する複数
の仮想計算機がベクトルプロセッサを利用できるように
することができる。
【図面の簡単な説明】
【図1】本発明をスーパーコンピュータに適用した実施
例システムの構成図。
【図2】図1内に示したアドレス変換回路の構成図。
【図3】実施例の第1のスケジューリング方法における
状態遷移の説明図。
【図4】第1のスケジューリング方法のフローチャー
ト。
【図5】図1内に示したスカラプロセッサの構成図。
【図6】実施例の第2のスケジューリング方法における
状態遷移の説明図。
【図7】第2の実施例におけるスケジューリング方法の
フローチャート。
【図8】実施例の第3のスケジューリング方法における
状態遷移の説明図。
【図9】第3のスケジューリング方法のフローチャー
ト。
【符号の説明】
100:スカラプロセッサ、200:ベクトルプロセッ
サ、300:記憶制御装置、400:主記憶装置、41
0:仮想計算機モニタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 勝 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】第1のプロセッサと、該第1のプロセッサ
    からの指示により命令実行を開始し、命令実行終了を割
    込みにより前記第1のプロセッサに通知する第2のプロ
    セッサとを有する計算機上で、仮想計算機モニタによる
    管理のもと複数のオペレーティング・システム(OS)
    が走行する仮想計算機システムにおいて、 前記仮想計算機モニタが第1のOSの走行を開始すると
    き、前記第1のOS以外の第2のOSが前記第2のプロ
    セッサを使用中か否かを判定するステップと、 前記判定が肯定的であるとき、前記第1のOSの走行を
    保留するステップと、 前記判定が否定的であるとき、前記第1のプロセッサと
    前記第2のプロセッサを前記第1のOSに与えて走行を
    開始するステップとを備えたことを特徴とする仮想計算
    機の制御方法。
  2. 【請求項2】第1のプロセッサと、該第1のプロセッサ
    からの指示により命令実行を開始し、命令実行終了を割
    込みにより前記第1のプロセッサに通知する第2のプロ
    セッサとを有する計算機上で、仮想計算機モニタによる
    管理のもと複数のオペレーティング・システム(OS)
    が走行する仮想計算機システムにおいて、 前記第1のプロセッサにおいて走行中の第1のOSが前
    記第2のプロセッサの使用を要求したことに応じて、前
    記第1のOS以外の第2のOSが前記第2のプロセッサ
    を使用中か否かを判定するステップと、 前記判定が肯定的であるとき、前記第1のOSの走行を
    中断するステップと、 前記判定が否定的であるとき、前記第2のプロセッサを
    前記第1のOSに与えて、前記第1のOSの走行を継続
    するステップとを備えたことを特徴とする仮想計算機の
    制御方法。
  3. 【請求項3】第1のプロセッサと、該第1のプロセッサ
    からの指示により命令実行を開始し、命令実行終了を割
    込みにより前記第1のプロセッサに通知する第2のプロ
    セッサとを有する計算機上で、仮想計算機モニタによる
    管理のもと複数のオペレーティング・システム(OS)
    が走行する仮想計算機システムにおいて、 前記第1のプロセッサにおいて走行中の第1のOSが前
    記第2のプロセッサの使用を要求したことに応じて、前
    記第1のOS以外の第2のOSが前記第2のプロセッサ
    を使用中か否かを判定するステップと、 前記判定が肯定的であるとき、前記第1のOSに前記第
    2のプロセッサがビジー状態であることを通知するステ
    ップと、 前記判定が否定的であるとき、前記第2のプロセッサを
    前記第1のOSに与えるステップとを備えたことを特徴
    とする仮想計算機の制御方法。
  4. 【請求項4】請求項3において、前記第2のプロセッサ
    による命令実行終了を示す割込みが前記第1のプロセッ
    サに報告されたことを契機として、前記第2のプロセッ
    サが未使用状態になったことを通知するための割込み
    を、前記ビジー状態の通知を受けたOSに対して実行ス
    テップを有する仮想計算機の制御方法。
  5. 【請求項5】第1のプロセッサと、該第1のプロセッサ
    からの指示により命令実行を開始し、命令実行終了を割
    込みにより前記第1のプロセッサに通知する第2のプロ
    セッサとを有する計算機上で、仮想計算機モニタによる
    管理のもと複数のオペレーティング・システム(OS)
    が走行する仮想計算機システムにおいて、 前記第2のプロセッサが命令の実行を終了したとき、前
    記第2のプロセッサを使用したOSに割込みを保留する
    ステップと、 前記OSが前記第1のプロセッサで走行中に、割込み可
    能となった時点で、当該割込みを実行するステップとを
    備えたことを特徴とする仮想計算機の制御方法。
  6. 【請求項6】第1のプロセッサと、該第1のプロセッサ
    からの指示により命令実行を開始し、命令実行終了を割
    込みにより前記第1のプロセッサに通知する第2のプロ
    セッサとを有する計算機上で、仮想計算機モニタによる
    管理のもと複数のオペレーティング・システム(OS)
    が走行する仮想計算機システムにおいて、 前記仮想計算機モニタが、前記複数のOSの主記憶領域
    と前記計算機の主記憶装置とのメモリアドレスマッピン
    グ情報を前記第2のプロセッサに登録するステップと、 前記第1のプロセッサにおいて走行中のOSの識別子
    を、前記第1のプロセッサが前記第2のプロセッサに送
    るステップと、 前記第2のプロセッサによる1つのOSの主記憶領域の
    アクセス要求時に、前記OSの主記憶領域のメモリアド
    レスマッピング情報を前記第1のプロセッサから送られ
    てきたOS識別子によって選択するステップと、 前記選択したメモリアドレスマッピング情報により前記
    アクセス要求のあるOSの主記憶領域のアドレスを対応
    する主記憶装置上のアドレスに変換するステップと、 前記変換結果のアドレスを用いて、前記OSの主記憶領
    域に対応する前記主記憶装置上の領域にアクセスするス
    テップとを備えたことを特徴とする仮想計算機の制御方
    法。
  7. 【請求項7】第1のプロセッサと、該第1のプロセッサ
    からの指示により命令実行を開始し、命令実行終了を割
    込みにより前記第1のプロセッサに通知する第2のプロ
    セッサとを有する計算機上で、仮想計算機モニタによる
    管理のもと複数のオペレーティング・システム(OS)
    が走行する仮想計算機システムにおいて、 前記複数のOSに前記第1および第2のプロセッサをど
    のように割り当てるかを決定するスケジューリング手段
    と、 前記第2のプロセッサ内に設けた、前記複数のOSの主
    記憶領域と前記計算機の主記憶装置とのメモリアドレス
    の対応関係を定めるマッピング情報を格納する手段と、 前記スケジューリング手段のスケジューリングによって
    前記第1のプロセッサにおいて走行中のOSの識別子を
    前記第2のプロセッサに転送する手段と、 前記第2のプロセッサによる1つのOSの主記憶領域の
    アクセス要求時に、前記マッピング情報のなかから当該
    OSの主記憶領域のマッピング情報を前記第1のプロセ
    ッサから送られてきたOS識別子によって選択する手段
    と、 該選択したマッピング情報により前記アクセス要求のあ
    るOSの主記憶領域のアドレスを対応する主記憶装置上
    のアドレスに変換する手段とを備えたことを特徴とする
    仮想計算機システム。
  8. 【請求項8】請求項7において、前記第1のプロセッサ
    において走行中の第1のOS以外の第2のOSが前記第
    2のプロセッサを使用中か否かを検査する手段を有し、
    前記スケジューリング手段が当該検査結果を利用してス
    ケジューリングを行うことを特徴とする仮想計算機シス
    テム。
  9. 【請求項9】請求項8において、現在前記第2のプロセ
    ッサを使用しているOSの識別子を保持するOS識別子
    保持手段を前記第1のプロセッサ内に備え、前記検査す
    る手段は当該保持されたOSの識別子を前記第1のプロ
    セッサにおいて走行中のOSの識別子と比較することに
    より前記検査を行うことを特徴とする仮想計算機システ
    ム。
  10. 【請求項10】請求項9において、前記走行中のOSか
    ら前記第2のプロセッサの使用要求に対して、前記OS
    識別子保持手段に保持された内容に基づいて前記第2の
    プロセッサが使用中であることが判明した場合、前記走
    行中のOSに対してビジー状態を通知する手段を備えた
    ことを特徴とする仮想計算機システム。
  11. 【請求項11】請求項10において、前記ビジー状態の
    通知を受けたOSに対して、前記第2のプロセッサが未
    使用状態になったことを通知する手段を備えたことを特
    徴とする仮想計算機システム。
  12. 【請求項12】請求項7において、前記第2のプロセッ
    サから前記第1のプロセッサに対する命令実行終了の割
    込みをOS対応に保持する保留レジスタを前記第1のプ
    ロセッサ内に備え、該命令実行終了割込みに対応するO
    Sが前記第1のプロセッサにおいて走行するときに、前
    記保留レジスタから当該OSに対して割込みをかけるこ
    とを特徴とする仮想計算機システム。
  13. 【請求項13】請求項7から12のいずれかにおいて、
    前記第1のプロセッサはスカラプロセッサであり、前記
    第2のプロセッサはベクトルプロセッサであることを特
    徴とする仮想計算機システム。
JP4246730A 1992-09-16 1992-09-16 仮想計算機の制御方法および仮想計算機システム Pending JPH0695898A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4246730A JPH0695898A (ja) 1992-09-16 1992-09-16 仮想計算機の制御方法および仮想計算機システム
US08/120,472 US5553291A (en) 1992-09-16 1993-09-14 Virtual machine control method and virtual machine system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4246730A JPH0695898A (ja) 1992-09-16 1992-09-16 仮想計算機の制御方法および仮想計算機システム

Publications (1)

Publication Number Publication Date
JPH0695898A true JPH0695898A (ja) 1994-04-08

Family

ID=17152798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4246730A Pending JPH0695898A (ja) 1992-09-16 1992-09-16 仮想計算機の制御方法および仮想計算機システム

Country Status (2)

Country Link
US (1) US5553291A (ja)
JP (1) JPH0695898A (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2722591B1 (fr) * 1994-07-13 1996-08-30 Bull Sa Systeme informatique ouvert a serveurs multiples
US6195710B1 (en) * 1995-06-12 2001-02-27 International Business Machines Corporation Operating system having shared personality neutral resources
US6560695B1 (en) * 1995-11-16 2003-05-06 International Business Machines Corporation Dynamic pipe staging adder
US6567837B1 (en) * 1997-01-29 2003-05-20 Iq Systems Object oriented processor arrays
GB2337434B (en) * 1997-03-14 2002-01-30 Ian Charles Ogilvy Method and apparatus for controlling communications
US6802062B1 (en) * 1997-04-01 2004-10-05 Hitachi, Ltd. System with virtual machine movable between virtual machine systems and control method
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6445964B1 (en) 1997-08-04 2002-09-03 Harris Corporation Virtual reality simulation-based training of telekinegenesis system for training sequential kinematic behavior of automated kinematic machine
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7516453B1 (en) * 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US8225002B2 (en) 1999-01-22 2012-07-17 Network Disk, Inc. Data storage and data sharing in a network of heterogeneous computers
US6732220B2 (en) * 1999-02-17 2004-05-04 Elbrus International Method for emulating hardware features of a foreign architecture in a host operating system environment
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6496925B1 (en) 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US7856633B1 (en) 2000-03-24 2010-12-21 Intel Corporation LRU cache replacement for a partitioned set associative cache
US8020176B2 (en) * 2000-04-06 2011-09-13 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
US7703107B2 (en) * 2000-04-06 2010-04-20 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
US7506265B1 (en) 2000-07-17 2009-03-17 Microsoft Corporation System and method for displaying images of virtual machine environments
US20020184290A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation Run queue optimization with hardware multithreading for affinity
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US8249885B2 (en) * 2001-08-08 2012-08-21 Gary Charles Berkowitz Knowledge-based e-catalog procurement system and method
GB2381092B (en) * 2001-10-19 2005-10-19 Ibm Object locking in a shared VM environment
US6941105B1 (en) * 2001-10-24 2005-09-06 Novell, Inc. System and method to reduce the time and complexity of information technology classroom setup
US6961806B1 (en) 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
US7698360B2 (en) * 2002-02-26 2010-04-13 Novell, Inc. System and method for distance learning
US7331791B2 (en) * 2002-03-05 2008-02-19 Novell, Inc. System and method for evaluating a person's information technology skills
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7774191B2 (en) * 2003-04-09 2010-08-10 Gary Charles Berkowitz Virtual supercomputer
US7130949B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
US9020801B2 (en) 2003-08-11 2015-04-28 Scalemp Inc. Cluster-based operating system-agnostic virtual computing system
US7934020B1 (en) * 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US7617501B2 (en) 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
US7752436B2 (en) * 2005-08-09 2010-07-06 Intel Corporation Exclusive access for secure audio program
US7904949B2 (en) 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US8087075B2 (en) 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
US8429712B2 (en) 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
US8095741B2 (en) * 2007-05-14 2012-01-10 International Business Machines Corporation Transactional memory computing system with support for chained transactions
US8095750B2 (en) * 2007-05-14 2012-01-10 International Business Machines Corporation Transactional memory system with fast processing of common conflicts
US9009452B2 (en) 2007-05-14 2015-04-14 International Business Machines Corporation Computing system with transactional memory using millicode assists
US8688920B2 (en) * 2007-05-14 2014-04-01 International Business Machines Corporation Computing system with guest code support of transactional memory
US8117403B2 (en) * 2007-05-14 2012-02-14 International Business Machines Corporation Transactional memory system which employs thread assists using address history tables
US8041922B2 (en) * 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8041923B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Load page table entry address instruction execution based on an address translation format control field
US8095773B2 (en) * 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8560593B2 (en) 2008-03-27 2013-10-15 Dell Software Inc. System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US8566524B2 (en) 2009-08-31 2013-10-22 International Business Machines Corporation Transactional memory system with efficient cache support
CN102279818B (zh) * 2011-07-28 2013-09-25 中国人民解放军国防科学技术大学 支持有限共享的向量数据访存控制方法及向量存储器
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
WO2014165040A1 (en) 2013-03-13 2014-10-09 Veriscape, Inc. Dynamic memory management for a virtual supercomputer
US11064267B2 (en) 2016-11-14 2021-07-13 Google Llc Systems and methods for providing interactive streaming media
US10248595B2 (en) * 2017-08-10 2019-04-02 Infineon Technologies Ag Virtual machine monitor interrupt support for computer processing unit (CPU)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6013501B2 (ja) * 1978-09-18 1985-04-08 富士通株式会社 仮想計算機システムにおけるチヤネルアドレス制御方式
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPH0652511B2 (ja) * 1984-12-14 1994-07-06 株式会社日立製作所 情報処理装置のアドレス変換方式
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
JPS61206043A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
US4787026A (en) * 1986-01-17 1988-11-22 International Business Machines Corporation Method to manage coprocessor in a virtual memory virtual machine data processing system
JPS63253468A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd ベクトル処理装置
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
JPH01255945A (ja) * 1988-04-06 1989-10-12 Hitachi Ltd 仮想計算機におけるアドレス変換装置

Also Published As

Publication number Publication date
US5553291A (en) 1996-09-03

Similar Documents

Publication Publication Date Title
JPH0695898A (ja) 仮想計算機の制御方法および仮想計算機システム
US8271989B2 (en) Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
US5095427A (en) Dispatch control of virtual machine
US5499379A (en) Input/output execution apparatus for a plural-OS run system
EP0093267B1 (en) Method for switching the control of central processing units in a data processing system, and apparatus for initiating the switching of cpu control
KR20070100367A (ko) 하나의 가상 머신에서 다른 가상 머신으로 메모리를동적으로 재할당하기 위한 방법, 장치 및 시스템
JPH0784883A (ja) 仮想計算機システムのアドレス変換バッファパージ方法
JPH0792761B2 (ja) 仮想計算機システムの入出力制御方法
KR20160033517A (ko) 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법
JP2870254B2 (ja) 仮想計算機の入出力割り込み処理方式
US20090241112A1 (en) Recording medium recording virtual machine control program and virtual machine system
US11169837B2 (en) Fast thread execution transition
JPH06243112A (ja) マルチプロセッサ装置
JPH0689269A (ja) プロセッサの制御装置、プロセッサの休止装置およびそれらの方法
EP0223463B1 (en) Multiprocessor data processing system
JPH09282196A (ja) 複合論理プロセッサシステムのプログラム走行制御方式
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
JPH10260850A (ja) 仮想計算機システム
JPS6336012B2 (ja)
JPH0444131A (ja) 複数os走行システムにおけるプロセッサ間通信の実行装置および方法
JPS5958553A (ja) 統合型仮想計算機のディスパッチ制御方式
JP3022398B2 (ja) 仮想計算機方式
JP2022055002A (ja) 情報処理装置、情報処理方法および情報処理プログラム
JPH0567973B2 (ja)
JP2556018B2 (ja) チヤネルパスグル−プ管理方式