JP2581659B2 - 仮想計算機システム - Google Patents
仮想計算機システムInfo
- Publication number
- JP2581659B2 JP2581659B2 JP58246287A JP24628783A JP2581659B2 JP 2581659 B2 JP2581659 B2 JP 2581659B2 JP 58246287 A JP58246287 A JP 58246287A JP 24628783 A JP24628783 A JP 24628783A JP 2581659 B2 JP2581659 B2 JP 2581659B2
- Authority
- JP
- Japan
- Prior art keywords
- timer value
- interrupt
- timer
- value
- vmcp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は、VMSにおけるタイマ制御方式に係り、特に
仮想計算機のクロツクコンパレータCKCの値をセツトす
る命令のシミユレーシヨン及びクロツクコンパレータに
よる割込み処理によるVMCPのオーバヘツドを削減する上
で有効である。
仮想計算機のクロツクコンパレータCKCの値をセツトす
る命令のシミユレーシヨン及びクロツクコンパレータに
よる割込み処理によるVMCPのオーバヘツドを削減する上
で有効である。
VMSにおいては、各仮想計算機(VM)のハードウエア
・インタフエースは、VMCPにより実現される。VMCPは、
計算機資源(中央処理装置、主記憶装置、入出力装置
等)を各VMで共有するように管理し、各VMがあたかも1
台の実計算機を専有するかのような環境を作り出す。
・インタフエースは、VMCPにより実現される。VMCPは、
計算機資源(中央処理装置、主記憶装置、入出力装置
等)を各VMで共有するように管理し、各VMがあたかも1
台の実計算機を専有するかのような環境を作り出す。
第1図に、従来の一般的な計算機システムのブロツク
図、第2図に、従来の一般的な仮想計算機システムのブ
ロツク図を示す。
図、第2図に、従来の一般的な仮想計算機システムのブ
ロツク図を示す。
各VMが共有する資源にタイマがある。タイマには、Ti
me of Day(TOD),CKC,CPUタイマ,インタバルタイマが
ある。
me of Day(TOD),CKC,CPUタイマ,インタバルタイマが
ある。
TODは、時刻表示のために使われ、通常一定時間間隔
毎に加算される。
毎に加算される。
VMCPでは、これらタイマを仮想タイマとして、各VMに
与えるようシミユレーシヨンを行なつている。
与えるようシミユレーシヨンを行なつている。
タイマの1つであるCKCは、TODがCKCの指定する特定
の値に達した時点でタイマ割込みを発生させる機構であ
る。各々のVMは、特権命令セツトクロツクコンパレータ
(SCKC)命令により、CKCに値を設定し、一定時間後の
タイマ割込み(これをクロツクコンパレータ割込とい
う)の要求を行ない、特権命令ストアクロツクコンパレ
ータ(STCKC)命令により、該当VMのクロツクコンパレ
ータのタイマ値を読み出す事が出来る。
の値に達した時点でタイマ割込みを発生させる機構であ
る。各々のVMは、特権命令セツトクロツクコンパレータ
(SCKC)命令により、CKCに値を設定し、一定時間後の
タイマ割込み(これをクロツクコンパレータ割込とい
う)の要求を行ない、特権命令ストアクロツクコンパレ
ータ(STCKC)命令により、該当VMのクロツクコンパレ
ータのタイマ値を読み出す事が出来る。
タイマ等、システムリソースの管理は、一般的な計算
機システムにおいては、OSが行ない、VMSにおいては、V
MCPが行なう。VMSにおけるVMCP及び、一般的な計算機シ
ステムにおけるOSは、“特権命令”と呼ばれる命令を発
行する事により、システムリソースにアクセスする事が
できる。
機システムにおいては、OSが行ない、VMSにおいては、V
MCPが行なう。VMSにおけるVMCP及び、一般的な計算機シ
ステムにおけるOSは、“特権命令”と呼ばれる命令を発
行する事により、システムリソースにアクセスする事が
できる。
一般的な計算機におけるユーザープログラム及びVMS
におけるOSとユーザプログラムには、“非特権モード”
が割当てられる。
におけるOSとユーザプログラムには、“非特権モード”
が割当てられる。
VMSにおいてOSが、“特権命令”を実行しようとする
と、プログラム割込み(特権命令例外)が検出され、VM
CPに制御が渡り、VMCPはこの特権命令をシミユレーシヨ
ンする。
と、プログラム割込み(特権命令例外)が検出され、VM
CPに制御が渡り、VMCPはこの特権命令をシミユレーシヨ
ンする。
VMCPは、ハードウエアの状態を記憶しておくために、
主記憶装置内にPrefix Save Area(PSA)と呼ばれる領
域を持つており、割込みは、PSAに反映される。各VM
も、同様のPSAを持つ。
主記憶装置内にPrefix Save Area(PSA)と呼ばれる領
域を持つており、割込みは、PSAに反映される。各VM
も、同様のPSAを持つ。
一般の計算機システムでは、CPUの動作を制御する基
本的な制御情報は、第5図に示すProgram Status Word
(PSW)22と呼ばれるレジスタに、保持されている。割
込み条件が起きるとPSW22全体を、主記憶装置の特定の
位置に格納し、他の特定の位置から新PSWとなるべき内
容を読み出してPSW22に設定する。これにより特定の割
込処理プログラムへ制御が渡される。これを割込動作と
呼ぶ。
本的な制御情報は、第5図に示すProgram Status Word
(PSW)22と呼ばれるレジスタに、保持されている。割
込み条件が起きるとPSW22全体を、主記憶装置の特定の
位置に格納し、他の特定の位置から新PSWとなるべき内
容を読み出してPSW22に設定する。これにより特定の割
込処理プログラムへ制御が渡される。これを割込動作と
呼ぶ。
PSW22の外部マスク12が“1"であり、個個の外部割込
み要求に対応するサブマスクが“1"の時、その割込みの
要求は受付けられ、このビツトが“0"の時、外部割込み
の要求は、保留される。
み要求に対応するサブマスクが“1"の時、その割込みの
要求は受付けられ、このビツトが“0"の時、外部割込み
の要求は、保留される。
クロツクコンパレータ割込みのサブマスクは、特定の
コントロールレジスタの特定ビツトである。
コントロールレジスタの特定ビツトである。
PSW22のPビツト13が“0"の時、特権モードを表わ
し、“1"の時、非特権モードを表わす。
し、“1"の時、非特権モードを表わす。
以下、第3図に基づいて従来技術を説明する。
第3図において、2は、VM1のクロツクコンパレータ
割込みの要求で、そのタイマ値がαである要求を表わ
す。VMCPは、各VMのクロツクコンパレータ割込みの要求
を、そのタイマ値が小さな順に並ぶようにタイマキユー
3に登録している。第3図のタイマキユー3は、VM1,VM
2,VM3,VM4が、クロツクコンパレータ割込みの要求を出
しており、それぞれのタイマ値は、α,β,γ,δであ
り、αβγδである事を示す。
割込みの要求で、そのタイマ値がαである要求を表わ
す。VMCPは、各VMのクロツクコンパレータ割込みの要求
を、そのタイマ値が小さな順に並ぶようにタイマキユー
3に登録している。第3図のタイマキユー3は、VM1,VM
2,VM3,VM4が、クロツクコンパレータ割込みの要求を出
しており、それぞれのタイマ値は、α,β,γ,δであ
り、αβγδである事を示す。
1は、従来よりあるCKCを表わし、4は、従来よりあ
るTODを表わす。CKC1には、クロツクコンパレータ割込
みの要求キユー3の先頭の要求のタイマ値αがセツトさ
れている。
るTODを表わす。CKC1には、クロツクコンパレータ割込
みの要求キユー3の先頭の要求のタイマ値αがセツトさ
れている。
また、各VMは、クロツクコンパレータのタイマ値を格
納するブロツクを持つている。以下、このブロツクをタ
イマ保持ブロツクと称す。
納するブロツクを持つている。以下、このブロツクをタ
イマ保持ブロツクと称す。
第3図のタイマキユー3は、タイマ保持ブロツクをキ
ユーイングしたものを示している。
ユーイングしたものを示している。
システムに仮想計算機支援フアームウエア(VMA)が
装備された場合には、SCKC命令、STCKC命令をVMで発行
した場合、VMCPへ割込まず、マイクロプログラムにより
処理を行ない、処理の高速化を図つている。以下、この
従来例においては、VMAが装備された場合の処理を述べ
る。
装備された場合には、SCKC命令、STCKC命令をVMで発行
した場合、VMCPへ割込まず、マイクロプログラムにより
処理を行ない、処理の高速化を図つている。以下、この
従来例においては、VMAが装備された場合の処理を述べ
る。
VMCPにより、VM3を起動したとする。
VM3がタイマ値εで、特権命令SCKCを発行した場合の
処理フローを第10図に示す。VMは非特権モードで走行し
ているのでVMA又はVMCPにより以下の処理が行なわれ
る。
処理フローを第10図に示す。VMは非特権モードで走行し
ているのでVMA又はVMCPにより以下の処理が行なわれ
る。
まず、マイクロプログラムにより、クロツクコンパレ
ータ割込みの要求キユー3を検索して、既にVM3からの
要求が要求キユー3に登録されているかを調べる。
ータ割込みの要求キユー3を検索して、既にVM3からの
要求が要求キユー3に登録されているかを調べる。
既に登録されている場合には、その要求をキユー3か
ら取りはずし、新しく発行された命令のタイマ値を持つ
要求を、タイマ値の小さな順にクロツクコンパレータ割
込みの要求が並ぶように、VMAは、要求をキユー3に登
録する。また、その要求が、要求キユー3の先頭である
場合には、CKC1の値をεに書き換える。
ら取りはずし、新しく発行された命令のタイマ値を持つ
要求を、タイマ値の小さな順にクロツクコンパレータ割
込みの要求が並ぶように、VMAは、要求をキユー3に登
録する。また、その要求が、要求キユー3の先頭である
場合には、CKC1の値をεに書き換える。
未だVM3の要求がキユー3に登録されていない場合に
も、同様にして、キユー3に要求を登録し、その要求が
要求キュー3の先頭である場合には、CKC1の値をεに書
きかえる。
も、同様にして、キユー3に要求を登録し、その要求が
要求キュー3の先頭である場合には、CKC1の値をεに書
きかえる。
VMCP自身がSCKC命令を発行した場合には、ハードウエ
アによりCKC1に値がセツトされる。特権命令STCKC命令
が、VM3から発行された場合の処理は第11図に示す。VMA
はVM3のタイマ保持ブロツクにより、VM3のクロツクコン
パレータのタイマ値を読み出す事が出来る。
アによりCKC1に値がセツトされる。特権命令STCKC命令
が、VM3から発行された場合の処理は第11図に示す。VMA
はVM3のタイマ保持ブロツクにより、VM3のクロツクコン
パレータのタイマ値を読み出す事が出来る。
VMCP自身がSTCKC命令を発行した場合には、CKC1の値
が、命令で指定された領域に格納される。CKC1の値が、
TODの値よりも、例えば、小さくなつた場合には、第12
図に示すようにタイマ割込みが発生しVMCPは、要求キユ
ー3の先頭の要求を出したVMの、クロツクコンパレータ
割込みとして、割込みのシミユレーシヨンを行なう。
が、命令で指定された領域に格納される。CKC1の値が、
TODの値よりも、例えば、小さくなつた場合には、第12
図に示すようにタイマ割込みが発生しVMCPは、要求キユ
ー3の先頭の要求を出したVMの、クロツクコンパレータ
割込みとして、割込みのシミユレーシヨンを行なう。
VMCPにより、走行VMがVM3から他VMへ切換わつた場合
も、以上述べた処理と同様の処理を行なう。
も、以上述べた処理と同様の処理を行なう。
以上述べた従来技術においては、VMからのSCKC命令の
都度、VMCP又はVMAが要求キユー3を検索し、また、ク
ロツクコンパレータ割込みのシミユレーシヨンをVMCPが
行なつており、これがVMCPのオーバヘツドの要因の一つ
となつている。
都度、VMCP又はVMAが要求キユー3を検索し、また、ク
ロツクコンパレータ割込みのシミユレーシヨンをVMCPが
行なつており、これがVMCPのオーバヘツドの要因の一つ
となつている。
本発明の目的は、仮想計算機システムにおける上記問
題点を解決し、CKCによるタイマ割込みをVMCPを経由せ
ず、直接走行中のVMのOSに反映することのできる仮想計
算機システムを提供することにある。
題点を解決し、CKCによるタイマ割込みをVMCPを経由せ
ず、直接走行中のVMのOSに反映することのできる仮想計
算機システムを提供することにある。
上記目的を達成するため、本発明による仮想計算機シ
ステムは、一定時間間隔で更新されるタイマと、該タイ
マの値に基づき割込みを発生させるためのタイマ値を保
持するクロックコンパレータとを有し、複数のオペレー
ティングシステムを1つの計算機システム上で動作させ
るための管理プログラムを備えた仮想計算機システムに
おいて、走行中でないオペレーティングシステムにより
設定されたタイマ値を保持する記憶手段と、記憶手段に
保持されるタイマ値及び走行中のオペレーティングシス
テムが設定したタイマ値のうち、割込み発生のための条
件を最先に満たすタイマ値をクロックコンパレータに登
録する手段と、クロックコンパレータに登録されたタイ
マ値が、走行中のオペレーティングシステムにより設定
されたものか否かを示す識別子を保持する識別手段と、
タイマの値と前記クロックコンパレータに登録されたタ
イマ値とを比較して割込み発生のための条件が満たされ
たか否か判定し、条件が満たされたとき、識別手段によ
りクロックコンパレータに登録されたタイマ値が走行中
のオペレーティングシステムにより設定されたものであ
ることが示される場合に、走行中のオペレーティングシ
ステムに直接割込みを発生し、クロックコンパレータに
登録されたタイマ値が走行中のオペレーティングシステ
ムにより設定されたものでないことが示される場合に
は、管理プログラムへの割込みを発生する手段とを有す
る。
ステムは、一定時間間隔で更新されるタイマと、該タイ
マの値に基づき割込みを発生させるためのタイマ値を保
持するクロックコンパレータとを有し、複数のオペレー
ティングシステムを1つの計算機システム上で動作させ
るための管理プログラムを備えた仮想計算機システムに
おいて、走行中でないオペレーティングシステムにより
設定されたタイマ値を保持する記憶手段と、記憶手段に
保持されるタイマ値及び走行中のオペレーティングシス
テムが設定したタイマ値のうち、割込み発生のための条
件を最先に満たすタイマ値をクロックコンパレータに登
録する手段と、クロックコンパレータに登録されたタイ
マ値が、走行中のオペレーティングシステムにより設定
されたものか否かを示す識別子を保持する識別手段と、
タイマの値と前記クロックコンパレータに登録されたタ
イマ値とを比較して割込み発生のための条件が満たされ
たか否か判定し、条件が満たされたとき、識別手段によ
りクロックコンパレータに登録されたタイマ値が走行中
のオペレーティングシステムにより設定されたものであ
ることが示される場合に、走行中のオペレーティングシ
ステムに直接割込みを発生し、クロックコンパレータに
登録されたタイマ値が走行中のオペレーティングシステ
ムにより設定されたものでないことが示される場合に
は、管理プログラムへの割込みを発生する手段とを有す
る。
以下本発明を実施例により詳細に説明する。
1.第4図は、本発明の1実施例のブロツク図である。25
は、VMの主記憶装置を表わす。5はVMCPのシステム常駐
領域であり、主記憶装置25に常駐するVMCPシステム常駐
プログラムが使用する。10は、VMCPのシステム常駐領域
5の内で、ハードウエアとのインタフエースのために使
用されるVMCPのPSAを表わす。6,7,8,9はそれぞれ、VM1,
VM2,VM3,VM4のPSAを表わす。
は、VMの主記憶装置を表わす。5はVMCPのシステム常駐
領域であり、主記憶装置25に常駐するVMCPシステム常駐
プログラムが使用する。10は、VMCPのシステム常駐領域
5の内で、ハードウエアとのインタフエースのために使
用されるVMCPのPSAを表わす。6,7,8,9はそれぞれ、VM1,
VM2,VM3,VM4のPSAを表わす。
プレフイクスレジスタ11は、VMが走行中の場合には、
そのVMのPSAのアドレスを格納し、VMCPに制御が渡つた
時には、VMCPのPSAのアドレスを格納している。
そのVMのPSAのアドレスを格納し、VMCPに制御が渡つた
時には、VMCPのPSAのアドレスを格納している。
ペンデイングフラグ17は、VMCPにおいて、クロツクコ
ンパレータ割込みの保留が、走行中のVMにある時には
“1"、保留がない時には“0"となるフラグである。
ンパレータ割込みの保留が、走行中のVMにある時には
“1"、保留がない時には“0"となるフラグである。
VMモードフラグ26が1の場合は、走行中VMの特権命令
及び割込みの処理を、VMCPの関与なしにOSが直接実行す
ることが可能であることを意味する。
及び割込みの処理を、VMCPの関与なしにOSが直接実行す
ることが可能であることを意味する。
命令実行回路14は、SCKC、STCKC命令等の実行を行な
い回路(マイクロプログラム23の制御による)、比較回
路15は、CKC1とTOD4の値の比較回路、16は、クロツクコ
ンパレータの割込みを発生させる割込み回路(マイクロ
プログラム24の制御による)である。
い回路(マイクロプログラム23の制御による)、比較回
路15は、CKC1とTOD4の値の比較回路、16は、クロツクコ
ンパレータの割込みを発生させる割込み回路(マイクロ
プログラム24の制御による)である。
40は命令レジスタ群であり、主記憶装置25上の命令
は、ここへ取こまれ、線31を経由して、命令実行回路14
へ送られる。
は、ここへ取こまれ、線31を経由して、命令実行回路14
へ送られる。
VMCPは、VM起動時、該VMの直接実行モードをサポート
するときは、VM起動命令により、VMモードフラグ26に1
をセツトする。さらに、PSW−22の外部マスク12及び、
特定のコントロールレジスタに存在するクロツクコンパ
レータサブマスクは、VMモードフラグ26が“1"の時、そ
れぞれ、仮想PSWの外部マスク及び、該当の仮想コント
ロールレジスタに存在するクロツクコンパレータサブマ
スクに合わせられる。
するときは、VM起動命令により、VMモードフラグ26に1
をセツトする。さらに、PSW−22の外部マスク12及び、
特定のコントロールレジスタに存在するクロツクコンパ
レータサブマスクは、VMモードフラグ26が“1"の時、そ
れぞれ、仮想PSWの外部マスク及び、該当の仮想コント
ロールレジスタに存在するクロツクコンパレータサブマ
スクに合わせられる。
さらに、VMCPは、VM起動時、そのVMのPSAのアドレス
をPXR11に設定する。
をPXR11に設定する。
VMCPが、VMモードフラグ26が0で、VMを起動すると
き、PXR11には、VMCPのPSAのアドレスを設定する。
き、PXR11には、VMCPのPSAのアドレスを設定する。
VMCPが、VM3を起動する場合、VMCPは、VM3のタイマ保
持ブロツクのCKCのタイマ値をCKC1にセツトする。次
に、VMCPはVM3のクロツクコンパレータ割込み要求が、
キユー3に登録されているかを検索し、あるならばその
要求をキユー3から取り除く。
持ブロツクのCKCのタイマ値をCKC1にセツトする。次
に、VMCPはVM3のクロツクコンパレータ割込み要求が、
キユー3に登録されているかを検索し、あるならばその
要求をキユー3から取り除く。
さらに、VM3起動時、VMCPがVM3のCKC割込み保留要因
を持つ場合には、VMCPはペンデイングフラグ17を1にセ
ツトする。
を持つ場合には、VMCPはペンデイングフラグ17を1にセ
ツトする。
SCKC命令が発行された場合のフローは、第13図に示
す。点線により、囲まれた部分が、従来技術により実施
されている処理である。
す。点線により、囲まれた部分が、従来技術により実施
されている処理である。
主記憶装置25上の命令は、命令レジスタ40に取りこま
れ、線31を経由して、命令実行回路14に入る。同様にVM
3がCKC値εでSCKC命令を発行すると、そのSCKC命令は命
令実行回路14及びマイクロプログラム23により、以下の
ように実行される。
れ、線31を経由して、命令実行回路14に入る。同様にVM
3がCKC値εでSCKC命令を発行すると、そのSCKC命令は命
令実行回路14及びマイクロプログラム23により、以下の
ように実行される。
VMモードフラグ26が1かつ、PSW22の非特権モードフ
ラグ13が“0"(即ち、VMが特権モード)、保留フラグ17
が“0"(即ち、VMCPによるVM3のCKC割込み保留はない)
の場合には、線39を経由して、CKC1にεが設定される。
ラグ13が“0"(即ち、VMが特権モード)、保留フラグ17
が“0"(即ち、VMCPによるVM3のCKC割込み保留はない)
の場合には、線39を経由して、CKC1にεが設定される。
VMモードフラグ26が“1"かつ、PSWの非特権モードフ
ラグ13が“0"、保留フラグ17が“0"(即ち、VMCPにより
VM3のCKC割込みが保留となっている)場合には、線34を
経由して、ブレフイクスレジスタ11には、VMCPのPSAア
ドレスがセツトされ、線33を経由して、割込回路16が起
動され、VMCPに特権命令例外が報告される。
ラグ13が“0"、保留フラグ17が“0"(即ち、VMCPにより
VM3のCKC割込みが保留となっている)場合には、線34を
経由して、ブレフイクスレジスタ11には、VMCPのPSAア
ドレスがセツトされ、線33を経由して、割込回路16が起
動され、VMCPに特権命令例外が報告される。
VMモードフラグ26が“1"かつ、PSWの非特権モードフ
ラグ13が“1"(即ち、VMが非特権モード)の場合には、
線33を経由して、割込回路16が起動され、VMに特権命令
例外が報告される。
ラグ13が“1"(即ち、VMが非特権モード)の場合には、
線33を経由して、割込回路16が起動され、VMに特権命令
例外が報告される。
VMモードフラグが“0"かつ、PSWの非特権モードフラ
グ13が“0"(即ち、特権モード)の場合には、VMCP又は
実計算機モードであるから、線39を経由して、CKC1に
は、εが設定される。
グ13が“0"(即ち、特権モード)の場合には、VMCP又は
実計算機モードであるから、線39を経由して、CKC1に
は、εが設定される。
VMモードフラグが“0"かつ、PSWの非特権モードフラ
グ13が“1"の場合には、実計算機モード又は一般のVMモ
ードであるから、従来技術で述べたとおりSCKCのシミユ
レーシヨン処理が、VMA又はVMCPにより行なわれる。
グ13が“1"の場合には、実計算機モード又は一般のVMモ
ードであるから、従来技術で述べたとおりSCKCのシミユ
レーシヨン処理が、VMA又はVMCPにより行なわれる。
STCKC命令が発行された場合の処理フローは、第14図
に示すとおりである。点線で囲まれた部分が、従来技術
において実施している処理である。
に示すとおりである。点線で囲まれた部分が、従来技術
において実施している処理である。
VM3の発行するSTCKC命令は、SCKC命令と同様に、命令
実行回路14及びマイクロプログラム23により、以下のよ
うに実行される。
実行回路14及びマイクロプログラム23により、以下のよ
うに実行される。
VMモードフラグ26が“1"、かつ、PSWの非特権モード
フラグ13が“0"の場合には、線39及び線30を経由して、
CKC1の値が、STCKC命令で指定された主記憶装置25の領
域に格納される。
フラグ13が“0"の場合には、線39及び線30を経由して、
CKC1の値が、STCKC命令で指定された主記憶装置25の領
域に格納される。
VMモードフラグ26が“1"かつ、PSWの非特権モードフ
ラグ13が“1"の場合には、線33を経由して、割込み回路
16が起動され、VMに特権命令例外が報告される。
ラグ13が“1"の場合には、線33を経由して、割込み回路
16が起動され、VMに特権命令例外が報告される。
VMモードフラグ26が“0"かつ、非特権モードフラグ13
が“1"の場合は、VMAにより、VM3のタイマ保持ブロツク
内のVM3のクロツクコンパレータのタイマ値を読み出
す。
が“1"の場合は、VMAにより、VM3のタイマ保持ブロツク
内のVM3のクロツクコンパレータのタイマ値を読み出
す。
VMモードフラグが“0"かつ、非特権モードフラグ13が
“0"の場合には、CKC1の値が線39及び線30を経由して、
STCKC命令で指定された主記憶装置25の領域に格納され
る。
“0"の場合には、CKC1の値が線39及び線30を経由して、
STCKC命令で指定された主記憶装置25の領域に格納され
る。
VMCPにより、走行VMがVM3から、他VMに切換わる場合
には、VMCPは、VM3がCKCを専有するVMであるかどうか判
断し、その場合は、CKC1の値をVM3のタイマ保持ブロツ
クに線39及び線30を継由してセツトしその割込みが未だ
発生していない時は、要求キユー3に登録する。
には、VMCPは、VM3がCKCを専有するVMであるかどうか判
断し、その場合は、CKC1の値をVM3のタイマ保持ブロツ
クに線39及び線30を継由してセツトしその割込みが未だ
発生していない時は、要求キユー3に登録する。
VM3がCKCを専有するVMでないときは、特に何もしない。
CKC割込みは、第15図のフローに従う。
CKC1の値がTOD4よりも小さくなつた場合には、割込発
生回路16によりVM3にCKC割込みの条件が発生し、マイク
ロプログラム24により以下の処理が行なわれる。
生回路16によりVM3にCKC割込みの条件が発生し、マイク
ロプログラム24により以下の処理が行なわれる。
VMモードフラグが“1"であり、かつ、ペンデイングフ
ラグ17が“0"(即ちVMCPによりクロツクコンパレータ割
込みが保留となつていない)ならば、線41経由でVM3のP
SAへ直接割込み、その他の場合、線35を継由して、ブレ
フイクスレジスタ11にVMCPのPSAのアドレスをセツトし
てVMCPのPSAへ割込む。
ラグ17が“0"(即ちVMCPによりクロツクコンパレータ割
込みが保留となつていない)ならば、線41経由でVM3のP
SAへ直接割込み、その他の場合、線35を継由して、ブレ
フイクスレジスタ11にVMCPのPSAのアドレスをセツトし
てVMCPのPSAへ割込む。
VMCPのPSAのアドレスは、走行中VM用に作られた主記
憶装置25内の制御領域内に存在するようにし、それを割
込回路16のマイクロプログラム24により読みだして来て
も良いし、あるいは、VMCPのPSAアドレスを格納する専
用のレジスタを設け、VM起動時、VMCPが、その値を設定
するようにしても良い。後者の場合、そのレジスタの内
容を、割込回路16のマイクロプログラム24が読み取るこ
とになるが、第4図における結線は省略する。
憶装置25内の制御領域内に存在するようにし、それを割
込回路16のマイクロプログラム24により読みだして来て
も良いし、あるいは、VMCPのPSAアドレスを格納する専
用のレジスタを設け、VM起動時、VMCPが、その値を設定
するようにしても良い。後者の場合、そのレジスタの内
容を、割込回路16のマイクロプログラム24が読み取るこ
とになるが、第4図における結線は省略する。
2.第6図は、本発明の第2の実施例のブロツク図であ
る。第6図において、27はVMSで使用するレジスタ、18
は、走行中のVM専用のレジスタ、19は、27と18の値の比
較回路、20は、CKC1に設定された値が、レジスタ27の値
である時は“0"、レジスタ18の値である時は“1"となる
ラツチである。
る。第6図において、27はVMSで使用するレジスタ、18
は、走行中のVM専用のレジスタ、19は、27と18の値の比
較回路、20は、CKC1に設定された値が、レジスタ27の値
である時は“0"、レジスタ18の値である時は“1"となる
ラツチである。
本実施例においては、特権命令Set Guest Clock Comp
arator(SGCKC)及び、Store Guest Clock Comparator
(STGCKC)を新設する。
arator(SGCKC)及び、Store Guest Clock Comparator
(STGCKC)を新設する。
VMCPが、VMを起動するとき、VMモードフラグ26を“1"
にセツトする。さらに、PSWの外部マスク12及び、特定
コントロールレジスタの特定ビツトに存在するクロツク
コンパレータ割込みサブマスクは、それぞれ、仮想PSW
の外部マスク及び該当仮想コントロールレジスタの該サ
ブマスクに、それぞれ合わせる。さらに、PXR11には、V
MのPSAのアドレスが設定される。
にセツトする。さらに、PSWの外部マスク12及び、特定
コントロールレジスタの特定ビツトに存在するクロツク
コンパレータ割込みサブマスクは、それぞれ、仮想PSW
の外部マスク及び該当仮想コントロールレジスタの該サ
ブマスクに、それぞれ合わせる。さらに、PXR11には、V
MのPSAのアドレスが設定される。
VMモードフラグ26が“0"のときは、VMCPの走行モード
又は、実計算機モードを表わす。したがつて、そのとき
は、PXR11には、VMCPのPSAのアドレスが設定されてい
る。
又は、実計算機モードを表わす。したがつて、そのとき
は、PXR11には、VMCPのPSAのアドレスが設定されてい
る。
VMCPがVM3を起動する時、VMCPがVM3のCKC割込み保留
要因を持つ場合には、VMCPは、ペンデイングフラグ17を
“1"にセツトする。さらにVMCPはSGCKC命令を発行し、V
M3のタイマ保持ブロツク内の仮想CKC値γを走行VMのCKC
専用のレジスタ19にセツトする。SGCKC命令は、VMCP専
用の命令であり、命令実行回路14及びマイクロプログラ
ム23により、第16図のフローに従い以下のように実行さ
れる。
要因を持つ場合には、VMCPは、ペンデイングフラグ17を
“1"にセツトする。さらにVMCPはSGCKC命令を発行し、V
M3のタイマ保持ブロツク内の仮想CKC値γを走行VMのCKC
専用のレジスタ19にセツトする。SGCKC命令は、VMCP専
用の命令であり、命令実行回路14及びマイクロプログラ
ム23により、第16図のフローに従い以下のように実行さ
れる。
VMモードフラグ26が“0"であり、かつ、非特権モード
フラグ13が“0"(即ち特権モード)である時は線30及び
線38を継由してレジスタ18に、SGCKCのオペランド(こ
の場合はVM3のタイマ保持ブロツクのクロツクコンパレ
ータのタイマ値)を、セツトする。次に、VMCPは、VM3
のタイマ割込み要求が、キユー3に登録されているかど
うかを調べ、登録されている場合には、その要求をキユ
ー3により取りはずす。
フラグ13が“0"(即ち特権モード)である時は線30及び
線38を継由してレジスタ18に、SGCKCのオペランド(こ
の場合はVM3のタイマ保持ブロツクのクロツクコンパレ
ータのタイマ値)を、セツトする。次に、VMCPは、VM3
のタイマ割込み要求が、キユー3に登録されているかど
うかを調べ、登録されている場合には、その要求をキユ
ー3により取りはずす。
VMモードフラグが“1"の時には、VMには使わせないた
めに、特殊命令例外によりSGCKC命令を抑止する。
めに、特殊命令例外によりSGCKC命令を抑止する。
VMモードフラグが“0"で、非特権モードフラグが“1"
(即ち非特権モード)でSGCKC命令を発行した場合に
は、線36を継由して、割込回路16が起動され、この場合
PXR11には、VMCPのPSAのアドレスがセツトされているか
ら、VMCPに特権命令例外が報告される。
(即ち非特権モード)でSGCKC命令を発行した場合に
は、線36を継由して、割込回路16が起動され、この場合
PXR11には、VMCPのPSAのアドレスがセツトされているか
ら、VMCPに特権命令例外が報告される。
VMCPは、タイマ割込み要求キユー3の先頭の要求のタ
イマ値、すなわち、タイマ割込み要求キユー3に登録さ
れた要求の中で、最小のタイマ値をオペランドとして、
通常のSCKC命令を発行しレジスタ27に、その値をセツト
する。
イマ値、すなわち、タイマ割込み要求キユー3に登録さ
れた要求の中で、最小のタイマ値をオペランドとして、
通常のSCKC命令を発行しレジスタ27に、その値をセツト
する。
比較回路19により、レジスタ27とレジスタ18の値の比
較が行なわれ、小さい方の値をCKC1にセツトしさらにレ
ジスタ18の値がレジスタ27の値よりも小さいか、等しい
場合には、ラツチ20に“1"が設定され、その他の場合に
は、ラツチ20には“0"が設定される。これにより、ラッ
チ20の値が“1"の場合は、実効的なCKC1には、現走行VM
のCKC値が設定されていることを意味している。
較が行なわれ、小さい方の値をCKC1にセツトしさらにレ
ジスタ18の値がレジスタ27の値よりも小さいか、等しい
場合には、ラツチ20に“1"が設定され、その他の場合に
は、ラツチ20には“0"が設定される。これにより、ラッ
チ20の値が“1"の場合は、実効的なCKC1には、現走行VM
のCKC値が設定されていることを意味している。
SCKC命令が発行された場合のフローを、第17図に示
す。点線により囲まれた部分が、従来技術に相当する処
理に該当する。
す。点線により囲まれた部分が、従来技術に相当する処
理に該当する。
VM3が、タイマ値εで、SCKC命令を発行すると、SCKC
命令は、命令実行回路14及びマイクロプログラム23によ
り、以下のように実行される。
命令は、命令実行回路14及びマイクロプログラム23によ
り、以下のように実行される。
VMモードフラグ26が“1"かつ、非特権モードフラグ13
が“0"(即ち特権モード)かつペンデイングフラグ17が
“0"(即ちVMCPによるVM3のCKC割込み保留をがない)の
場合には、線30及び38を継由してレジスタ18にそのタイ
マ値がセツトされ、比較回路19により、前述した比較動
作が行なわれる。
が“0"(即ち特権モード)かつペンデイングフラグ17が
“0"(即ちVMCPによるVM3のCKC割込み保留をがない)の
場合には、線30及び38を継由してレジスタ18にそのタイ
マ値がセツトされ、比較回路19により、前述した比較動
作が行なわれる。
VMモードフラグ26が“1"かつ非特権モードフラグ13が
“0"かつ、ペンデイングフラグ17が“1"(即ちVMCPによ
るVM3のCKC割込み保留がある)の場合には、線34を継由
してプレフイクスレジスタ11にVMCPのPSAのアドレスを
セツトして、さらに線36を経由して割込み回路16を起動
し、VMCPに割り出す。このとき、VMCPのPSAアドレス
は、主記憶装置25の特定領域からマイクロプログラム24
が線41を経由して読み込んでも良いし、又は、VMCPのPS
Aのアドレスを記憶する専用のレジスタを用意し、VM起
動時、VMCPにより設定するようにしても良い。後者の場
合の結線は省略する。いずれの場合も、VMモードフラグ
26は“0"にセツトされる。
“0"かつ、ペンデイングフラグ17が“1"(即ちVMCPによ
るVM3のCKC割込み保留がある)の場合には、線34を継由
してプレフイクスレジスタ11にVMCPのPSAのアドレスを
セツトして、さらに線36を経由して割込み回路16を起動
し、VMCPに割り出す。このとき、VMCPのPSAアドレス
は、主記憶装置25の特定領域からマイクロプログラム24
が線41を経由して読み込んでも良いし、又は、VMCPのPS
Aのアドレスを記憶する専用のレジスタを用意し、VM起
動時、VMCPにより設定するようにしても良い。後者の場
合の結線は省略する。いずれの場合も、VMモードフラグ
26は“0"にセツトされる。
VMモードフラグ26が“1"かつ、非特権モードフラグ13
が“1"の場合には、線36を継由して、割込み回路16を起
動しVMに特権命令例外を報告する。この場合はPXR11の
値は現走行VMのPSAをさしたままである。
が“1"の場合には、線36を継由して、割込み回路16を起
動しVMに特権命令例外を報告する。この場合はPXR11の
値は現走行VMのPSAをさしたままである。
VMモードフラグ26が“0"かつ、非特権モードフラグ13
が“0"であれば、線30及び線37を継由して、レジスタ27
にタイマ値をセツトする。
が“0"であれば、線30及び線37を継由して、レジスタ27
にタイマ値をセツトする。
VMモードフラグ26が“0"かつ、非特権モードフラグ13
が“1"の場合には、特権命令例外割込みを、線36経由
で、割込回路16に要求する。この場合は、VMモードフラ
グ26が“0"だから、VMCP又は実計算機モードで割込みが
発生する。
が“1"の場合には、特権命令例外割込みを、線36経由
で、割込回路16に要求する。この場合は、VMモードフラ
グ26が“0"だから、VMCP又は実計算機モードで割込みが
発生する。
STCKCが発行された場合には、第18図に従い以下の処
理を行なう。点線で囲んだ部分が、従来処理に相当する
部分である。
理を行なう。点線で囲んだ部分が、従来処理に相当する
部分である。
VM3がSTCKC命令を発行すると、STCKC命令は命令実行
回路14及びマイクロプログラム23により以下のように実
行される。VMモードフラグが“1"かつ非特権モードフラ
グが“0"の場合には、線38及び30を経由して、レジスタ
18の値を指定された領域に格納する。
回路14及びマイクロプログラム23により以下のように実
行される。VMモードフラグが“1"かつ非特権モードフラ
グが“0"の場合には、線38及び30を経由して、レジスタ
18の値を指定された領域に格納する。
VMモードフラグ26が“1"、かつ非特権モードフラグ13
が“1"の場合には、線36を経由して割込み回路16を起動
してVM3に特権命令例外を報告する。
が“1"の場合には、線36を経由して割込み回路16を起動
してVM3に特権命令例外を報告する。
VMモードフラグ26が“0"で、非特権モードフラグ13が
“0"の場合には、線37及び線30を継由して、レジスタ27
の値を指定された領域に格納する。
“0"の場合には、線37及び線30を継由して、レジスタ27
の値を指定された領域に格納する。
VMモードフラグ26が“0"で、非特権モードフラグ13が
“1"の場合には、線36経由で割込回路16を起動し、特権
命令例外割込みを発生させる。この場合PXR11には、VMS
環境下では、VMCPのPSAのアドレスがセツトされている
ので、VMCPに割出されることとなる。
“1"の場合には、線36経由で割込回路16を起動し、特権
命令例外割込みを発生させる。この場合PXR11には、VMS
環境下では、VMCPのPSAのアドレスがセツトされている
ので、VMCPに割出されることとなる。
VMCPが、走行VMをVM3から他VMに切換える場合、VMCP
は、STGCKC命令を発行する。VMCPが、STGCKC命令を発行
すると、STGCKC命令は、命令回路14及びマイクロプログ
ラム23により、第19図に従い以下の処理を行なう。
は、STGCKC命令を発行する。VMCPが、STGCKC命令を発行
すると、STGCKC命令は、命令回路14及びマイクロプログ
ラム23により、第19図に従い以下の処理を行なう。
VMモードフラグ26が“0"かつ、非特権モードフラグ13
が“0"の時、レジスタ18の値が、VM3の最新のCKCを表わ
すので、線38及び線30を継由してこれをVM3のタイマ保
持ブロツクに退避する。さらに、そのVM3のクロツクコ
ンパレータ割込みが、未だ発生していない時は、このVM
3のCKCの値が、タイマ値の例えば小さな順となるよう
に、タイマ割込み要求キユー3に、キユーイングする。
が“0"の時、レジスタ18の値が、VM3の最新のCKCを表わ
すので、線38及び線30を継由してこれをVM3のタイマ保
持ブロツクに退避する。さらに、そのVM3のクロツクコ
ンパレータ割込みが、未だ発生していない時は、このVM
3のCKCの値が、タイマ値の例えば小さな順となるよう
に、タイマ割込み要求キユー3に、キユーイングする。
VMモードフラグ26が“1"の場合には、線36を起動して
割込み回路16を起動し特殊命令例外により、命令を抑止
する。
割込み回路16を起動し特殊命令例外により、命令を抑止
する。
VMモードフラグが“0"かつ非特権モードフラグ13が
“1"の場合には、線36を継由して割込み回路16を起動し
特権命令例外で割り込む。この場合、VMS環境下では、P
XR11にはVMCPのPSAアドレスが設定されているので、VMC
Pに割込むこととなる。
“1"の場合には、線36を継由して割込み回路16を起動し
特権命令例外で割り込む。この場合、VMS環境下では、P
XR11にはVMCPのPSAアドレスが設定されているので、VMC
Pに割込むこととなる。
TOD4の値がCKC1の値よりも大きくなつた場合には、割
込発生回路16によりCKC割込みの条件が発生し、マイク
ロプログラム24により第20図に示すように、以下の処理
が行なわれる。
込発生回路16によりCKC割込みの条件が発生し、マイク
ロプログラム24により第20図に示すように、以下の処理
が行なわれる。
VMモードフラグが“0"、又は、ラツチ20が“0"の場合
には、プレフイクスレジスタ11に線35を継由してVMCPの
PSAアドレスをセツトしてVMCPに割り込む。
には、プレフイクスレジスタ11に線35を継由してVMCPの
PSAアドレスをセツトしてVMCPに割り込む。
VMモードフラグが“1"かつ、ラツチ20が“1"の場合に
は、VMCPを経由せずVM3に直接割りこみ、レジスタ27の
値とレジスタ18の値が等しい場合には、さらに線35を経
由してプレフイクスレジスタ11にVMCPのPSAのアドレス
を設定してVMCPに割込む。
は、VMCPを経由せずVM3に直接割りこみ、レジスタ27の
値とレジスタ18の値が等しい場合には、さらに線35を経
由してプレフイクスレジスタ11にVMCPのPSAのアドレス
を設定してVMCPに割込む。
3.第7図が、本発明による第3の実施例のブロツク図、
第8図及び第9図は、本実施例において新設されたレジ
スタ28の説明図である。
第8図及び第9図は、本実施例において新設されたレジ
スタ28の説明図である。
プレフイクスレジスタ11,ペンデイングフラグ17,VMモ
ードフラグ26,VM起動時にVMモードフラグ26が1の場合
のPSW22の外部マスク及びクロツクコンパレータサブマ
スク、以上の設定方法は、実施例1と同じである。
ードフラグ26,VM起動時にVMモードフラグ26が1の場合
のPSW22の外部マスク及びクロツクコンパレータサブマ
スク、以上の設定方法は、実施例1と同じである。
レジスタ28は、8バイトのレジスタであり、上位52ビ
ツトの退避クロツクコンパレータタイマ値21には、走行
中VMのCKCタイマ値と、走行中以外のVMのCKCタイマ値の
最小値のうち、大きな方の値が設定される。NTVビツト4
3は、“0"の時、クロツクコンパレータタイマ値が退避
されていない、又は、走行中VMのCKCタイマ値が退避さ
れている事を示し、“1"の時、走行中のVM以外のCKCタ
イマ値が退避されている事を示すフラグである。
ツトの退避クロツクコンパレータタイマ値21には、走行
中VMのCKCタイマ値と、走行中以外のVMのCKCタイマ値の
最小値のうち、大きな方の値が設定される。NTVビツト4
3は、“0"の時、クロツクコンパレータタイマ値が退避
されていない、又は、走行中VMのCKCタイマ値が退避さ
れている事を示し、“1"の時、走行中のVM以外のCKCタ
イマ値が退避されている事を示すフラグである。
EQUフラグ42は、“0"の時、走行中VMのCKCタイマ値
と、走行中以外のVMのCKCタイマ値の最小値が等しくな
い事を示し、“1"の時、両者が等しい事を示すフラグで
ある。
と、走行中以外のVMのCKCタイマ値の最小値が等しくな
い事を示し、“1"の時、両者が等しい事を示すフラグで
ある。
VMCPにより、走行VMがVM1からVM3に切換えられたとす
る。この時、VMCPは、VM3のCKCタイマ値をVM3のタイマ
保持ブロツクより取り出し、退避クロツクコンパレータ
タイマ値21にセツトして、VM3のタイマ保持ブロツクが
割込み要求キユー3に登録されているならば要求キユー
3から取りはずす。さらに、要求キユー3の先頭のタイ
マ割込みの要求のタイマ値と、退避クロツクコンパレー
タタイマ値21の比較を行なう。そして、退避クロツクコ
ンパレータタイマ値21の方が小さい場合には、その値を
CKC1にセツトして、要求キユー3の先頭のタイマ値を、
退避クロツクコンパレータタイマ値21にセツトし、NTV
に“1"をセツトする。さらにEQUに“0"をセツトする。
退避クロツクコンパレータタイマ値21と要求キユー3の
先頭のタイマ割込みの要求のタイマ値が等しい場合には
CKC1に、要求キユー3の先頭のタイマ割込みの要求のタ
イマ値をセツトして、さらに、EQUに“1"をセツトす
る。退避クロツクコンパレータタイマ値21の値の方が要
求キユー3の先頭のタイマ割込みの要求のタイマ値より
大きい時、CKC1に、要求キユー3の先頭のタイマ割込み
の要求のタイマ値をセツトして、さらに、EQUに“0"を
セツトする。
る。この時、VMCPは、VM3のCKCタイマ値をVM3のタイマ
保持ブロツクより取り出し、退避クロツクコンパレータ
タイマ値21にセツトして、VM3のタイマ保持ブロツクが
割込み要求キユー3に登録されているならば要求キユー
3から取りはずす。さらに、要求キユー3の先頭のタイ
マ割込みの要求のタイマ値と、退避クロツクコンパレー
タタイマ値21の比較を行なう。そして、退避クロツクコ
ンパレータタイマ値21の方が小さい場合には、その値を
CKC1にセツトして、要求キユー3の先頭のタイマ値を、
退避クロツクコンパレータタイマ値21にセツトし、NTV
に“1"をセツトする。さらにEQUに“0"をセツトする。
退避クロツクコンパレータタイマ値21と要求キユー3の
先頭のタイマ割込みの要求のタイマ値が等しい場合には
CKC1に、要求キユー3の先頭のタイマ割込みの要求のタ
イマ値をセツトして、さらに、EQUに“1"をセツトす
る。退避クロツクコンパレータタイマ値21の値の方が要
求キユー3の先頭のタイマ割込みの要求のタイマ値より
大きい時、CKC1に、要求キユー3の先頭のタイマ割込み
の要求のタイマ値をセツトして、さらに、EQUに“0"を
セツトする。
VM3走行中にSCKC命令が発行された場合には、第21図
(a),(b)に示すように以下の処理を行なう。点線
で囲まれた部分は、実施例1と同じ処理である。SCKC命
令におけるタイマ値をT1,現在の退避クロツクコンパ
レータタイマ値をT2,ハードクロツクコンパレータ1
にセツトされている値をT3とする。
(a),(b)に示すように以下の処理を行なう。点線
で囲まれた部分は、実施例1と同じ処理である。SCKC命
令におけるタイマ値をT1,現在の退避クロツクコンパ
レータタイマ値をT2,ハードクロツクコンパレータ1
にセツトされている値をT3とする。
VM3がCKC値T1でSCKC命令を発行すると、そのSCKC命
令は、実行回路14及びマイクロプログラム23により以下
のように実行される。
令は、実行回路14及びマイクロプログラム23により以下
のように実行される。
第21図(a),(b)の点線で囲まれた部分の処理
は、実施例1の場合と同じであるので、VMモードフラグ
26が“1"かつ非特権モードフラグが“0"かつ、ペンデイ
ングフラグ17が“0"(即ちVMCPによるVM3のCKC割込み保
留がない)の場合の処理を説明する。
は、実施例1の場合と同じであるので、VMモードフラグ
26が“1"かつ非特権モードフラグが“0"かつ、ペンデイ
ングフラグ17が“0"(即ちVMCPによるVM3のCKC割込み保
留がない)の場合の処理を説明する。
NTV43が“1"である場合は、以下の処理を行なう。
SCKC命令のタイマ値T1が、退避クロツクコンパレー
タのタイマ値T2よりも小さい場合には、線37を継由し
てEQU42に“0"を設定して、ハードCKC1には、線39を継
由してSCKC命令のタイマ値T1をセツトする。
タのタイマ値T2よりも小さい場合には、線37を継由し
てEQU42に“0"を設定して、ハードCKC1には、線39を継
由してSCKC命令のタイマ値T1をセツトする。
SCKC命令のタイマ値T1が、退避クロツクコンパレー
タ21の値T2に等しい場合には、線37を継由してEQU42に
1を設定して、ハードCKC1には、線39を継由してSCKC命
令のタイマ値T1をセツトする。
タ21の値T2に等しい場合には、線37を継由してEQU42に
1を設定して、ハードCKC1には、線39を継由してSCKC命
令のタイマ値T1をセツトする。
SCKC命令のタイマ値T1が、退避クロツクコンパレー
タ21の値T2より大きい場合には、線37を継由してNTV43
に“0"を設定して、さらにEQU42に“0"を設定し、ハー
ドCKC1には、線37及び線39を継由して退避クロツクコン
パレータタイマ値21をセツトして、退避クロツクコンパ
レータタイマ値21には線37を継由してSCKC命令のタイマ
値T1をセツトする。
タ21の値T2より大きい場合には、線37を継由してNTV43
に“0"を設定して、さらにEQU42に“0"を設定し、ハー
ドCKC1には、線37及び線39を継由して退避クロツクコン
パレータタイマ値21をセツトして、退避クロツクコンパ
レータタイマ値21には線37を継由してSCKC命令のタイマ
値T1をセツトする。
NTV41が“0"の場合は、以下の処理を行なう。
SCKC命令のタイマ値T1が、ハードCKC1にセツトされ
た値よりも大きい場合には、線37を継由してEQU42に
“0",NTV43に“0"を設定して、退避クロツクコンパレー
タタイマ値21に、線37を継由してSCKC命令のタイマ値T
1をセーブする。
た値よりも大きい場合には、線37を継由してEQU42に
“0",NTV43に“0"を設定して、退避クロツクコンパレー
タタイマ値21に、線37を継由してSCKC命令のタイマ値T
1をセーブする。
SCKC命令のタイマ値T1と、ハードCKC1にセツトされ
た値T3が等しい場合には、線37を継由してEQU42に
“1",NTV43に“1"を設定し、退避クロツクコンパレータ
タイマ値21に、線37を継由してSCKC命令のタイマ値T1
をセツトする。
た値T3が等しい場合には、線37を継由してEQU42に
“1",NTV43に“1"を設定し、退避クロツクコンパレータ
タイマ値21に、線37を継由してSCKC命令のタイマ値T1
をセツトする。
SCKC命令のタイマ値T1が、ハードCKC1にセツトされ
た値T3よりも小さい場合には、線37を継由してEQU42に
“0",NTV43に“1"を設定し、退避クロツクコンパレータ
タイマ値21に、線39及び線37を継由してハードCKC1のタ
イマ値をセーブし、SCKC命令のタイマ値T1を線39を継
由してハードCKC1にセツトする。
た値T3よりも小さい場合には、線37を継由してEQU42に
“0",NTV43に“1"を設定し、退避クロツクコンパレータ
タイマ値21に、線39及び線37を継由してハードCKC1のタ
イマ値をセーブし、SCKC命令のタイマ値T1を線39を継
由してハードCKC1にセツトする。
SCKC命令を、VMモードフラグが“0"で発行した場合、
及び、VMモードフラグが“1"かつ非特権モードフラグが
“1"で発行した場合、及び、VMモードフラグが1かつ特
権モードかつペンデイングフラグ17が“1"(即ちVMCPに
より走行VMのクロツクコンパレータ割込みが保留となつ
ている)の場合のSCKC命令の処理は、それぞれ、実施例
1における処理と同じである。
及び、VMモードフラグが“1"かつ非特権モードフラグが
“1"で発行した場合、及び、VMモードフラグが1かつ特
権モードかつペンデイングフラグ17が“1"(即ちVMCPに
より走行VMのクロツクコンパレータ割込みが保留となつ
ている)の場合のSCKC命令の処理は、それぞれ、実施例
1における処理と同じである。
STCKC命令が発行された場合の処理フローは、第20図
に示すとおりである。点線で囲まれた部分が、従来技術
に相当する処理である。
に示すとおりである。点線で囲まれた部分が、従来技術
に相当する処理である。
VM3の発行するSTCKC命令は、SCKC命令と同様に、命令
実行回路14及びマイクロプログラム23により、以下のよ
うに実行される。
実行回路14及びマイクロプログラム23により、以下のよ
うに実行される。
VMモードフラグ26が“1"、かつ、PSWの非特権モード
フラグ13が“0"かつNTV43が“1"の場合には、線39及び
線30を継由して、CKC1の値が、STCKC命令で指定された
主記憶装置25の領域に格納される。
フラグ13が“0"かつNTV43が“1"の場合には、線39及び
線30を継由して、CKC1の値が、STCKC命令で指定された
主記憶装置25の領域に格納される。
VMモードフラグ26が“1"かつ、PSWの非特権モードフ
ラグ13が“1"の場合には、線33を経由して、割込み回路
16が起動され、VMに特権命令例外が報告される。
ラグ13が“1"の場合には、線33を経由して、割込み回路
16が起動され、VMに特権命令例外が報告される。
VMモードフラグ26が“1"かつ、PSWの非特権モードフ
ラグ13が“0"かつNTV43が“0"の場合には、退避クロツ
クコンパレータ21の値が、線37及び線30を継由して、ST
CKC命令で指定された主記憶装置25の領域に格納され
る。
ラグ13が“0"かつNTV43が“0"の場合には、退避クロツ
クコンパレータ21の値が、線37及び線30を継由して、ST
CKC命令で指定された主記憶装置25の領域に格納され
る。
VMモードフラグ26が“0"で、非特権モードフラグ13が
“0",NTVフラグ43が“1"の場合には、CKC1の値を線39及
び線30を経由して、STCKC命令で指定された主記憶装置2
5の領域に格納される。
“0",NTVフラグ43が“1"の場合には、CKC1の値を線39及
び線30を経由して、STCKC命令で指定された主記憶装置2
5の領域に格納される。
VMモードフラグ26が“0"で、非特権モードフラグ13が
“0",NTVフラグ43が“0"の場合には、退避クロツクコン
パレータ21の値を、線37及び線30を継由して、STCKC命
令で指定された主記憶装置25の領域に格納される。
“0",NTVフラグ43が“0"の場合には、退避クロツクコン
パレータ21の値を、線37及び線30を継由して、STCKC命
令で指定された主記憶装置25の領域に格納される。
VMモードフラグ26が“0",非特権モードフラグ13が
“1"の場合は、VMAにより、VM3のタイマ保持ブロツク内
のVM3のクロツクコンパレータのタイマ値を読み出す。
“1"の場合は、VMAにより、VM3のタイマ保持ブロツク内
のVM3のクロツクコンパレータのタイマ値を読み出す。
VMCPにより、走行VMがVM3から、他VMに切換わる場合
には、NTVフラグ43が“0"であるならば、退避クロツク
コンパレータタイマ値21をVM3のタイマ保持ブロツクに
線37及び線30を継由してセツトし、NTVフラグ43が“1"
の場合には、CKC1の値をVM3のタイマ保持ブロツクに線3
9及び線30を継由してセツトする。
には、NTVフラグ43が“0"であるならば、退避クロツク
コンパレータタイマ値21をVM3のタイマ保持ブロツクに
線37及び線30を継由してセツトし、NTVフラグ43が“1"
の場合には、CKC1の値をVM3のタイマ保持ブロツクに線3
9及び線30を継由してセツトする。
さらに、その割込みが未だ発生していない時は、VM3
のタイマ保持ブロツクを要求キユー3に登録する。
のタイマ保持ブロツクを要求キユー3に登録する。
CKC割込みの処理は、第23図のフローに従う。
CKC1の値がTOD4よりも小さくなつた場合には、割込発
生回路16により、CKC割込みの条件が発生し、マイクロ
プログラム24により以下の処理が行なわれる。
生回路16により、CKC割込みの条件が発生し、マイクロ
プログラム24により以下の処理が行なわれる。
VMモードフラグ26が“0"又は、NTVフラグ43が“0"の
場合には、線35を経由してプレフイクスレジスタ11にVM
CPのPSAのアドレスをセツトして、VMCPのPSAへ割込む。
場合には、線35を経由してプレフイクスレジスタ11にVM
CPのPSAのアドレスをセツトして、VMCPのPSAへ割込む。
VMモードフラグ26が“1"かつ、NTVフラグ43が“1"の
場合には、VMCPを継由せずに線41継由でVM3のPSAへ直接
割込み、さらに、EQUフラグ42が“1"の場合には、線35
を継由してプレフイクスレジスタ11にVMCPのPSAのアド
レスを設定して、VMCPのPSAに割り込む。
場合には、VMCPを継由せずに線41継由でVM3のPSAへ直接
割込み、さらに、EQUフラグ42が“1"の場合には、線35
を継由してプレフイクスレジスタ11にVMCPのPSAのアド
レスを設定して、VMCPのPSAに割り込む。
以上説明したように本発明は、走行中VM専用のクロツ
クコンパレータ機構を設けるものであり、これにより、
以下のような効果がある。
クコンパレータ機構を設けるものであり、これにより、
以下のような効果がある。
仮想計算機上のオペレーテイング・システムは時間に
依存する事象をスケジユーリングするためにクロツクコ
ンパレータを使用しており、そのオーダーはたとえば数
10msecであり、頻度が高い。
依存する事象をスケジユーリングするためにクロツクコ
ンパレータを使用しており、そのオーダーはたとえば数
10msecであり、頻度が高い。
本発明によればこのようにキユーを検索して、タイマ
割込みの要求が既に登録されているかどうかを調べる必
要がなく、スケジユーリングのためのムダ時間が大幅に
短縮される。
割込みの要求が既に登録されているかどうかを調べる必
要がなく、スケジユーリングのためのムダ時間が大幅に
短縮される。
さらに割込みの直接実行も可能となる。
従つて、VMCPのオーバーヘツドを削減できる効果が大
である。
である。
第1図は、従来の計算機システムを表わすブロツク図、
第2図は、従来の仮想計算機システムを表わすブロツク
図、第3図は、クロツクコンパレータの従来処理を示す
ブロツク図、第4図は、本発明の実施例1及び実施例3
の説明図、第5図は、本発明の実施例2の説明図、第6
図は、従来よりあるPSWの説明図、第7図〜第9図は、
実施例3の説明図、第10図〜第23図は、実施例1,2,3を
説明するためのフローチヤートである。 1:従来よりあるCKC,2:仮想計算機VM1によるタイマ値α
のタイマ保持ブロツク、3:クロツクコンパレータ割込み
要求キユー、4:TOD、5:VMCPシステム常駐領域、6:VM1の
PSAエリア、7:VM2のPSAエリア、8:VM3のPSAエリア、9:V
M4のPSAエリア、10:VMCPのPSAエリア、11:プレフイクス
レジスタ、12:PSWのEビツト、13:PSWのPビツト、14:
命令実行回路、15:比較回路、16:割込み回路、17:ペン
デイングフラグ、18:新設レジスタ、19:新設比較回路、
20:ラツチ、21:退避クロツクコンパレータタイマ値、2
2:PSW、23:マイクロプログラム、24:マイクロプログラ
ム、25:主記憶装置、26:VMモードフラグ、27:新設レジ
スタ、28:新設レジスタ、40:命令レジスタ、42:EQUフラ
グ、43:NTVフラグ。
第2図は、従来の仮想計算機システムを表わすブロツク
図、第3図は、クロツクコンパレータの従来処理を示す
ブロツク図、第4図は、本発明の実施例1及び実施例3
の説明図、第5図は、本発明の実施例2の説明図、第6
図は、従来よりあるPSWの説明図、第7図〜第9図は、
実施例3の説明図、第10図〜第23図は、実施例1,2,3を
説明するためのフローチヤートである。 1:従来よりあるCKC,2:仮想計算機VM1によるタイマ値α
のタイマ保持ブロツク、3:クロツクコンパレータ割込み
要求キユー、4:TOD、5:VMCPシステム常駐領域、6:VM1の
PSAエリア、7:VM2のPSAエリア、8:VM3のPSAエリア、9:V
M4のPSAエリア、10:VMCPのPSAエリア、11:プレフイクス
レジスタ、12:PSWのEビツト、13:PSWのPビツト、14:
命令実行回路、15:比較回路、16:割込み回路、17:ペン
デイングフラグ、18:新設レジスタ、19:新設比較回路、
20:ラツチ、21:退避クロツクコンパレータタイマ値、2
2:PSW、23:マイクロプログラム、24:マイクロプログラ
ム、25:主記憶装置、26:VMモードフラグ、27:新設レジ
スタ、28:新設レジスタ、40:命令レジスタ、42:EQUフラ
グ、43:NTVフラグ。
フロントページの続き (72)発明者 澤本 英雄 奏野市堀山下1番地 株式会社日立製作 所神奈川工場内 (72)発明者 久保 隆重 川崎市麻生区王禅寺1099番地 株式会社 日立製作社システム開発研究所内 (56)参考文献 特開 昭55−57953(JP,A) 特開 昭54−107647(JP,A) 山谷、秋山、共著「仮想計算機」(昭 和55年5月20日、共立出版(株)P.86 〜87
Claims (3)
- 【請求項1】一定時間間隔で更新されるタイマと、該タ
イマの値に基づき割込みを発生させるためのタイマ値を
保持するクロックコンパレータとを有し、複数のオペレ
ーティングシステムを1つの計算機システム上で動作さ
せるための管理プログラムを備えた仮想計算機システム
において、走行中でないオペレーティングシステムによ
り設定されたタイマ値を保持する記憶手段と、該記憶手
段に保持されるタイマ値及び走行中のオペレーティング
システムが設定したタイマ値のうち、割込み発生のため
の条件を最先に満たすタイマ値を前記クロックコンパレ
ータに登録する手段と、前記クロックコンパレータに登
録されたタイマ値が、走行中のオペレーティングシステ
ムにより設定されたものか否かを示す識別子を保持する
識別手段と、前記タイマの値と前記クロックコンパレー
タに登録されたタイマ値とを比較して割込み発生のため
の条件が満たされたか否か判定し、前記条件が満たされ
たとき、前記識別手段により前記クロックコンパレータ
に登録されたタイマ値が走行中のオペレーティングシス
テムにより設定されたものであることが示される場合
に、前記走行中のオペレーティングシステムに直接割込
みを発生し、前記クロックコンパレータに登録されたタ
イマ値が走行中のオペレーティングシステムにより設定
されたものでないことが示される場合には、前記管理プ
ログラムへの割込みを発生する手段を有することを特徴
とする仮想計算機システム。 - 【請求項2】前記登録手段は、走行中のオペレーティン
グシステムが設定したタイマ値を保持する第1のレジス
タと、走行中のオペレーティングシステム以外のものが
設定したタイマ値の中で、前記割込み条件を最先に満た
すタイマ値を保持する第2のレジスタと、前記第1及び
第2のレジスタに保持されたタイマ値のうち、先に前記
割込み条件を満たす方のタイマ値を前記クロックコンパ
レータに登録する手段を有することを特徴とする特許請
求の範囲第1項記載の仮想計算機システム。 - 【請求項3】前記登録手段は、該記憶手段に保持される
タイマ値及び走行中のオペレーティングシステムが設定
したタイマ値のうち、前記クロックコンパレータに登録
されていない方のタイマ値を保持するレジスタを有する
ことを特徴とする特許請求の範囲第1項記載の仮想計算
機システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58246287A JP2581659B2 (ja) | 1983-12-28 | 1983-12-28 | 仮想計算機システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58246287A JP2581659B2 (ja) | 1983-12-28 | 1983-12-28 | 仮想計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS60140437A JPS60140437A (ja) | 1985-07-25 |
JP2581659B2 true JP2581659B2 (ja) | 1997-02-12 |
Family
ID=17146298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58246287A Expired - Lifetime JP2581659B2 (ja) | 1983-12-28 | 1983-12-28 | 仮想計算機システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2581659B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62107341A (ja) * | 1985-11-06 | 1987-05-18 | Fujitsu Ltd | クロツク制御方式 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6049352B2 (ja) * | 1978-02-13 | 1985-11-01 | 株式会社日立製作所 | デ−タ処理装置 |
JPS5557953A (en) * | 1978-10-24 | 1980-04-30 | Fujitsu Ltd | Dispatching control system of virtual computer system |
-
1983
- 1983-12-28 JP JP58246287A patent/JP2581659B2/ja not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
山谷、秋山、共著「仮想計算機」(昭和55年5月20日、共立出版(株)P.86〜87 |
Also Published As
Publication number | Publication date |
---|---|
JPS60140437A (ja) | 1985-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7191440B2 (en) | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor | |
US8079035B2 (en) | Data structure and management techniques for local user-level thread data | |
AU2009266333B2 (en) | Efficient recording and replaying of non-deterministic instructions in a virtual machine and CPU therefor | |
JP4896376B2 (ja) | コプロセッサの性能を強化するシステムおよび方法 | |
JP2629278B2 (ja) | 仮想計算機システム | |
JP5573649B2 (ja) | 情報処理装置 | |
US7941652B2 (en) | Apparatus and computer program product for implementing atomic data tracing | |
JPH05257803A (ja) | 仮想記憶空間管理方法及びアドレス計算装置 | |
JP2003345612A (ja) | 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム | |
US8612975B2 (en) | World switch between virtual machines with selective storage of state information | |
US10613895B2 (en) | Virtualization of storage buffers used by asynchronous processes | |
JP2581659B2 (ja) | 仮想計算機システム | |
Bratt | HSA queueing. | |
JPS61184643A (ja) | 仮想計算機の起動制御方式 | |
JPH0567973B2 (ja) | ||
JPH06295265A (ja) | 仮想記憶制御における命令中断情報格納制御方法 | |
JPS6139135A (ja) | 仮想計算機システムにおけるインタバル・タイマ割り込み制御装置 | |
JPH1196022A (ja) | リアルタイム処理計算機 | |
JPH09319598A (ja) | 低コストシグナルマスク制御方式 | |
Carle | CS61C: Machine Structures | |
JPH06259383A (ja) | 割込み制御方法及び割込み制御装置 | |
JPH077365B2 (ja) | 情報処理装置 | |
JPS6121545A (ja) | 仮想計算機制御方式 | |
JPH0388049A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |