JPH05257721A - 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機 - Google Patents

複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機

Info

Publication number
JPH05257721A
JPH05257721A JP8787492A JP8787492A JPH05257721A JP H05257721 A JPH05257721 A JP H05257721A JP 8787492 A JP8787492 A JP 8787492A JP 8787492 A JP8787492 A JP 8787492A JP H05257721 A JPH05257721 A JP H05257721A
Authority
JP
Japan
Prior art keywords
area
main storage
storage device
address space
absolute address
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
JP8787492A
Other languages
English (en)
Inventor
Toshiharu Tanaka
俊治 田中
Hidenori Umeno
英典 梅野
Taro Inoue
太郎 井上
Naoko Ikegaya
直子 池ヶ谷
Masatoshi Haraguchi
政敏 原口
Takeshi Watanabe
毅 渡辺
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 JP8787492A priority Critical patent/JPH05257721A/ja
Publication of JPH05257721A publication Critical patent/JPH05257721A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 記憶保護を行なう単位が互いに異なる2つの
領域からなる主記憶領域を有する常駐VMが動作可能な
仮想計算機システム(VMS)を提供する。 【構成】 主記憶装置の物理主記憶領域を記憶保護を行
なう単位が4kBと64kBの2つの領域に分ける。仮
想計算機モニタ(VMM)310は、第1の浮動アドレ
スレジスタ(FAR)に常駐VM1の第1の絶対アドレ
ス空間340の4kB領域(16M単位)の番号をエン
トリとして対応する物理主記憶領域の4kB領域の番号
を登録し、64kB(16M単位)の領域についても同
様にして第1の浮動アドレスレジスタ(FAR)に登録
する。次いで仮想計算機モニタ(VMM)310は、第
2の浮動アドレスレジスタ(FAR)に、上記と同様に
して、4kB領域と64kB領域の各領域について、常
駐VM2の第2の絶対アドレス空間350の主記憶装置
の物理主記憶領域の関係を登録する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数OS走行システム
における各OSへの主記憶領域の割当て方法及び装置に
関し、特に、主記憶装置上に各OSの主記憶領域が常駐
する場合に好適な主記憶装置の割当て方法及び装置に関
する。
【0002】
【従来の技術】複数のオペレーティング・システム(O
S:Operating System)が時分割によ
り1台の計算機上で走行する計算機システムとして、特
開昭57−212680号公報に記載の仮想計算機シス
テム(VMS:VirtualMachine Sys
tem)がある。仮想計算機システム(VMS)は、1
台の計算機上に論理的な計算機である仮想計算機(V
M:Virtual Machine)を複数台実現
し、各仮想計算機(VM)上で各々に対応するOSの走
行を可能とする。この仮想計算機システム(VMS)に
おいて、仮想計算機モニタ(VMM:Virtual
Machine Monitor)は、計算機資源を各
仮想計算機(VM)に分配するとともに、仮想計算機
(VM)のスケジューリング処理や起動処理(いわゆ
る、ディスパッチ処理)、仮想計算機(VM)上のOS
が発行した一部の命令のシミュレーション処理、およ
び、仮想計算機(VM)上のOSに対する一部の割込み
のシミュレーション処理等を行なう。
【0003】次に、現在、汎用大型計算機で広く採用さ
れている多重仮想空間方式について説明する。多重仮想
空間方式では、アドレスは、仮想アドレス、実アドレ
ス、絶対アドレスの3つの階層から構成される。ハード
ウェアである動的アドレス変換機構(DAT:Dyna
mic Address Translation)
は、仮想空間上のプログラムをアドレス付けする仮想ア
ドレスを、OSが作成したセグメントテーブル(ST:
Segment Table)およびページテーブル
(PT:Page Table)を参照しながら実アド
レスに変換する。複数の各命令プロセッサが固有に持つ
実アドレスの0番地から4095番地の1ページの領域
は、プログラムとハードウェアとのインタフェース情報
(発生した割込みの詳細情報や割込み処理ルーチンアド
レス等)を格納するプリフィクスセーブエリア(PS
A:Prefix Save Area)である。この
プリフィクスセーブエリア(PSA)は、複数の命令処
理装置(IP:Instruction Proces
sor )が並行して割込み処理を実行可能とするため
に、命令処理装置(IP)毎に固有な領域でなければな
らない。即ち、各命令処理装置の実アドレス0番地から
4095番地の1ページの領域は、物理的には命令処理
装置(IP)毎に各々異なる記憶領域に対応していなけ
ればならない。このため、実アドレスは、さらに主記憶
装置のそれぞれの格納場所につけられた固有な番地であ
る絶対アドレスにプリフィクス変換を通して変換され
る。各命令処理装置(IP)に対応するプリフィクスセ
ーブエリア(PSA)の先頭の絶対アドレスは、各命令
処理装置(IP)内のプリフィクスレジスタに保持さ
れ、プリフィクス変換において参照される。
【0004】仮想計算機(VM)の主記憶領域は、仮想
計算機(VM)の絶対アドレス空間(ゲスト絶対アドレ
ス空間:各VMのOSからみたアドレス空間であり、ア
ドレスは‘0’から始まる)を定義することによって規
定される。この仮想計算機(VM)の主記憶領域の生成
に関して、特開昭60−122445号公報は、計算機
の1つの絶対アドレス空間(ホスト絶対アドレス空間)
の分割領域を各仮想計算機(VM)の絶対アドレス空間
(ゲスト絶対アドレス空間)とする常駐VM方式を開示
している。このように計算機の絶対アドレス空間(ホス
ト絶対アドレス空間:実際のメモリ空間上のアドレス)
の分割領域をゲスト絶対アドレス空間として有する仮想
計算機(VM)を常駐VMと呼ぶ。例えば、VM1の絶
対アドレス空間(ゲスト絶対アドレス空間)をホスト絶
対アドレス空間の0〜1G番地未満とし、VM2のそれ
を1G〜2G番地未満とすると、VM1のホスト絶対ア
ドレス=VM1のゲスト絶対アドレスとなり、VM2の
ホスト絶対アドレス=VM2のゲスト絶対アドレス+1
Gとなる。
【0005】また、特開平1−93847号公報は、仮
想アドレスおよび実アドレスが31ビットの計算機アー
キテクチャとの互換性を保ちつつ、仮想アドレスおよび
実アドレスを31ビット以上に拡張するアドレス拡張方
式を開示している。さらに、特開昭56−140576
号公報は、プログラムが複数の仮想空間を同時にアクセ
スできるアドレス制御方式を開示している。
【0006】
【発明が解決しようとする課題】常駐VMに対する主記
憶領域の割当てに関して、次の課題がある。
【0007】(1)第1の課題は、実アドレスの拡張に
関する。特開平1−93847号公報に記載された31
ビット以上に実アドレスを拡張するアドレス拡張方式で
は、絶対アドレスがある値α(例えば、2G)以下の領
域は、従来汎用大型計算機で広く採用されているように
4キロバイト(kB)単位で記憶保護を行ない、絶対ア
ドレスがαを超える領域は、記憶保護を行なうハードウ
ェアである主記憶保護キーの量を少なくするために4k
B以上(例えば、64kB)の単位で記憶保護を行なう
ことがある。これは、アドレスが上部の領域には、一般
に大規模なデータを配置するからである。このとき、記
憶保護を行なう単位が異なる2つの領域から構成される
主記憶領域を有する常駐VMは、絶対アドレスがαの前
後の領域を有する1台に限られる。このため、記憶保護
を行なう単位が異なる2つの領域から構成される主記憶
領域を有する常駐VMを複数台生成することは、従来技
術では不可能である。
【0008】さらに、αが固定値(例えば、2G)であ
ると、記憶保護を行なう単位が異なる2つの領域から構
成される主記憶領域を有する常駐VMが、4kB単位で
記憶保護を行なう領域を専有することになる。このた
め、記憶保護を行なう単位が異なる2つの領域から構成
される主記憶領域を有する常駐VMと従来の記憶保護を
行なう単位が4kBの領域から構成される主記憶領域を
有する常駐VMを共存させることはできない。
【0009】(2)第2の課題もまた、実アドレスの拡
張に関する。特開平1−93847号公報に記載された
31ビット以上に実アドレスを拡張するアドレス拡張方
式では、仮想アドレスおよびプログラム状態語(PS
W:Program Status Word )のア
ドレスフィールドは31ビットのままで、アドレス変換
後の実アドレスのみが31ビットより大きく拡張される
ことがある。この常駐VM上のOSが発行した命令のシ
ミュレーションや常駐VMに対する割込みのシミュレー
ションをするためには、常駐VMの主記憶領域を仮想計
算機モニタ(VMM)が参照あるいは更新する必要が有
る。しかしながら、従来のように仮想計算機モニタ(V
MM)が常に非アドレス変換モードの場合、仮想計算機
モニタ(VMM)が指定するアドレスは、全て実アドレ
スでありアドレス変換の対象外である。従って、仮想計
算機モニタ(VMM)は、2G以上の領域にある常駐V
Mの主記憶領域の参照及び更新を行なえないという問題
が有る。
【0010】(3)第3の課題は、常駐VMの主記憶領
域のサイズの総和に関する。特開昭60−122445
号公報に開示された常駐VM方式では、計算機の1つの
絶対アドレス空間(ホスト絶対アドレス空間)の分割領
域を常駐VMの絶対アドレス空間(ゲスト絶対アドレス
空間)として与えている。従って、常駐VMの主記憶領
域のサイズの総和は、1つの絶対アドレス空間のサイズ
の最大値を超えることができない。例えば、絶対アドレ
スが31ビットの計算機上の仮想計算機システム(VM
S)では、各常駐VMの主記憶領域のサイズの総和は、
2ギガバイト(GB)以下に制限される。従って、例え
ば絶対アドレスが31ビットの計算機上の仮想計算機シ
ステム(VMS)では、1.5GBの容量の主記憶領域
を有する常駐VMを2台生成することは、従来技術では
不可能である。
【0011】(4)第4の課題は、仮想計算機モニタ
(VMM)による仮想計算機(VM)の主記憶領域の参
照および更新に関する。特願平2−215300号は、
1台の計算機上に複数の絶対アドレス空間を生成し、仮
想計算機(VM)毎に異なる絶対アドレス空間を与える
ための装置および方法を開示している。この多重絶対ア
ドレス空間方式では、仮想計算機モニタ(VMM)と仮
想計算機(VM)は各々固有の絶対アドレス空間を持
つ。このため、どのようにして仮想計算機モニタ(VM
M)が仮想計算機(VM)の主記憶領域を参照及び更新
するかという問題が有る。
【0012】(5)第5の課題は、常駐VM間の交信に
利用する共通領域の生成に関する。常駐VM間での交信
用に共通の主記憶領域を設ける方法として、一方の常駐
VMの最後尾の領域ともう一方の常駐VMの先頭領域を
重ね合わせる方法が考えられる。しかしながら、計算機
の1つの絶対アドレス空間(ホスト絶対アドレス空間)
の分割領域を有する常駐VMでは、各常駐VMの任意の
領域を常駐VM間の共通領域として定義することは従来
技術では不可能である。また、3台以上の常駐VM間で
共通領域を定義することも従来技術では不可能である。
【0013】本発明の目的は、記憶保護を行なう単位が
異なる2つの領域から構成される主記憶領域を有する複
数の常駐VMが動作可能な仮想計算機システム(VM
S)を提供することにある。本発明の他の目的は、1つ
の仮想空間よりも大きなサイズの絶対アドレス空間を有
するOSの主記憶領域を仮想計算機モニタ(VMM)が
参照及び更新可能な仮想計算機システム(VMS)を提
供することにある。本発明のさらに他の目的は、常駐V
Mの主記憶領域のサイズの総和が、1つの絶対アドレス
空間のサイズの最大値よりも大きな仮想計算機システム
(VMS)を提供することにある。また、本発明のさら
に他の目的は、各常駐VMが絶対アドレス空間を有する
仮想計算機システム(VMS)において、仮想計算機モ
ニタ(VMM)が常駐VMの主記憶領域を参照および更
新可能な仮想計算機システム(VMS)を提供すること
にある。本発明のさらに他の目的は、任意の主記憶領域
を複数の常駐VM間の共通領域として定義可能な仮想計
算機システム(VMS)を提供することにある。
【0014】
【課題を解決するための手段】上記課題を解決するため
に、記憶保護を行なう単位が異なる第1と第2の領域か
ら構成される主記憶装置と制御プログラムを備える1台
の計算機上で複数のOSが走行する計算機システムにお
いて、前記計算機に複数組の浮動アドレスレジスタを設
け、前記制御プログラムは、第1のOSの第1絶対アド
レス空間の前記第1の領域と前記主記憶装置の第1の領
域との対応関係および第1絶対アドレス空間の前記第2
の領域と前記主記憶装置の第2の領域との対応関係を第
1組の前記浮動アドレスレジスタに登録し、以下同様に
して、第2、第3、……の各OSと前記主記憶装置との
前記対応関係を第2組、第3組、……の各前記浮動アド
レスレジスタに登録するようにする。
【0015】主記憶装置と制御プログラムを備える1台
の計算機上で複数のOSが走行する計算機システムにお
いて、アクセスレジスタを設け、前記制御プログラム
は、該アクセスレジスタ上に前記制御プログラムが存在
する仮想空間と前記各OSが作成した仮想空間のセグメ
ントテーブル記述子からなる仮想空間リストを作成し、
仮想アドレスにアクセスするとき、該仮想アドレスが属
する仮想空間のセグメントテーブル記述子をアクセスレ
ジスタ番号を指定することにより求め、求められたセグ
メントテーブル記述子により前記仮想アドレスに対応す
る絶対アドレスを求め、仮想アドレスに対応する主記憶
装置の領域を割当てるようにする。
【0016】また、主記憶装置と制御プログラムを備え
る1台の計算機上で複数のOSが走行する計算機システ
ムにおいて、前記計算機に複数組の浮動アドレスレジス
タを設け、前記制御プログラムは、前記各OSの絶対ア
ドレス空間の領域と前記主記憶装置の領域との対応関係
を各OS対応の組の浮動アドレスレジスタに登録し、前
記各OSの絶対アドレス空間における前記制御プログラ
ムに与えられた領域に対応する前記主記憶装置の領域を
唯一つの領域として前記各OSに共通の前記制御プログ
ラム用の領域とするようにする。
【0017】さらに、主記憶装置と制御プログラムを備
える1台の計算機上で複数のOSが走行する計算機シス
テムにおいて、前記計算機に複数組の浮動アドレスレジ
スタを設け、前記制御プログラムは、前記各OSの絶対
アドレス空間の領域と前記主記憶装置の領域との対応関
係を各OS対応の組の浮動アドレスレジスタに登録し、
前記各OSの絶対アドレス空間における一部の領域に対
応する前記主記憶装置の領域を唯一つの領域として前記
各OSの共通領域とするようにする。
【0018】
【作用】
(1)第1の作用 計算機の絶対アドレスは33ビットであって、主記憶装
置は記憶保護を行なう単位が4kBである3GBの領域
と記憶保護を行なう単位が64kBである(3G+16
M)Bの領域から構成されるものとする。常駐VMの主
記憶領域を規定するためには、常駐VMの絶対アドレス
空間を規定しなければならない。このために、仮想計算
機モニタ(VMM)は、2台の常駐VMに対応して次の
2つの絶対アドレス空間を生成する。まず、例えば、第
1の絶対アドレス空間の0番地から2G番地未満を記憶
保護を行なう単位が4kBの領域に対応付け、2G番地
から5G番地未満を記憶保護を行なう単位が64kBの
領域に対応付け、5G番地から(5G+16M)番地未
満を仮想計算機モニタ(VMM)用の領域として主記憶
装置の記憶保護を行なう単位が64kBの別の領域に対
応付ける。また、例えば、第2の絶対アドレス空間の0
番地から1G番地未満を主記憶装置の記憶保護を行なう
単位が4kBの別の領域に対応付け、1G番地から5G
番地未満をオフライン状態(主記憶装置上の領域に対応
付けられていない状態)にし、5G番地から(5G+1
6M)番地未満を第1の絶対アドレス空間の5G番地か
ら(5G+16M)番地未満と同一の主記憶装置上の記
憶保護を行なう単位が64kBの領域に対応付ける。仮
想計算機モニタ(VMM)は、5G番地から(5G+1
6M)番地未満の各々の絶対アドレス空間の共通領域に
おいて動作する。また、仮想計算機モニタ(VMM)
は、第1の絶対アドレス空間から仮想計算機モニタ(V
MM)の領域を除いた領域を実アドレスが31ビット以
上に拡張された常駐VM上のOSに、第2の絶対アドレ
ス空間から仮想計算機モニタ(VMM)の領域を除いた
領域を実アドレスが31ビットの常駐VM上のOSに与
える。このようにして、記憶保護を行なう単位が異なる
2つの領域から構成される主記憶領域を有する常駐VM
が動作可能な仮想計算機システム(VMS)を提供でき
る。
【0019】(2)第2の作用 1つの仮想空間のサイズの最大値は2GBであって、常
駐VMの絶対アドレス空間のサイズは4GBであるとす
る。このとき常駐VM上のOSは、複数の仮想空間を生
成し、アドレス変換テーブルであるセグメントテーブル
(ST:Segment Table )とページテー
ブル(PT:Page Table)を用いて4GBの
主記憶領域上にマッピングしているものとする。従っ
て、プログラム状態語(PSW:Program St
atus Word )の命令アドレスフィールドが3
1ビットである計算機上の仮想計算機モニタ(VMM)
が非アドレス変換モードのとき、常駐VMの絶対アドレ
ス空間の全体をアクセスすることはできない。
【0020】このため、仮想計算機モニタ(VMM)
は、仮想計算機モニタ(VMM)が存在する仮想空間と
前記OSが作成した仮想空間の内の1つの仮想空間をレ
ジスタ番号に応じて指定する仮想空間リストをアクセス
レジスタを用いて作成する。次に、常駐VM上のOSが
発行した命令のシミュレーションを行なうために仮想計
算機モニタ(VMM)が常駐VMの主記憶領域をアクセ
スする場合には、参照あるいは更新する領域が存在する
OSの仮想空間に対応するレジスタ番号をアクセス命令
に指定して実行する。さらに、仮想計算機モニタ(VM
M)が存在する仮想空間とOSの仮想空間との間でデー
タ転送を要する場合には、2つの仮想空間に対応するレ
ジスタ番号をデータ転送命令に指定して実行する。
【0021】このようにして、仮想計算機モニタ(VM
M)はOSの仮想空間上の領域のアドレスを実アドレス
に変換してアクセスする必要が無くなり、OSの仮想空
間と仮想計算機モニタ(VMM)が存在する仮想空間の
間で直接データ転送を行なうことができる。従って、1
つの仮想空間よりも大きなサイズの絶対アドレス空間を
有するOSの主記憶領域を仮想計算機モニタ(VMM)
が参照及び更新可能な仮想計算機システム(VMS)を
提供できる。
【0022】(3)第3の作用 計算機の絶対アドレスは31ビットであって、主記憶装
置は3GBの領域から構成されるものとする。常駐VM
の主記憶領域を規定するためには、常駐VMの絶対アド
レス空間を規定しなければならない。このために、仮想
計算機モニタ(VMM)は、2台の常駐VMに対応して
次の2つの絶対アドレス空間を生成する。まず、例え
ば、第3の絶対アドレス空間の0番地から1.5G番地
未満を主記憶装置の領域に対応付け、1.5G番地から
(1.5G+16M)番地未満を仮想計算機モニタ(V
MM)用の領域として主記憶装置の別の領域に対応付け
る。また、例えば、第4の絶対アドレス空間の0番地か
ら(1.5G−16M)番地未満を主記憶装置の別の領
域に対応付け、(1.5G−16M)番地から(1.5
G+16M)番地未満の32MBの領域を第3の絶対ア
ドレス空間の(1.5G−16M)番地から(1.5G
+16M)番地未満と同一の主記憶装置の領域に対応付
ける。仮想計算機モニタ(VMM)は、1.5G番地か
ら(1.5G+16M)番地未満の各々の絶対アドレス
空間の共通領域において動作する。また、仮想計算機モ
ニタ(VMM)は、各絶対アドレス空間の0番地から
1.5G番地未満の領域を各常駐VM上のOSに与え
る。このとき、常駐VMの主記憶領域のサイズの総和
(この場合、3G)は、1つの絶対アドレス空間のサイ
ズの最大値(この場合、2G)よりも大きい。また、絶
対アドレス空間上の仮想計算機モニタ(VMM)は同一
の絶対アドレス空間上の常駐VMの主記憶領域を参照お
よび更新できる。このため、絶対アドレス空間を切り替
えることにより、仮想計算機モニタ(VMM)は、任意
の常駐VMの主記憶領域を参照及び更新可能である。さ
らに、各常駐VM上のOSは、絶対アドレス空間の
(1.5G−16M)番地から16MBの領域をOS間
の共通領域として使用できる。
【0023】
【実施例】以下、本発明の5つの実施例を図を用いて詳
細に説明する。
【0024】(A)第1の実施例 図1を用いて、本発明が前提とする計算機構成を説明す
る。図1において、100は命令処理装置、200は入
出力処理装置、300は主記憶装置、400は命令処理
装置100および入出力処理装置200からの要求に従
って主記憶装置300上の命令及びデータにアクセスす
る記憶制御装置である。主記憶装置300には、各常駐
VMの走行を制御する仮想計算機モニタ(VMM)31
0と、常駐VM1の主記憶領域320と、常駐VM2の
主記憶領域330がある。本実施例においても、主記憶
装置300の絶対アドレス空間上に連続して常駐する主
記憶領域を有する仮想計算機(VM)のことを常駐VM
と呼ぶことにする。また、本実施例では、常駐VMの台
数は2台とするが、3台以上であっても良い。さらに、
本実施例においても、特願平2−215300号に開示
された多重絶対アドレス空間方式により、1台の計算機
上に複数の絶対アドレス空間を生成し、常駐VM毎に異
なる絶対アドレス空間を与える。
【0025】命令処理装置100または入出力処理装置
200による主記憶装置300へのアクセスは、複数の
中の1つの絶対アドレス空間を指定するための空間番号
を信号線1000を介して、また、プログラムが指定す
る絶対アドレスを信号線1100を介して記憶制御装置
400に送ることによって行なわれる。記憶制御装置4
00は、指定された絶対アドレス空間と指定された絶対
アドレスとを主記憶装置300の構成単位である16M
B単位の主記憶ユニット(MSU)を特定するMSU番
号とMSU内での変位とに変換して主記憶装置300に
アクセスする。
【0026】この変換のために、記憶制御装置400に
は、絶対アドレスを16MB単位でアドレス付けする主
記憶エレメント(MSE)番号とMSU番号との対応関
係を、絶対アドレス空間毎に格納する浮動アドレスレジ
スタFARがある。MSE番号とは、絶対アドレス空間
を16MB単位に区切って番号付けしたときの番号であ
り、MSU番号とは物理主記憶領域を16MB単位に区
切って番号付けしたときの番号である。本実施例では、
浮動アドレスレジスタFARは、空間番号が0の絶対ア
ドレス空間用の第1のFAR411と空間番号が1の絶
対アドレス空間用の第2のFAR412とから構成され
る。第1のFAR411と第2のFAR412とは、各
々MSE番号に対応してエントリが設けられる。各エン
トリは有効ビット(V)とMSU番号との組からなる。
第iエントリの有効ビット(V)が1のとき、MSE番
号iはこの第iエントリに格納されているMSU番号に
対応付けられている。例えば、第1のFAR411の第
0エントリの有効ビット(V)が1、MSU番号が0の
とき、空間番号が0の絶対アドレス空間のアドレス0か
ら16MBの領域は、MSU番号0の主記憶ユニット
(MSU)に対応付けられている。他方、有効ビット
(V)が0のとき、MSE番号iに対応する絶対アドレ
スの領域は、主記憶装置300の物理的な実体であるM
SUには対応付けられていない状態(以下、本明細書で
は「オフライン状態」という)であることを示す。例え
ば、第1のFAR411の第64エントリ以降の有効ビ
ット(V)が0のとき、空間番号が0の絶対アドレス空
間の1G(=16M×64)以降はオフライン状態であ
ることを示す。
【0027】記憶制御装置400内の選択回路420
は、信号線1000を介して入力した空間番号と、信号
線1100を介して入力した絶対アドレスとから、対応
する浮動アドレスレジスタFARのエントリを選択す
る。選択したエントリの有効ビット(V)が0のとき、
オフライン信号を信号線1200を介して主記憶装置3
00へのアクセスを要求した命令処理装置100または
入出力処理装置200に出力する。一方、有効ビット
(V)が1のとき、選択回路420は、選択したFAR
のエントリのMSU番号を信号線1300により、ま
た、絶対アドレスの16M内での変位を信号線1400
によりアクセス回路430に送る。その結果、アクセス
回路430は、主記憶装置300へのアクセスを行な
う。
【0028】図2を用いて、浮動アドレスレジスタFA
Rの内容を変更するModifyMSE命令(以下、M
MSE命令と略す)について説明する。特願平2−21
5300号に開示されているようにMMSE命令のフォ
ーマットは、命令コードのフィールドと、絶対アドレス
の空間番号とMSE番号とを保持するレジスタ番号を示
すR1フィールドと、有効ビット(V)とMSU番号を
保持するレジスタ番号を示すR2フィールドからなる。
命令処理装置100においてMMSE命令の実行が開始
されると、図1の信号線1500を介してそのMMSE
命令で指定された空間番号、MSE番号、有効ビット
(V)、および、MSU番号が記憶制御装置400内の
更新回路440に入力される。更新回路440は、入力
した空間番号とMSE番号に対応する浮動アドレスレジ
スタFARのエントリに、入力した有効ビット(V)と
MSU番号を書き込む。
【0029】図3および図4を用いて、記憶保護を行な
う単位が異なる2つの領域から構成される主記憶領域を
有する常駐VMが動作可能な仮想計算機システム(VM
S)の作成方法を説明する。
【0030】計算機の絶対アドレスは33ビットであっ
て、主記憶装置300は記憶保護を行なう単位が4kB
である3GBの領域と記憶保護を行なう単位が64kB
である(3GB+16MB)の領域から構成されるもの
とする。なお、本実施例では、記憶保護を行なう単位が
4kBである領域を4kキーの領域と呼び、記憶保護を
行なう単位が64kBである領域を64kキーの領域と
呼ぶ。また、MSEおよびMSUは16MB単位で構成
され、第1のFAR411および第2のFAR412
は、各々321エントリ(本実施例における絶対アドレ
ス空間のサイズである5GB+16MBに相当)で構成
されているものとする。なお、エントリ数は321に限
られるものではなく、例えば、6GB+16MBに相当
する385にしてもよい。
【0031】常駐VMの主記憶領域を規定するために
は、常駐VMの絶対アドレス空間を規定しなければなら
ない。このために、仮想計算機モニタ(VMM)310
は、各々の常駐VMに対応して次の2つの絶対アドレス
空間をMMSE命令を用いて生成する。まず、常駐VM
1の主記憶領域320用に第1の絶対アドレス空間34
0の0番地から2G番地未満を主記憶装置300の4k
キー領域に対応付け、2G番地から5G番地未満を主記
憶装置300の64kキー領域に対応付ける。これは、
仮想計算機モニタ(VMM)310が、MMSE命令の
R1フィールドが示すレジスタに絶対アドレスの空間番
号として0、MSE番号としてi(0≦i≦319)
を、また、R2フィールドが示すレジスタに有効ビット
(V)として1、MSU番号として0≦i≦127なら
ばiを、128≦i≦319ならばi+64を指定して
MMSE命令を発行することにより実現される。この場
合、MMSE命令は320回発行される。次に、仮想計
算機モニタ(VMM)310用に5G番地から(5G+
16M)番地未満を主記憶装置300の別の64kキー
領域に対応付ける。これは、仮想計算機モニタ(VM
M)310が、MMSE命令のR1フィールドが示すレ
ジスタに絶対アドレスの空間番号として0、MSE番号
として320を、また、R2フィールドが示すレジスタ
に有効ビット(V)として1、MSU番号として384
を指定してMMSE命令を発行することにより実現され
る。以上により、第1の絶対アドレス空間340が生成
される(ステップ4100)。
【0032】また、常駐VM2の主記憶領域330用に
第2の絶対アドレス空間350の0番地から1G番地未
満を主記憶装置300の別の4kキー領域に対応付け
る。これは、仮想計算機モニタ(VMM)310が、M
MSE命令のR1フィールドが示すレジスタに絶対アド
レスの空間番号として1、MSE番号としてi(0≦i
≦63)を、また、R2フィールドが示すレジスタに有
効ビット(V)として1、MSU番号としてi+128
を指定してMMSE命令を発行することにより実現され
る。この場合も、MMSE命令は320回発行される。
次に、第2の絶対アドレス空間350の1G番地から5
G番地未満をオフライン状態(主記憶装置上の領域に対
応付けられていない状態)にする。これは、仮想計算機
モニタ(VMM)310が、MMSE命令のR1フィー
ルドが示すレジスタに絶対アドレスの空間番号として
1、MSE番号としてi(64≦i≦319)を、ま
た、R2フィールドが示すレジスタに有効ビット(V)
として0を指定してMMSE命令を発行することにより
実現される。次に、仮想計算機モニタ(VMM)310
用に5G番地から(5G+16M)番地未満を第1の絶
対アドレス空間340の5G番地から(5G+16M)
番地未満と同一の主記憶装置300の64kキー領域に
対応付ける。これは、仮想計算機モニタ(VMM)31
0が、MMSE命令のR1フィールドが示すレジスタに
絶対アドレスの空間番号として1、MSE番号として3
20を、また、R2フィールドが示すレジスタに有効ビ
ット(V)として1、MSU番号として384を指定し
てMMSE命令を発行することにより実現される。以上
により、第2の絶対アドレス空間350が生成される
(ステップ4200)。
【0033】仮想計算機モニタ(VMM)310は、5
G番地から(5G+16M)番地未満の各々の絶対アド
レス空間の共通領域において動作する(ステップ430
0)。
【0034】また、仮想計算機モニタ(VMM)310
は、第1の絶対アドレス空間340から仮想計算機モニ
タ(VMM)310の領域を除いた領域を実アドレスが
31ビット以上に拡張された常駐VM上のOSに、第2
の絶対アドレス空間350から仮想計算機モニタ(VM
M)310の領域を除いた領域を実アドレスが31ビッ
トの常駐VM上のOSに与える(ステップ4400)。
【0035】以上述べたように、本実施例によれば、記
憶保護を行なう単位が異なる2つの領域から構成される
主記憶領域を有する常駐VMが動作可能な仮想計算機シ
ステム(VMS)を提供できる。
【0036】また、記憶保護を行なう単位が異なる2つ
の領域から構成される主記憶領域を有する常駐VMを複
数台生成可能であることも明らかであろう。また、本実
施例によれば、記憶保護を行なう単位が異なる2つの領
域から構成される主記憶領域を有する常駐VMと、記憶
保護を行なう単位が1つの主記憶領域を有する常駐VM
とを、共存させることも可能である。また、本実施例で
は常駐VM1における記憶保護を行なう単位が4kBの
領域と64kBの領域の境界を絶対アドレス2Gとした
が、16M単位で任意の境界を設定できることは明らか
であろう。さらに、記憶保護を行なう単位が4kBと6
4kBに限定されるものではないことも明らかであろ
う。
【0037】(B)第2の実施例 図5および図6を用いて、1つの仮想空間のサイズの最
大値を超えるサイズの絶対アドレス空間を有するOSの
主記憶領域の参照及び更新方法を説明する。図5は、本
実施例が前提とするアドレス変換処理に係るハードウェ
ア構成を示している。これは、次の2点を特徴とする。
【0038】(1)本実施例では、1つの仮想空間のサ
イズの最大値は2GBであって、常駐VM1の絶対アド
レス空間のサイズは4GBであるとする。このように、
本実施例では、常駐VM1の絶対アドレス空間のサイズ
の方が、仮想空間のサイズの最大値よりも大きい。
【0039】(2)前述の特開昭56−140576号
公報に開示されたアドレス制御方式は、仮想計算機シス
テム(VMS)に対する適用を考慮していない。このた
め、複数のOS間のデータ転送については、言及してい
ない。これに対して、本実施例では、後述のように仮想
計算機モニタ(VMM)310の仮想空間(ホスト仮想
空間)と常駐VM1上のOSが作成した仮想空間(ゲス
ト仮想空間)の間でのデータ転送を行なう。
【0040】次に、図5によりアドレス変換処理に係る
ハードウェア構成を説明する。図5において、110は
命令フェッチ回路であり、プログラム状態語(PSW)
120内の命令アドレスフィールド(NIA)が保持す
るアドレスを保持する主記憶装置300上の命令をフェ
ッチする。130はフェッチした命令を保持する命令レ
ジスタである。特開昭56−140576号公報に開示
されたアクセスレジスタ(AR:Access Reg
ister)140は、汎用レジスタ150の各々に対
応して仮想空間のセグメントテーブル記述子(STD:
Segment TableDescriptor)を
保持する。ここで、セグメントテーブル記述子(ST
D)は、セグメントテーブル起点アドレス(STO:S
egment Table Origin)と、セグメ
ントテーブルの長さフィールドから構成される。
【0041】アドレス変換回路160は入力された仮想
アドレスを入力されたセグメントテーブル記述子(ST
D)が指定するセグメントテーブルとページテーブルに
従って絶対アドレスに変換する。命令レジスタ130に
格納された命令が2つの領域間でデータ転送を実行する
ムーブロング(MVCL)命令のとき、第1の絶対アド
レスレジスタ170には命令レジスタ130のR1フィ
ールドが示す汎用レジスタが保持する仮想アドレスに対
応する絶対アドレスが格納され、第2の絶対アドレスレ
ジスタ180には命令レジスタ130のR2フィールド
が示す汎用レジスタが保持する仮想アドレスに対応する
絶対アドレスが格納される。さらに、データ転送回路1
90は、第1の絶対アドレスレジスタ170と第2の絶
対アドレスレジスタ180が示す領域間でR1の次の汎
用レジスタが示すバイト数だけ、データ転送を行なう回
路である。
【0042】常駐VMの主記憶領域の参照及び更新に伴
うアドレス変換処理は、図6に従って以下のように行な
われる。まず、仮想計算機モニタ(VMM)310は、
仮想計算機モニタ(VMM)310自身用にホスト仮想
空間312を生成(ステップ6100)し、アドレス変
換モードで走行可能にする。ただし、このホスト仮想空
間312の各ページは仮想計算機モニタ(VMM)31
0の領域に常駐するように作成する。次に、常駐VMの
生成を第1の実施例の場合と同様に行ない、常駐VM1
をディスパッチ(ステップ6200)する。ディスパッ
チにより、常駐VM1上のOSの走行が開始され、OS
が命令処理装置(100)では直接実行できない命令、
即ち、仮想計算機モニタ(VMM)310のシミュレー
ション処理を必要とする命令の実行をOSが要求(ステ
ップ6300)する場合には、従来技術により、仮想計
算機モニタ(VMM)310へ制御が渡る(ステップ6
400)。
【0043】仮想計算機モニタ(VMM)310は、こ
のOSの命令を次のようにしてシミュレーションする。
命令のシミュレーションは、OSが命令のオペランドで
指定したゲスト仮想空間321上のフィールドを仮想計
算機モニタ(VMM)310のテーブルに格納したり、
逆に、仮想計算機モニタ(VMM)310のテーブルに
格納されているフィールドをOSが命令のオペランドで
指定したゲスト仮想空間321上のフィールドに格納す
ることによって行なわれる。そして、この格納のために
前記のMVCL命令が実行される。
【0044】このため、アクセスレジスタ(AR)0に
仮想計算機モニタ(VMM)310が存在するホスト仮
想空間312のセグメントテーブル記述子(STD)を
設定し、アクセスレジスタ(AR)1には命令のシミュ
レーションのためにアクセスするOSのゲスト仮想空間
321のセグメントテーブル記述子(STD)を設定
(ステップ6500)する。その後、OSが命令のオペ
ランドで指定したゲスト仮想空間321上のフィールド
を仮想計算機モニタ(VMM)310のテーブルに格納
する場合には、MVCL命令のR1フィールドにOSの
命令のオペランドアドレスを設定し、R2フィールドに
仮想計算機モニタ(VMM)310のテーブルアドレス
を設定する。逆に、仮想計算機モニタ(VMM)310
のテーブルに格納されているフィールドをOSが命令の
オペランドで指定したゲスト仮想空間321上のフィー
ルドに格納する場合には、R1とR2フィールドの設定
を逆に行なう。次に、OSが発行した命令のシミュレー
ションを行なう(ステップ6600)ために、データ転
送命令MVCLを実行する。
【0045】MVCL命令実行の結果、OSが命令のオ
ペランドで指定したゲスト仮想空間321上のフィール
ドを仮想計算機モニタ(VMM)310のテーブルに格
納する場合、アドレス変換回路160は、OSの命令の
オペランドアドレスをアクセスレジスタ(AR)1に格
納されているOSのセグメントテーブル記述子(ゲスト
STD)に従って絶対アドレスに変換し、第1の絶対ア
ドレスレジスタ170に格納する。また、アドレス変換
回路160は、仮想計算機モニタ(VMM)310のテ
ーブルアドレスをアクセスレジスタ(AR)0に格納さ
れている仮想計算機モニタ(VMM)310のセグメン
トテーブル記述子(ホストSTD)に従って絶対アドレ
スに変換し、第2の絶対アドレスレジスタ180に格納
する。その後、第1の絶対アドレスレジスタ170が絶
対アドレスを示すフィールドから第2の絶対アドレスレ
ジスタ180が絶対アドレスを示すフィールドにデータ
転送が行なわれる。逆に、仮想計算機モニタ(VMM)
310のテーブルに格納されているフィールドをOSが
命令のオペランドで指定したゲスト仮想空間上のフィー
ルドに格納することも、同様に行なわれる。
【0046】データ転送命令の実行に際して、ページフ
ォルトが発生した場合、仮想計算機モニタ(VMM)3
10は絶対アドレス空間上に常駐しているのでページフ
ォルトの発生要因は常駐VM上のOSにある。このた
め、仮想計算機モニタ(VMM)310は、常駐VM上
のOSにページフォルト割込みを報告する。シミュレー
ション処理の終了後には、常駐VMをディスパッチする
か判定(ステップ6700)し、ディスパッチする常駐
VMがない場合には常駐VMの走行を中断し、ディスパ
ッチする常駐VMがある場合には、ステップ6200へ
戻る。
【0047】以上述べたように、本実施例によれば、1
つの仮想空間よりも大きなサイズの絶対アドレス空間を
有するOSの主記憶領域を仮想計算機モニタ(VMM)
が参照及び更新可能な仮想計算機システム(VMS)を
提供できる。
【0048】(C)第3の実施例 図7、図8、図9、および、図10を用いて、常駐VM
の主記憶領域のサイズの総和が、1つの絶対アドレス空
間のサイズの最大値(31ビットの場合では2GB)よ
りも大きな仮想計算機システム(VMS)の構成方法を
説明する。本実施例においても、第1の実施例と同様に
図1に示した計算機構成を前提とし、図2に示したMo
dify MSE(MMSE)命令を用いて浮動アドレ
スレジスタFARの更新が可能であるものとする。ま
た、計算機の絶対アドレスは31ビットであって、主記
憶装置300は3GBの領域から構成されるものとす
る。また、MSEおよびMSUは16MB単位で構成さ
れ、第1のFAR411および第2のFAR412は、
各々128エントリ(絶対アドレス空間の最大のサイズ
である2GBに相当)で構成されているものとする。
【0049】まず図9を用いて、仮想計算機モニタ(V
MM)310および各常駐VMへの記憶領域の分配に関
する情報を保持する構成情報テーブル311について説
明する。仮想計算機モニタ(310)内の構成情報テー
ブル311の各エントリは、VM番号と領域長と共通領
域の開始アドレスと共通領域長から構成される。ただ
し、VM番号0は、仮想計算機モニタ(VMM)310
を表わす。図9の構成情報テーブル311は、仮想計算
機モニタ(VMM)310の領域長は16MBであり、
常駐VM1と常駐VM2の領域長は共に1.5GBであ
り、常駐VM1と常駐VM2の各々の絶対アドレス空間
の(1.5G−16M)番地から16MBの領域は常駐
VM間の共通領域であることを示している。この構成情
報テーブル311の各エントリの値は、仮想計算機シス
テム(VMS)のシステムゼネレーション時に、パラメ
ータで指定することも可能であるし、また、対応するO
Sを動作させる前に仮想計算機モニタ(VMM)310
が提供するコマンドにより設定することも可能である。
【0050】常駐VMの主記憶領域を規定するために
は、常駐VMの絶対アドレス空間を規定しなければなら
ない。このために、仮想計算機モニタ(VMM)310
は、図9の構成情報テーブル311を参照しながら各々
の常駐VMに対応して次の2つの絶対アドレス空間をM
MSE命令を用いて生成する。
【0051】以下に、図7、図8を参照して主記憶領域
のマッピング処理を説明する。まず、常駐VM1の主記
憶領域320用に第3の絶対アドレス空間360の0番
地から1.5G番地未満を主記憶装置300の領域に対
応付ける。これは、仮想計算機モニタ(VMM)310
が、MMSE命令のR1フィールドが示すレジスタに絶
対アドレスの空間番号として0、MSE番号としてi
(0≦i≦95)を、また、R2フィールドが示すレジ
スタに有効ビット(V)として1、MSU番号としてM
SE番号iを指定してMMSE命令を発行することによ
り実現される。次に、仮想計算機モニタ(VMM)31
0用に1.5G番地から(1.5G+16M)番地未満
を主記憶装置300の別の領域に対応付ける。これは、
仮想計算機モニタ(VMM)310が、MMSE命令の
R1フィールドが示すレジスタに絶対アドレスの空間番
号として0、MSE番号として96を、また、R2フィ
ールドが示すレジスタに有効ビット(V)として1、M
SU番号として191を指定してMMSE命令を発行す
ることにより実現される。また、(1.5G+16M)
番地から2G番地未満をオフライン状態にする。これ
は、仮想計算機モニタ(VMM)310が、MMSE命
令のR1フィールドが示すレジスタに絶対アドレスの空
間番号として0、MSE番号としてi(97≦i≦12
7)を、また、R2フィールドが示すレジスタに有効ビ
ット(V)として0を指定してMMSE命令を発行する
ことにより実現される。以上により、第3の絶対アドレ
ス空間360が生成される(ステップ8100)。
【0052】また、常駐VM2の主記憶領域330用に
第4の絶対アドレス空間370の0番地から(1.5G
−16M)番地未満を主記憶装置300の別の領域に対
応付け、(1.5G−16M)番地から1.5G番地未
満の16MBの領域を第3の絶対アドレス空間360の
(1.5G−16M)番地から1.5G番地未満と同一
の主記憶装置300の領域に対応付ける。これは、仮想
計算機モニタ(VMM)310が、MMSE命令のR1
フィールドが示すレジスタに絶対アドレスの空間番号と
して1、MSE番号としてi(0≦i≦95)を、ま
た、R2フィールドが示すレジスタに有効ビット(V)
として1、MSU番号として0≦i≦94ならばi+9
6、i=95のとき95を指定してMMSE命令を発行
することにより実現される。次に、仮想計算機モニタ
(VMM)310用に1.5G番地から(1.5G+1
6M)番地未満を第3の絶対アドレス空間360の1.
5G番地から(1.5G+16M)番地未満と同一の主
記憶装置300の領域に対応付ける。これは、仮想計算
機モニタ(VMM)310が、MMSE命令のR1フィ
ールドが示すレジスタに絶対アドレスの空間番号として
1、MSE番号として96を、また、R2フィールドが
示すレジスタに有効ビット(V)として1、MSU番号
として191を指定してMMSE命令を発行することに
より実現される。また、(1.5G+16M)番地から
2G番地未満をオフライン状態にする。これは、仮想計
算機モニタ(VMM)310が、MMSE命令のR1フ
ィールドが示すレジスタに絶対アドレスの空間番号とし
て1、MSE番号としてi(97≦i≦127)を、ま
た、R2フィールドが示すレジスタに有効ビット(V)
として0を指定してMMSE命令を発行することにより
実現される。以上により、第4の絶対アドレス空間37
0が生成される(ステップ8200)。
【0053】仮想計算機モニタ(VMM)310は、
1.5G番地から(1.5G+16M)番地未満の各々
の絶対アドレス空間のMSE番号が96の共通領域にお
いて動作する(ステップ8300)。また、仮想計算機
モニタ(VMM)310は、各絶対アドレス空間の0番
地から1.5G番地未満の領域を各常駐VM上のOSに
与える(ステップ8400)。即ち、特願平2−215
300号に示されたように、仮想計算機モニタ(VM
M)310は、常駐VM1をディスパッチするときに
は、常駐VM1の主記憶領域が存在する絶対アドレス空
間の空間番号である0を指定してVM起動命令を発行す
る。この結果、図1の空間番号線1000には0が送ら
れ、第1のFAR411が有効化される。また、常駐V
M2をディスパッチするときには、常駐VM2の主記憶
領域が存在する絶対アドレス空間の空間番号である1を
指定してVM起動命令を発行する。この結果、空間番号
線1000は1が送られ、第2のFAR412が有効化
される(ステップ8500)。このディスパッチによ
り、常駐VM上のOSが走行を開始する(ステップ85
50)。
【0054】また、入出力処理装置200においても特
願平2−215300号に示されたように、主記憶アク
セス要求時に、アクセス対象の空間番号を空間番号線1
000に送り、第1のFAR411あるいは第2のFA
R412の一方を有効化する。常駐VM上のOSによる
主記憶アクセスに関しては、仮想計算機モニタ(VM
M)310の領域を保護するために主記憶アドレスの上
限チェックのみ行なえば良い。即ち、常駐VM上のOS
による主記憶アクセスに対しては、絶対アドレスが1.
5G未満であることを命令処理装置100および入出力
処理装置200において判定し、1.5G以上である場
合にはアクセス例外の割込みを発生させる。
【0055】常駐VM上のOSが走行中に命令処理装置
100では直接実行されない命令を発行したときには、
走行していた常駐VMの主記憶領域が存在する絶対アド
レス空間上の、仮想計算機モニタ(VMM)310に制
御が渡る(ステップ8600)。このとき走行していた
常駐VM上のOSの主記憶領域と仮想計算機モニタ(V
MM)310は、同一の絶対アドレス空間に存在する。
このため、仮想計算機モニタ(VMM)310は絶対ア
ドレス空間を切り替えることなく、常駐VM上のOSの
主記憶領域を参照あるいは更新しながら常駐VM上のO
Sが発行した命令のシミュレーションを実行できる。
【0056】また、常駐VM上のOSが走行中発生した
別の常駐VMに対する割込みは走行していた常駐VMの
主記憶領域が存在する絶対アドレス空間上の仮想計算機
モニタ(VMM)310に対して実行される。この場
合、割込みをシミュレーションするために、まず、図1
0に示すChange Space命令により、絶対ア
ドレス空間をシミュレーション対象の常駐VMが存在す
る絶対アドレス空間に切り替える。Change Sp
ace命令は、図10に示すように命令コードのフィー
ルドと、絶対アドレスの空間番号を保持するレジスタ番
号を示すR1フィールドからなる。命令処理装置100
において、Change Space命令の実行が開始
されると、命令処理装置100は、図1の空間番号線1
000に命令で指定された空間番号を送る。その結果、
命令処理装置100は、シミュレーション対象の常駐V
Mの主記憶領域へアクセス可能となる。この結果、仮想
計算機モニタ(VMM)310は、常駐VM上のOSに
対する割込みのシミュレーションを実行(ステップ87
00)できる。このとき、仮想計算機モニタ(VMM)
310は、各絶対アドレス空間において同一のロケーシ
ョンに存在する。このため、絶対アドレス空間を切り替
えても、仮想計算機モニタ(VMM)310は継続して
逐次、命令を実行可能である。また、各絶対アドレス空
間の(1.5G−16M)番地から1.5G番地未満の
16Mの領域は、同一の主記憶装置300の領域に対応
付けられている。このため、例えば、仮想計算機モニタ
(VMM)310が各常駐VM上のOSにOS間共通領
域のアドレスを通知する(ステップ8800)ことによ
り、常駐VM1と常駐VM2は、この共通領域を用いて
OS間の通信を行なうことができる。そのあと、仮想計
算機(VM)をディスパッチする必要が有るか否かを判
定(ステップ8900)し、必要があるならば、ステッ
プ8500のディスパッチ処理にもどる。また、常駐V
Mをディスパッチする必要がないならば、常駐VMの操
作を終了する。
【0057】以上述べたように、本実施例によれば、常
駐VMの主記憶領域のサイズの総和が、1つの絶対アド
レス空間のサイズの最大値よりも大きな仮想計算機シス
テム(VMS)を提供できる。
【0058】また、本実施例によれば、各々が異なる絶
対アドレス空間上に存在する常駐VMの主記憶領域を、
仮想計算機モニタ(VMM)が参照および更新可能な仮
想計算機システム(VMS)を提供できる。
【0059】本実施例では、常駐VM間の共通領域を仮
想計算機システム(VMS)のゼネレーションあるいは
仮想計算機モニタ(VMM)310が提供するコマンド
により設定するものとした。しかし、OSが動作開始後
にOSから仮想計算機モニタ(VMM)310に共通領
域の開始アドレスと共通領域長を通知することにより、
仮想計算機モニタ(VMM)310が構成情報テーブル
311およびFARを再設定して常駐VM間の共通領域
を設定することも可能であることは明らかであろう。
【0060】(D)第4の実施例 図11を用いて、各常駐VMの主記憶領域の任意の領域
を常駐VM間の共通領域として定義する方法を説明す
る。図11の第5の絶対アドレス空間380と第6の絶
対アドレス空間385は、第3の実施例で参照した図7
の第3の絶対アドレス空間360と第4の絶対アドレス
空間370にそれぞれ対応しているが、次の点のみが異
なる。
【0061】第5の絶対アドレス空間380と第6の絶
対アドレス空間385内のVM間の共通領域は、各絶対
アドレス空間において異なる絶対アドレスの領域に存在
する。即ち、第1のFAR411の第95エントリと第
2のFAR412の第1エントリが共通領域を定義して
おり、両エントリの有効ビット(V)は共に1、MSU
番号は共に95である。仮想計算機モニタ(VMM)3
10が、図11に示したように第1のFAR411と第
2のFAR412に値を設定することにより、第5の絶
対アドレス空間380の(1.5G−16M)番地から
16MBの領域と第6の絶対アドレス空間385の16
M番地から16MBの領域を常駐VM間の共通領域とし
て使用可能になる。
【0062】以上述べたように、本実施例によれば、任
意の領域を複数の常駐VM間の共通領域として定義可能
な仮想計算機システム(VMS)を提供できる。
【0063】(E)第5の実施例 図12を用いて、各絶対アドレス空間上に各々有る仮想
計算機モニタ(VMM)310の領域の絶対アドレスが
各絶対アドレス空間において異なる仮想計算機システム
(VMS)の作成方法を説明する。図12の第7の絶対
アドレス空間390と第8の絶対アドレス空間395
は、第3の実施例で参照した図7の第3の絶対アドレス
空間360と第4の絶対アドレス空間370にそれぞれ
対応しているが、次の点のみが異なる。
【0064】第7の絶対アドレス空間390における仮
想計算機モニタ(VMM)310−1のロケーション
と、第8の絶対アドレス空間395における仮想計算機
モニタ(VMM)310−2のロケーションは互いに異
なり、また、主記憶装置300の異なる領域にマッピン
グされる。このため、第7の絶対アドレス空間390で
は第1のFAR411の第96エントリであるMSU番
号が191の領域に仮想計算機モニタ(VMM)310
−1が常駐し、第8の絶対アドレス空間395では第2
のFAR412の第127エントリであるMSU番号が
192の領域に仮想計算機モニタ(VMM)310−2
が常駐する。
【0065】仮想計算機モニタ(VMM)310−1は
常駐VM1のサービスのみを行ない、仮想計算機モニタ
(VMM)310−2は常駐VM2のサービスのみを行
なうようにする。このため、命令処理装置100が実行
対象とする仮想計算機モニタ(VMM)310−1と仮
想計算機モニタ(VMM)310−2との切り替えを、
図13に示したChange VMM命令により実現す
る。Change VMM命令は、図13に示すように
命令コードのフィールドと、レジスタ番号を示すR1フ
ィールドからなり、R1フィールドが指定するレジスタ
は、絶対アドレスの空間番号と次に実行する命令アドレ
スを示すNIAフィールドと引継ぎ情報エリアが格納さ
れた領域の主記憶アドレスを保持する。
【0066】命令処理装置100において、Chang
e VMM命令の実行が開始されると、命令処理装置1
00は、図1の空間番号線1000に命令で指定された
空間番号を送る。また、命令処理装置100は、命令処
理装置100内のプログラム状態語(PSW:Program
Status Word )120が保持する次に実行する命令アド
レスのフィールドに命令で指定されたNIAフィールド
の値を格納する。さらに、命令処理装置100は、命令
で指定された引継ぎ情報エリアの内容を命令処理装置1
00内のレジスタに格納する。このChange VM
M命令実行の結果、命令が指定する絶対アドレス空間が
有効化され、また、Change VMM命令が指定し
たアドレスに格納された仮想計算機モニタ(VMM)3
10の命令が逐次実行が開始される。さらに、実行が開
始された仮想計算機モニタ(VMM)310は、命令処
理装置100内のレジスタに格納された引継ぎ情報エリ
アの内容を参照しながら、この仮想計算機モニタ(VM
M)310がサービスの対象とする常駐VMの処理を行
なう。
【0067】以上述べたように、本実施例によれば、各
絶対アドレス空間上に各々有る仮想計算機モニタ(VM
M)310の領域の絶対アドレスが各絶対アドレス空間
において異なる仮想計算機システム(VMS)を提供で
きる。
【0068】
【発明の効果】本発明によれば、記憶保護を行なう単位
が異なる2つの領域から構成される主記憶領域を有する
常駐VMが動作可能な仮想計算機システム(VMS)を
提供できる。
【0069】また、1つの仮想空間よりも大きなサイズ
の絶対アドレス空間を有するOSの主記憶領域を仮想計
算機モニタ(VMM)が参照及び更新可能な仮想計算機
システム(VMS)を提供できる。
【0070】また、常駐VMの主記憶領域のサイズの総
和が、1つの絶対アドレス空間のサイズの最大値よりも
大きな仮想計算機システム(VMS)を提供できる。
【0071】また、各常駐VMが絶対アドレス空間を有
する仮想計算機システム(VMS)において、仮想計算
機モニタ(VMM)が常駐VMの主記憶領域を参照およ
び更新可能な仮想計算機システム(VMS)を提供でき
る。
【0072】さらに、任意の主記憶領域を複数の常駐V
M間の共通領域として定義可能な仮想計算機システム
(VMS)を提供できる。
【図面の簡単な説明】
【図1】計算機構成の説明図である。
【図2】Modify MSE命令の説明図である。
【図3】本発明の第1の実施例における主記憶領域のマ
ッピングの説明図である。
【図4】本発明の第1の実施例における主記憶領域のマ
ッピング処理のフローチャートである。
【図5】本発明の第2の実施例におけるアドレス変換の
説明図である。
【図6】本発明の第2の実施例におけるアドレス変換処
理のフローチャートである。
【図7】本発明の第3の実施例における主記憶領域のマ
ッピングの説明図である。
【図8】本発明の第3の実施例における主記憶領域のマ
ッピング処理のフローチャートである。
【図9】本発明の第3の実施例における構成情報テーブ
ルの説明図である。
【図10】本発明によるChange Space命令
の説明図である。
【図11】本発明の第4の実施例における主記憶領域の
マッピングの説明図である。
【図12】本発明の第5の実施例における主記憶領域の
マッピングの説明図である。
【図13】本発明によるChange VMM命令の説
明図である。
【符号の説明】
100 命令処理装置 140 アクセスレジスタ 200 入出力処理装置 300 主記憶装置 310 仮想計算機モニタ(VMM) 311 構成情報テーブル 320 常駐VM1の主記憶領域 330 常駐VM2の主記憶領域 400 記憶制御装置 411 第1のFAR 412 第2のFAR 420 選択回路 430 アクセス回路 440 更新回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 池ヶ谷 直子 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 原口 政敏 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 渡辺 毅 神奈川県秦野市堀山下1番地 株式会社日 立製作所神奈川工場内

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 記憶保護を行なう単位が異なる第1と第
    2の領域から構成される主記憶装置と制御プログラムを
    備える1台の計算機上で複数のOSが走行する計算機シ
    ステムにおいて、前記計算機に複数組の浮動アドレスレ
    ジスタを設け、前記制御プログラムは、第1のOSの第
    1絶対アドレス空間の前記第1の領域と前記主記憶装置
    の第1の領域との対応関係および第1絶対アドレス空間
    の前記第2の領域と前記主記憶装置の第2の領域との対
    応関係を第1組の前記浮動アドレスレジスタに登録し、
    以下同様にして、第2、第3、……の各OSと前記主記
    憶装置との前記対応関係を第2組、第3組、……の各前
    記浮動アドレスレジスタに登録することを特徴とする複
    数OS走行計算機システムにおける主記憶装置の領域割
    当て方法。
  2. 【請求項2】 請求項1記載の複数OS走行計算機シス
    テムにおける主記憶装置の領域割当て方法において、前
    記主記憶装置の領域および前記各OSの絶対アドレス空
    間を複数の構成単位に分割し各構成単位に番号を付与
    し、前記制御プログラムは、前記絶対アドレス空間と前
    記主記憶装置での前記第1の領域、第2の領域に関する
    対応関係を、絶対アドレス空間の構成単位に付与された
    番号と主記憶装置の構成単位に付与された番号との対応
    関係として浮動アドレスレジスタに登録することにより
    行なうことを特徴とする複数OS走行計算機システムに
    おける主記憶装置の領域割当て方法。
  3. 【請求項3】 請求項2記載の複数OS走行計算機シス
    テムにおける主記憶装置の領域割当て方法において、前
    記主記憶装置の領域および前記各OSの絶対アドレス空
    間を複数の構成単位に分割し各構成単位に番号を付与
    し、前記制御プログラムは、前記絶対アドレス空間と前
    記主記憶装置での前記第1の領域、第2の領域に関する
    対応関係の登録を、絶対アドレス空間の構成単位に付与
    された番号を前記浮動アドレスレジスタのエントリ番号
    とし、該構成単位に対応する主記憶装置の構成単位に付
    与された番号を該エントリ番号で指定される浮動アドレ
    スレジスタに登録することにより行なうことを特徴とす
    る複数OS走行計算機システムにおける主記憶装置の領
    域割当て方法。
  4. 【請求項4】 主記憶装置と制御プログラムを備える1
    台の計算機上で複数のOSが走行する計算機システムに
    おいて、アクセスレジスタを設け、前記制御プログラム
    は、該アクセスレジスタ上に前記制御プログラムが存在
    する仮想空間と前記各OSが作成した仮想空間のセグメ
    ントテーブル記述子からなる仮想空間リストを作成し、
    仮想アドレスにアクセスするとき、該仮想アドレスが属
    する仮想空間のセグメントテーブル記述子をアクセスレ
    ジスタ番号を指定することにより求め、求められたセグ
    メントテーブル記述子により前記仮想アドレスに対応す
    る絶対アドレスを求め、仮想アドレスに対応する主記憶
    装置の領域をアクセスすることを特徴とする複数OS走
    行計算機システムにおける主記憶装置の領域割当て方
    法。
  5. 【請求項5】 請求項4記載の複数OS走行計算機シス
    テムにおける主記憶装置の領域割当て方法において、少
    なくとも1つの前記OSの絶対アドレス空間のサイズは
    1つの仮想空間のサイズの最大値を超えることを特徴と
    する複数OS走行計算機システムにおける主記憶装置の
    領域割当て方法。
  6. 【請求項6】 主記憶装置と制御プログラムを備える1
    台の計算機上で複数のOSが走行する計算機システムに
    おいて、前記計算機に複数組の浮動アドレスレジスタを
    設け、前記制御プログラムは、前記各OSの絶対アドレ
    ス空間の領域と前記主記憶装置の領域との対応関係を各
    OS対応の組の浮動アドレスレジスタに登録し、前記各
    OSの絶対アドレス空間における前記制御プログラムに
    与えられた領域に対応する前記主記憶装置の領域を唯一
    つの領域として前記各OSに共通の前記制御プログラム
    用の領域とすることを特徴とする複数OS走行計算機シ
    ステムにおける主記憶装置の領域割当て方法。
  7. 【請求項7】 主記憶装置と制御プログラムを備える1
    台の計算機上で複数のOSが走行する計算機システムに
    おいて、前記計算機に複数組の浮動アドレスレジスタを
    設け、前記制御プログラムは、前記各OSの絶対アドレ
    ス空間の領域と前記主記憶装置の領域との対応関係を各
    OS対応の組の浮動アドレスレジスタに登録し、前記各
    OSの絶対アドレス空間における前記制御プログラムに
    与えられた領域に対応する前記主記憶装置の領域を唯一
    つの領域として前記各OSに共通の前記制御プログラム
    用の領域とし、制御プログラム実行中に有効となるOS
    の絶対アドレス空間に絶対アドレス空間を変更すること
    を特徴とする複数OS走行計算機システムにおける主記
    憶装置の領域割当て方法。
  8. 【請求項8】 主記憶装置と制御プログラムを備える1
    台の計算機上で複数のOSが走行する計算機システムに
    おいて、前記計算機に複数組の浮動アドレスレジスタを
    設け、前記制御プログラムは、前記各OSの絶対アドレ
    ス空間の領域と前記主記憶装置の領域との対応関係を各
    OS対応の組の浮動アドレスレジスタに登録し、前記各
    OSの絶対アドレス空間における前記制御プログラムに
    与えられた領域に対応する前記主記憶装置の領域を唯一
    つの領域として前記各OSに共通の前記制御プログラム
    用の領域とし、走行状態にあるOSは、OS走行状態か
    ら制御プログラム実行状態に変わるとき、該OSの絶対
    アドレス空間上にある制御プログラムに制御を渡すこと
    を特徴とする複数OS走行計算機システムにおける主記
    憶装置の領域割当て方法。
  9. 【請求項9】 主記憶装置と制御プログラムを備える1
    台の計算機上で複数のOSが走行する計算機システムに
    おいて、前記計算機に複数組の浮動アドレスレジスタを
    設け、前記制御プログラムは、前記各OSの絶対アドレ
    ス空間の領域と前記主記憶装置の領域との対応関係を各
    OS対応の組の浮動アドレスレジスタに登録し、前記各
    OSの絶対アドレス空間における一部の領域に対応する
    前記主記憶装置の領域を唯一つの領域として前記各OS
    の共通領域とすることを特徴とする複数OS走行計算機
    システムにおける主記憶装置の領域割当て方法。
  10. 【請求項10】 請求項9記載の複数OS走行計算機シ
    ステムにおける主記憶装置の領域割当て方法において、
    前記制御プログラムは、前記共通領域のアドレスとサイ
    ズを前記OSに通知することを特徴とする複数OS走行
    計算機システムにおける主記憶装置の領域割当て方法。
  11. 【請求項11】 記憶保護を行なう単位が異なる第1と
    第2の領域から構成される主記憶装置と制御部を備える
    1台の計算機上で複数のOSが走行する計算機におい
    て、前記計算機に複数組の浮動アドレスレジスタを設
    け、前記制御部は、第1のOSの第1絶対アドレス空間
    の前記第1の領域と前記主記憶装置の第1の領域との対
    応関係および第1絶対アドレス空間の前記第2の領域と
    前記主記憶装置の第2の領域との対応関係を第1組の前
    記浮動アドレスレジスタに登録し、以下同様にして、第
    2、第3、……の各OSと前記主記憶装置との前記対応
    関係を第2組、第3組、……の各前記浮動アドレスレジ
    スタに登録する手段を備え、主記憶装置の領域割当てを
    可能としたことを特徴とする複数OS走行計算機。
  12. 【請求項12】 請求項11記載の複数OS走行計算機
    において、前記主記憶装置の領域および前記各OSの絶
    対アドレス空間を複数の構成単位に分割し各構成単位に
    番号を付与し、前記制御部は、前記絶対アドレス空間と
    前記主記憶装置での前記第1の領域、第2の領域に関す
    る対応関係を、絶対アドレス空間の構成単位に付与され
    た番号と主記憶装置の構成単位に付与された番号との対
    応関係として浮動アドレスレジスタに登録する手段を備
    え、主記憶装置の領域割当てを可能としたことを特徴と
    する複数OS走行計算機。
  13. 【請求項13】 請求項12記載の複数OS走行計算機
    において、前記制御部は、前記絶対アドレス空間と前記
    主記憶装置での前記第1の領域、第2の領域に関する対
    応関係の登録を、絶対アドレス空間の構成単位に付与さ
    れた番号を前記浮動アドレスレジスタのエントリ番号と
    し、該構成単位に対応する主記憶装置の構成単位に付与
    された番号を該エントリ番号で指定される浮動アドレス
    レジスタに登録する手段を備え、主記憶装置の領域割当
    てを可能としたことを特徴とする複数OS走行計算機。
  14. 【請求項14】 主記憶装置と制御部を備える1台の計
    算機上で複数のOSが走行する計算機において、アクセ
    スレジスタを設け、前記制御部は、該アクセスレジスタ
    上に前記制御部用の仮想空間と前記各OSが作成した仮
    想空間のセグメントテーブル記述子からなる仮想空間リ
    ストを作成する手段と、仮想アドレスにアクセスすると
    き、該仮想アドレスが属する仮想空間のセグメントテー
    ブル記述子をアクセスレジスタ番号を指定することによ
    り求め、求められたセグメントテーブル記述子により前
    記仮想アドレスに対応する絶対アドレスを求め、仮想ア
    ドレスに対応する主記憶装置の領域をアクセスする手段
    を備えることを特徴とする複数OS走行計算機。
  15. 【請求項15】 請求項14記載の複数OS走行計算機
    において、少なくとも1つの前記OSの絶対アドレス空
    間のサイズは1つの仮想空間のサイズの最大値を超える
    ことを特徴とする複数OS走行計算機。
  16. 【請求項16】 主記憶装置と制御部を備える1台の計
    算機上で複数のOSが走行する計算機において、前記計
    算機に複数組の浮動アドレスレジスタを設け、前記制御
    部は、前記各OSの絶対アドレス空間の領域と前記主記
    憶装置の領域との対応関係を各OS対応の組の浮動アド
    レスレジスタに登録し、前記各OSの絶対アドレス空間
    における前記制御部に与えられた領域に対応する前記主
    記憶装置の領域を唯一つの領域として前記各OSに共通
    の前記制御部用の領域として登録する手段を備えること
    を特徴とする複数OS走行計算機システム。
  17. 【請求項17】 主記憶装置と制御部を備える1台の計
    算機上で複数のOSが走行する計算機において、前記計
    算機に複数組の浮動アドレスレジスタを設け、前記制御
    部は、前記各OSの絶対アドレス空間の領域と前記主記
    憶装置の領域との対応関係を各OS対応の組の浮動アド
    レスレジスタに登録し、前記各OSの絶対アドレス空間
    における前記制御部に与えられた領域に対応する前記主
    記憶装置の領域を唯一つの領域として前記各OSに共通
    の前記制御部用の領域として登録する手段と、制御部動
    作中に有効となるOSの絶対アドレス空間に絶対アドレ
    ス空間を変更する手段を備えることを特徴とする複数O
    S走行計算機システム。
  18. 【請求項18】 主記憶装置と制御部を備える1台の計
    算機上で複数のOSが走行する計算機において、前記計
    算機に複数組の浮動アドレスレジスタを設け、前記制御
    部は、前記各OSの絶対アドレス空間の領域と前記主記
    憶装置の領域との対応関係を各OS対応の組の浮動アド
    レスレジスタに登録し、前記各OSの絶対アドレス空間
    における前記制御部に与えられた領域に対応する前記主
    記憶装置の領域を唯一つの領域として前記各OSに共通
    の前記制御部用の領域として登録する手段を備え、走行
    状態にあるOSは、OS走行状態から制御部動作状態に
    変わるとき、該OSの絶対アドレス空間上にある制御部
    に制御を渡すことを特徴とする複数OS走行計算機シス
    テム。
  19. 【請求項19】 主記憶装置と制御部を備える1台の計
    算機上で複数のOSが走行する計算機において、前記計
    算機に複数組の浮動アドレスレジスタを設け、前記制御
    部は、前記各OSの絶対アドレス空間の領域と前記主記
    憶装置の領域との対応関係を各OS対応の組の浮動アド
    レスレジスタに登録し、前記各OSの絶対アドレス空間
    における一部の領域に対応する前記主記憶装置の領域を
    唯一つの領域として前記各OSの共通領域として登録す
    る手段を備えることを特徴とする複数OS走行計算機シ
    ステム。
  20. 【請求項20】 請求項19記載の複数OS走行計算機
    システムにおいて、前記制御部は、前記共通領域のアド
    レスとサイズを前記OSに通知する手段を備えることを
    特徴とする複数OS走行計算機システム。
JP8787492A 1992-03-11 1992-03-11 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機 Pending JPH05257721A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8787492A JPH05257721A (ja) 1992-03-11 1992-03-11 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8787492A JPH05257721A (ja) 1992-03-11 1992-03-11 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機

Publications (1)

Publication Number Publication Date
JPH05257721A true JPH05257721A (ja) 1993-10-08

Family

ID=13927017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8787492A Pending JPH05257721A (ja) 1992-03-11 1992-03-11 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機

Country Status (1)

Country Link
JP (1) JPH05257721A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010055641A (ja) * 2009-12-07 2010-03-11 Fuji Xerox Co Ltd 情報処理装置及びプログラム
JP2011048616A (ja) * 2009-08-27 2011-03-10 Renesas Electronics Corp データプロセッサ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048616A (ja) * 2009-08-27 2011-03-10 Renesas Electronics Corp データプロセッサ
JP2010055641A (ja) * 2009-12-07 2010-03-11 Fuji Xerox Co Ltd 情報処理装置及びプログラム

Similar Documents

Publication Publication Date Title
JP5654056B2 (ja) 階層的な変換テーブル制御
US5123094A (en) Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US6055617A (en) Virtual address window for accessing physical memory in a computer system
JP2960415B2 (ja) 記憶保護方法および装置
JPH05257803A (ja) 仮想記憶空間管理方法及びアドレス計算装置
JP2629278B2 (ja) 仮想計算機システム
US4943913A (en) Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations
JPS62165250A (ja) 仮想記憶方法
JPS6013501B2 (ja) 仮想計算機システムにおけるチヤネルアドレス制御方式
US20100115228A1 (en) Unified address space architecture
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
JPS61141055A (ja) 情報処理装置のアドレス変換方式
US5339417A (en) Computer system with two levels of guests
US5459872A (en) Software control of hardware interruptions
JP2006155272A (ja) 仮想計算機の制御方法及びプログラム
US20050273572A1 (en) Address translator and address translation method
JPH06110715A (ja) 仮想計算機システムにおける計算機資源の動的割付け方法
JPH05257721A (ja) 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機
JPH02292648A (ja) 多重仮想記憶システムおよびアドレス制御装置
JPH0833851B2 (ja) 仮想計算機のモニタリング方式
CN114691537A (zh) 一种访问存储器的方法及信息处理设备
JPH0793221A (ja) 仮想計算機システム及びその制御方法
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JPH05204760A (ja) 仮想計算機システムの制御方式
JPS6336012B2 (ja)