JPH0430053B2 - - Google Patents

Info

Publication number
JPH0430053B2
JPH0430053B2 JP58044609A JP4460983A JPH0430053B2 JP H0430053 B2 JPH0430053 B2 JP H0430053B2 JP 58044609 A JP58044609 A JP 58044609A JP 4460983 A JP4460983 A JP 4460983A JP H0430053 B2 JPH0430053 B2 JP H0430053B2
Authority
JP
Japan
Prior art keywords
cpu
guest
scp
host
control
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
Application number
JP58044609A
Other languages
English (en)
Other versions
JPS58191046A (ja
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 filed Critical
Publication of JPS58191046A publication Critical patent/JPS58191046A/ja
Publication of JPH0430053B2 publication Critical patent/JPH0430053B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔発明の分野〕 本発明はゲスト・システム制御プログラム
(SCP)とホストSCPとを切換え、プログラミン
グ・シミユレーシヨンなしにゲストSCPで特権命
令の大部分を直接実行できるように制御するため
の単一プロセツサ又は多重プロセツサ・サポート
手段に関する。
〔背景技術〕
IBM社のシステム/370のアーキテクチヤを用
いたデータ処理システムはシステム内の各CPU
毎に実アドレス・ゼロで始まる4096バイトの特別
のページを主記憶装置に持つ必要がある。このペ
ージはCPUのハードウエア動作とソフトウエア
動作の間のインタフエースであり、一般にプログ
ラム保存領域(PSA)と呼ばれる。PSAは機能
的に予め割当てられた記憶位置、例えば種々の型
の割込みのための新旧のプログラム状況ワード
(PSW)、チヤネル状況ワード(CSW)、チヤネ
ル・アドレス・ワード(CAW)、機械チエツク及
びログアウト保存領域などを含むが、これらは
IBM社の刊行物“IBM System/370 Principles
of Operations”(フオーム番号GA22−7000)に
詳しく述べられている。
システムが1つのCPUのみを含むならば即ち
単一プロセツサ・システムであるならば、実アド
レス・ゼロにおけるPSAページは主記憶装置の
絶対アドレス・ゼロにあることにもなり、この場
合、PSAをアドレスするためにSCPによつて用
いられる実アドレスは主記憶装置の絶対アドレス
への変更なしに直接アドレス指定を行なう。シス
テムが複数のCPUを持つならば即ち多重プロセ
ツサ・システムであるならば、多重プロセツサ・
システム内の任意のCPUで動いているSCPが実
アドレス・ゼロを用いてCPUの夫々のPSAペー
ジを同様にアドレスする。複数のCPUの夫々の
PSAを主記憶装置の絶対アドレス・ゼロの位置
の1つのページに割当てることはできないから、
普通の多重プロセツサ・システムは各CPUに設
けられたプレフイツクス・レジスタに静的に保持
されているプレフイツクス値によつてSCP実アド
レス0−4095を変更することによりこの問題を解
決している。各CPUには異なつたプレフイツク
ス値が与えられ、したがつて各CPUはそれの
PSAに対して異なつた絶対アドレスを有する。
したがつて、多重プロセツサ・システムにおける
複数のPSAは夫々のCPUに設けられた異なつた
プレフイツクス・レジスタの異なつたプレフイツ
クス値によつて主記憶装置内の異なつた非ゼロ絶
対アドレスに置かれる。プレフイツクス値は多重
プロセツサ動作の間中即ちプレフイツクス値が各
CPUのプレフイツクス・レジスタに初期プログ
ラム・ロードされた後は、静的状態(固定状態)
に保たれる。しかし多重プロセツサ・システムで
は絶対アドレス・ゼロのページはどのCPUの
PSAの記憶にも用いられない。それは、異なつ
たPSAを非ゼロ絶対アドレスにプレフイツクス
する結果として、逆方向のプレフイツクスでは、
すべてのCPUでアドレス・ゼロのページが利用
可能でなければならないからである。
単一プロセツサ・システムでは実アドレス・ゼ
ロはPSAの絶対アドレス・ゼロと同じであり、
プレフイツクシングを必要としないから、従来の
単一プロセツサはプレフイツクス・レジスタを持
たない。
プレフイツクシングなしの単一プロセツサ又は
プレフイツクシング付きの多重プロセツサで動作
できる、上記システム/370の最も広く用いられ
ているシステム制御プログラム(SCP)は(1)
IBM社のMVS(多重仮想記憶)SCP、及び(2)
IBM社のVM(仮想計算機)SCPである。これら
のSCPは独立型のオペレーテイング・システム即
ちデータ処理システムにおける唯一のオペレーテ
イング・システムとなるように設計される。数年
前のVM SCPのスタート時には、1つの仮想計
算機のVM SCPの下でもう1つのSCPを走らせ
ることができるように設計され、その場合VM
SCPはホストSCP、VM SCPの下で走るもう1
つのSCPはゲストSCPと考えられていた。ホスト
SCPは2つのSCP間でのシステム資源の割当てに
おけるデツドロツクを防止するためデータ処理シ
ステム全体の制御権を持たなければならないと認
識されていた。従来、このホストとゲストの関係
は、ホストVMプログラムのみがCPUハードウエ
アPSAの状態を制御できるようにすることによ
りホストSCPがゲストSCPを制御するように実施
されていた。例えば、単一プロセツサではVM
PSAのみが絶対アドレス・ゼロに置かれ、そし
て例えば割込み発生時の新旧PSWに対してCPU
ハードウエアはVM PSAのみを用いていた。
VMシステムの下で走る各ゲスト仮想計算機も
PSAを持つていたが、VM SCPがシステム・ハ
ードウエアおよびソフトウエア資源に対する制御
権を維持できるようにするため、ゲスト仮想計算
機のPSAはVMソフトウエアによつてシミユレー
トされ、またゲストの割込み及び特権命令もVM
ソフトウエアによつてシミユレートされた。ゲス
トの非特権命令はCPUが通常の動作状態である
問題プログラム状態にあるとき実行された。しか
しゲスト特権命令はシステム資源の状態に影響を
与えるため、初期のVMホストSCPでは、CPUが
問題プログラム状態にあるときはすべてのゲスト
特権命令が異常動作することが要求された。した
がつてゲストSCPが特権命令を実行しようとした
とき常にCPUの問題プログラム状態はVMホスト
PSAにプログラム割込み(即ちプログラムPSW
スワツプ)を生じた。これによりVM PSAの新
しいプログラムPSWを得て、VMホスト割込み
処理プログラムを呼出し、そして、その特権命令
をCPUハードウエアで直接実行する代わりに、
VMホストSCPはソフトウエアを用いて各ゲスト
特権命令を代行しシミユレートしていた。ゲスト
の特権命令をホストVM SCPでシミユレートし
た場合は、ゲストSCPがその特権命令をCPUハ
ードウエアで直接実行できると仮定したときと同
じプログラミング結果が得られるが、シミユレー
シヨンの場合ホストSCPは各ゲスト特権命令毎に
多数の命令を実行せねばならず、時にはゲスト特
権命令当り数百のホスト命令を実行する必要があ
るため、システム・パフオーマンスが著しく低下
する問題があつた。
また、特権スタートI/O(SIO)命令が用い
られていたため、ゲストによるI/O要求もホス
トによつて制御される必要があると認識されてい
た。したがつて各ゲストSIO命令はホストSCPに
対して問題プログラム状態割込みを生じ、ホスト
SCPがゲストI/O命令を代行していた。しかし
この場合、I/O動作はシミユレートできないた
めホストSCPはそのゲストI/O命令を特権状態
においてCPUハードウエアで直接実行していた。
I/Oから割込み信号があつたときホストSCPは
この割込みを処理してI/O動作の結果をゲスト
SCPに記入し、これによりゲストSCPは、ホスト
制御I/O動作の結果に基いてその動作を続ける
ことができるようにされていた。
初期のVM動作を要約すると、CPUハードウエ
アが問題プログラム状態にあるとき(PSWの問
題プログラム状態ビツトがオンのとき)、ゲスト
SCPによる特権命令の実行はホストSCPによつて
代行されてシミユレートされ、例外としてゲスト
I/O要求はホストSCPによつて直接実行されて
いた。しかしゲストは、シミユレートされるゲス
トPSWの問題プログラム状態ビツトが特権状態
にセツトされるため、ゲストSCPが特権状態で実
行されるものと思つている。
1つのゲスト特権命令の実行をシミユレートす
るには多数の命令がCPUハードウエアによつて
実行されねばならないから、ゲスト特権命令のシ
ミユレーシヨン及びゲストI/O動作の代行は著
しいパフオーマンスの低下をもたらしていた。
その後現われた従来のVM制御技術は、システ
ムが単一プロセツサである場合に、VMの下で動
作するゲストSCPがゲスト特権命令を直接実行す
る方法としてPSAスワツピング方式を用いるも
のである。ゲストがVMホストによつて指名され
たときゲストPSAが単一プロセツサの絶対アド
レス・ゼロへ移動できるならば、ゲストはこのと
きCPUハードウエアを制御しホスト・シミユレ
ーシヨンなしにゲスト特権命令を直接実行しうる
ものと認識されていた。しかしゲストがCPUを
制御している間に、ゲストPSAを絶対アドレ
ス・ゼロから移送しホストPSAを絶対アドレ
ス・ゼロに戻し、ホストSCPに再びCPUの制御
を持たせて制御をVMホストに戻すよう要求する
事態が起こりうることも確認されていた。しかし
VMホストPSAを絶対アドレス・ゼロに戻して
CPU制御をホストに戻すためには、ホスト制御
を要求する特別の事象を認識するための変更をゲ
ストSCPに加える必要があつた。またこの場合、
ゲストSCPがゲスト専用のI/Oアドレスをマス
クするように変更される限りは、ゲスト専用の
I/OについてのゲストI/O要求及びそれらの
結果としてのI/O割込みはゲストSCPの下で直
接実行されうるということも認識されていた。
しかしながらPSAスワツピング方式は次の制
約を有する。(1)多重プロセツサ・システムは
PSAに絶対アドレス・ゼロを用いないから、こ
の方式は単一プロセツサ・システムでしか動作で
きない、(2)ゲストSCPは独立型のバージヨン
(版)とは違つた形に特別に修正される必要があ
る、(3)CPUのゲストPSA制御はゲスト動作にシ
ステム全体の直接制御を与えるからシステム保全
性に関して危険がある。このようなゲスト動作は
例えばMVSのような、十分に研究され尽して完
成度が高く問題を生じる虞れのない“行儀よい”
優先ゲストに制限される必要がある。
公に入手可能なアムダール社のVM/PEソフ
トウエア製品は、ゲストにCPU制御を放棄させ
これをホストVMシステムに戻すようゲストに要
求する特別の事象がゲストMVSソフトウエアの
特別のソフトウエア変更によつて認識されたとき
常に、主記憶装置の絶対アドレス・ゼロのペー
ジ・フレームにおいてVM PSAにMVS PSAを
オーバレイする単一プロセツサPSAスワツピン
グ方式を用いている。MVSソフトウエアの変更
部はゲスト特権命令およびホストあるいは他のゲ
ストの使用可能なI/Oからの割込みを認識す
る。これらはMVSゲストによつては処理できな
いものであり、ゲストにCPU制御をVMホストへ
切替えさせるためには、このことをMVSゲスト
に認識させておく必要がある。VMおよびMVS
ソフトウエアはどのI/OチヤネルがMVSゲス
ト制御に専用されているかを識別する。MVSゲ
ストがI/O命令を出す度に、MVSはそのI/
O命令を実行するためにVMホスト(即ち、VM
PSAオーバレイ)を呼出すように変更される。
もしI/O割込みが受取られたならば、アドレス
されたチヤネルがMVS専用のチヤネルであるか
否かを見るために、そのチヤネルが調べられる。
もしMVSゲスト専用のチヤネルが識別されたな
らば、そのときMVSゲストはI/O割込みを受
入れて処理できる。もしMVSゲスト専用でない
チヤネルが識別されたならば、MVSゲストの変
更部は絶対アドレス・ゼロにおいてVM PSAオ
ーバレイを開始してCPU制御をVMホストに戻
し、VMホストにそのI/O割込みを処理させ
る。ゲストPSAがオーバレイされるときは常に
ゲストPSAは移送されて、ゲストPSA保存のた
めに割当てられた主記憶装置ページ・フレームに
保存され、またVM PSA保存のためにもう1つ
のページ・フレームが割当てられる。PSAのオ
ーバレイは2つの文字長移動(MVCL)命令を
実行することにより2つの主記憶装置移送動作で
次のように行なうことができる。(1)絶対アドレ
ス・ゼロのページ・フレームから、割当てられた
MVS PSA保存ページ・フレームへ4KBのMVS
PSAを移送し、(2)VM PSA保存ページ・フレー
ムから絶対アドレス・ゼロのページ・フレームへ
4KBのVS PSAを移送する。VMホストがMVS
優先ゲストSCPを用いる仮想計算機を指名すると
きは逆の形のPSAスワツピングが必要である。
もしVMホストがホスト・タスクのうちの1つあ
るいは他のゲストを指名するならば、PSAスワ
ツピングは生じない。
VMの下でMVS優先ゲストのシミユレーシヨ
ンを行なう従来のPSAスワツピングには次の問
題がある。
(1) 多重プロセツサ・システムは絶対アドレス・
ゼロに置くことのできない複数のPSAページ
を必要とするから、この従来の方式は多重プロ
セツサでは使用できない。
(2) ある事象の認識時にゲストがVMホストSCP
ソフトウエアに制御を渡すことができるように
するために、MVSゲスト・ソフトウエアに変
更を加える必要がある。このような変更はVM
下のMVSを独立型のMVSとは違つたものにす
るため、ゲスト・ソフトウエアの保全性および
信頼性を減じ、将来の保守を一層困難にする。
(3) ホストとゲストとの間でCPU制御を移し替
えるためにPSAスワツピング移送動作を持つ
必要があり、従来の方式はシステム・パフオー
マンスを低下させる。
(4) 従来の方式は2つの保存ページ・フレームを
用い、そのために全部で8KBの主記憶領域を
使うから、他の機能に利用しうる主記憶領域が
少なくなる。
特別に変更した優先ゲストを特権状態で動作さ
せることによるシステム保全性および信頼性の低
下は次の説明から理解されよう。MVSのような
複雑なプログラムに対する変更は予測しないある
いは予知しないプログラム・バグの発生確率を高
める。特殊な変更は限定的に用いられるから、そ
れだけ、このようなソフトウエア・バグを発見し
修正する機会が制限される。このようなバグによ
る重大な結果(例えばシステムの衝突)の確率
は、優先ゲストがCPUを制御しそれによつて全
主記憶領域(ホスト、および優先ゲストにアクセ
スすべきでない他のゲストによつて用いられる主
記憶領域を含む領域)に対するアクセスを持つ場
合に増大する。問題プログラム状態における
MVSゲストの初期のVMシミユレーシヨンはシ
ステムの保全性を保証する利点を持つていた。つ
まり、VMホストが常に主記憶装置に対するすべ
てのゲスト・アクセスを制御するから、ゲストに
よつて制御されない主記憶領域へのゲストの侵入
が防止され、ゲストから要求された記憶アクセス
はその要求ゲストに割当てられた領域に制限され
ていた。ところが、ゲストが監視プログラム状態
で実行したときは、記憶保護キーによる記憶保護
は上記のシステム/370のアーキテクチヤの下で
は優先ゲストに対して動作しない。というのは、
特権状態の優先ゲストはこのとき記憶保護キー・
ゼロで走るためであり、したがつてゲストによる
誤記憶アクセスは主記憶装置内のホストまたは別
のゲストのプログラムおよびデータを破壊して指
名時にそれらに障害を生じさせることが起りう
る。MVS優先ゲストを特権状態で走らせる選択
が許されたのは、MVSゲストが〔独立型MVS
SCPの何千もの使用者による長年のAPAR(正式
プログラム分析報告書)及びPTF(プログラム一
時修正)の積み重ねによつて〕“行儀よい”プロ
グラムとして認識されていたからであり、したが
つて実際にシステムの保全性あるいは信頼性が損
なわれることはないと期待されていた。しかし
MVSのゲスト・バージヨンがMVSの“行儀よ
い”独立型バージヨンと違う場合は、ゲストは必
ずしも“行儀よい”動作結果を与えず、著しく危
険性が増大する。
〔発明の概要〕
本発明はゲストSCP(例えばMVS)がホスト
SCP(例えばVM)の下で動作していてもゲスト
SCPがCPUを特権状態で走らせることができる
ようにする制御技術を提供するものであり、従来
のPSAスワツピング方式に対して下記の目的及
び利点を有する。
(1) 単一プロセツサだけでなく多重プロセツサあ
るいは付加プロセツサでゲストSCPを走らせる
ことができるようにすること。
(2) ゲストSCPに対して別個のバージヨンを持つ
場合の保守作業及び危険の増大を回避するた
め、ゲストSCPに特別の変更を加えることな
く、ゲストSCPの独立型バージヨンをホスト
SCPの下で走らせることができるようにするこ
と。
(3) ホストSCPとゲストSCPとの間でCPU制御
を切替える場合のPSA移送動作をなくすこと。
(4) 移送されるPSAページを保存するのに以前
必要であつた余分の主記憶スペースの必要性を
なくすこと。
(5) 異なつたSCP間でCPU制御を切替えるのに
必要とされていた時間を減らしてシステム・パ
フオーマンスを改善すること。
(6) 多重プロセツサまたは付加プロセツサが複数
の利用可能なSCPのうちの任意のものによつて
独立的に制御される異なつたCPUを持つこと
ができるようにすること。
本発明によるCPU制御方法は次のような構成
を有する。
複数のシステム制御プログラム(以下、選択的
にホストSCP及びゲストSCPという)の制御の下
に動作する単一及び多重プロセツサ(以下、
CPUという)の各データ処理システムのための
CPU制御方法であつて、各CPUにより実行され
るべき次の命令が当該CPU内のプログラム状況
ワード(以下、PSWという)の記憶手段の命令
アドレスにより指定され、各ホストSCP及びゲス
トSCPに関する旧PSW及び新PSWを記憶するプ
ログラム保存領域(以下、PSAという)が主記
憶装置内に予め割当てられ、現在CPUを制御中
のホストSCP又はゲストSCPのためのPSAポイ
ンタが当該CPU内のプレフイツクス・レジスタ
内に記憶され、CPU内で発生され又は他のCPU
から通信された割込み要求事象が現在CPUを制
御中のゲストSCPによる割込み処理を許容する条
件を満足する場合、上記PSW記憶手段中の現在
のPSWを上記プレフイツクス・レジスタにより
指定されたゲストPSA中の新PSWで置換し、そ
の新PSWの制御の下にゲストSCPにより割込み
動作を実行するよう構成されたデータ処理システ
ムにおけるCPU制御方法にして、 上記割込み要求事象が現在CPUを制御中のゲ
ストSCPによる割込み処理を許容する条件を満足
していない場合、CPUS内のハードウエア/マイ
クロコード手段の制御の下に所定のホストSCPの
ためのPSAポインタを上記主記憶装置から読取
つて上記プレフイツクス・レジスタにロードして
CPUをゲストSCPによる制御からホストSCPに
よる制御に切替え、上記PSW記憶手段中の現在
のPSWを、新たに上記プレフイツクス・レジス
タにロードされた新PSAポインタで指定された
ホストPSA中の新PSWで置換し、その新PSW制
御の下にホストSCPによる割込み動作を実行する
ことを特徴とするCPU制御方法 次に本発明の概要を説明する。
(MVSのような)複数のゲストは新たに見つ
かつたバグを直したりその機能を拡大するために
その独立型バージヨンに周期的に更新されるか
ら、ゲストSCPに対する特別の変更を回避するこ
とは実用上非常に重要なことである。もしSCPの
独立型バージヨンが、ゲストからホストへの
CPU制御切替えをサポートするために、優先ゲ
ストとして使用できるように変更されるべきであ
れば、独立型バージヨンをゲストとして動作させ
るために独立型バージヨンに特別の変更を加える
ことはソフトウエアの信頼性を損う付加的原因に
なる。というのは、長い経験から見て、ソフトウ
エアに変更を加えることは、その変更によつて生
じうる予測できないソフトウエア相互作用によつ
てソフトウエア障害の発生確率が高くなるからで
ある。
コンピユータの使用者は多重プロセツサのより
優れた性能および利用性を得るために単一プロセ
ツサから多重プロセツサへの移行を考えるから、
ゲストSCPを多重プロセツサのハードウエアで走
らせることができることは益々重要になる。
本発明においては、データ処理システム内に1
個または複数個のCPUがあるかに関係なくデー
タ処理システム内の各CPUにプレフイツクス・
レジスタを用いる。本発明はまた、どのような
PSA移送動作も用いないで、システム内の各
CPU毎に、絶対主記憶装置に固定のゲスト及び
ホストPSA記憶位置を設ける。即ち、各CPUは
そのCPUで走らせることができるSCP毎に割当
てられた1つの固定PSAページ・フレームを有
する。本発明の方法では、CPUの制御をある
SCPから別のSCPへ切替えるためCPUのプレフ
イツクス・レジスタの絶対アドレスをあるPSA
から別のPSAへ切替える。本発明は任意数の
SCPの間でCPU制御を切替えるのに使用でき、
最少数は2個であり、良好な実施例でも2個が用
いられる。例えば、1つのCPUに3つのSCPが
利用可能である場合は、そのCPUに割当てられ
た主記憶装置の3つの異なつたページ・フレーム
に3つのPSAが設けられ、CPU制御はCPUプレ
フイツクス・レジスタ内のアドレスを、その
CPUが切替えられるべき他のSCPのPSAへ変え
るだけで切替えできる。もしこの例においてその
CPUがシステム内の唯一のCPU(即ち、単一プロ
セツサ・システム)であるならば、このとき主記
憶装置にはその3つのPSAしか存在しない。し
かし例えば4個のCPUを有する多重プロセツサ
に上記の3つのSCPの例を適用した場合は、各
CPUが他のCPUと無関係に3つのSCPの間で切
替えできるようにするためには、主記憶装置に
は、各CPU毎に3つのPSA、最大で12のPSAが
設けられる。
もしこの例の多重プロセツサ・システムで12よ
りも少ないPSAが設けられた場合は、すべての
PSAが他のCPUによつて同時に用いられていれ
ば、すべてのCPUがSCPを同時に走らせること
ができず、CPU間でPSAの割当てを行ないPSA
を見失わないようにするために付加的なシステ
ム・プログラミングが設けられる。
〔実施例〕
良好な実施例はIBM社の3033CPUまたは
3081CPUのような大型CPUのハードウエアおよ
びマイクロコードに組込まれる。このマイクロコ
ードは、CPUがMVS/370システム制御プログ
ラム(SCP)をホストVM/370SCPの下で優先
ゲスト仮想計算機として走らせている間に特別の
事象を検出する。優先ゲストSCPがCPUを制御
している間に、そのゲストSCPが処理を意図して
いない特別の事象が本発明により検出されたと
き、この実施例のマイクロコードはCPU制御の
切替えを行ない、ホストSCPでCPUの制御を行
なう。これによつてデータ処理システムの性能が
著しく改善される。CPU制御をゲストSCPから
ホストSCPへ切替える特別の事象は(1)ある特権命
令のゲストによる実行またはゲスト待ち状態の開
始、(2)ゲストSCP専用でないチヤネルからのI/
O割込み、(3)ある外部信号及びタイマ割込みであ
る。
好ましい実施例のマイクロコードはゲスト
MVS/370SCPからホストVM/370SCPへの一
方向のCPU制御の切替えを行なう。
反対方向(即ち、ホストVM/370SCPからゲ
ストMVS/370SCPへ)のCPU制御切替えが必
要とされるとき、これはプレフイツクス設定
(SPX)命令を実行するホストVM/370SCPソフ
トウエアによつて行なうことができる。
優先ゲストは、これが絶対アドレス・ゼロから
所定の最大アドレス値まで連続的に絶対記憶アド
レス位置を割当てられた主記憶装置の唯一の使用
者であるという点で、ホストSCP下で動作する他
のゲストと異なる。
この実施例にとつて関心のあるゲストSCPはV
(仮想)=R(実)選択機能付きゲストとしてIBM
社の市販のVM/370によつて確立されている。
第9図は主記憶装置のマツプを例示しており、優
先ゲスト、ページ可能ゲスト及びホストVM/
370中核の絶対アドレス・ロケーシヨンを示して
いる。第9図はVM/370によつて制御される多
重プロセツサ・システムの、絶対アドレスを用い
た主記憶装置マツピングを例示しており、これは
変換済みのMVS優先ゲストの仮想アドレス、変
換済みのページ可能ゲストの仮想アドレス及びホ
ストVM/370SCPの実アドレスを含む。STはセ
グメント・テーブル、PTはページ・テーブルを
示している。システムの各SCPは各CPUとSCP
の間のインタフエースを与えるため各CPU毎に
PSAページ・フレームを必要とする。本発明に
とつて重要なのはこのPSAページ・フレームの
使用である。本発明によれば、任意のSCPの任意
のPSAページを主記憶装置の任意のページ・フ
レームに置くことができる。これは本発明におい
ては、必要とされる時間にどのSCPが夫々の
CPUに対する制御を与えられるべきであつても
そのSCPのPSAのアドレスをCPUプレフイツク
スレジスタに動的にロードすることによつて行な
われる。従来はプレフイツクス・レジスタは
CPUを多重プロセツサに適応させるために静的
に用いられていただけであり、従来の単一プロセ
ツサはどのようなプレフイツクス・レジスタも含
んでいなかつたが、単一プロセツサに本発明を用
いる場合は単一プロセツサにおいてプレフイツク
ス・レジスタが必要である。第9図の主記憶装置
を2つのSCPを持つたシステムで単一プロセツサ
に適応させる場合主記憶装置でPSA(G)−0と
して示されているゲストPSA及びPSA(H)−0
として示されているホストPSAの2つのPSAだ
けが必要である。多重プロセツサでは付加される
CPU毎に付加的なホストPSA即ちPSA(H)が設
けられる。
第1図、第2図、第3図はCPUの制御をゲス
トMVS/370SCPからホストVM/370SCPへ迅
速に且つ効率的に変えるための特別の事象として
I/Oチヤネル割込みを有するCPUにおける3
つの異なつた動作状態に対する良好な実施例の動
作例を表わしている。第1図〜第3図は3つの異
なつた動作状態に対するCPU SCPステータスの
違いを例示するためこの3つの異なつた状態に対
するCPU20及び主記憶装置40の関連ハード
ウエア構造を示している。CPUはプレフイツク
ス・レジスタ21、現PSW(プログラム・ステー
タス・ワード)レジスタ22、及び制御レジスタ
CRを含む。本発明と関係のある制御レジスタは
CR0,CR2,CR6である。現PSWレジスタ2
2はI/O割込みマスク・ビツト位置(IO)6
及び通常CPUによつて実行されるべき次の命令
のアドレスである命令アドレス(IA)を含む。
CR6は主記憶装置40の制御ブロツク
(MICBLOK)41の絶対アドレス(MICBLOK
ポインタ)を含む。制御ブロツク41はホスト
PSA42の絶対アドレスを含むフイールド(ホ
ストPSAポインタ)及び後述する外部PGマス
ク、チヤネル専用マスクの各フイールドを有す
る。もう1つのブロツク44は優先ゲストPSA
43の絶対アドレスであるフイールド(PG
PSAポインタ)を含む。ブロツク41の所定の
フイールドはCR6のMICBLOKポインタに対し
て所定のインデツクスで主記憶装置に置かれる。
このようにCPUはゲストPSA及びホストPSAの
両方の主記憶装置内の記憶位置を知つている。
CPU20におけるCR2は普通であり、夫々シ
ステムI/Oチヤネルに対するビツト位置0−3
1を有する。これらはチヤネル・マスク・ビツト
であり、CPUが対応のチヤネルによつて割込み
可能であることを示すときは1状態にセツトさ
れ、CPUが対応のチヤネルによつて割込み可能
でないとき0状態にセツトされる。
新規なチヤネル専用マスク・レジスタ23の各
ビツト位置は対応のチヤネルが優先ゲスト
MVS/370SCPの専用であることを示すときは0
状態にセツトされ、対応のチヤネルがゲストSCP
の専用でないことを示すときは1状態にセツトさ
れる。レジスタ23のビツト位置0−31はCR
2の夫々のビツト位置と同じチヤネルに対応す
る。
従つてどのようなチヤネル割込みも、夫々の
CR2マスク・ビツトを一時的に0状態にセツト
し、次にCPUがそのチヤネル割込みを受入れた
いと思う場合にI/O割込みを可能とするように
CR2マスク・ビツトを1状態にセツトすること
によつて普通に一時的にセツトすることによつて
普通に一時的に遅延できる。
しかしながらゲストSCPがCPUを制御中のと
きにゲストSCPがシステム内の任意のチヤネルか
らの割込みの処理を許されるか否かはチヤネル専
用マスク・レジスタ23ののビツト位置0−31
によつて決まる。もし対応する専用ビツトが0な
らばゲストMVS/370SCPがその割込みを処理す
る。しかし専用ビツトが1ならばホストMVS/
370SCPが割込みを処理する。
レジスタ23はチヤネルの専用を制御するもの
であつて、装置又は制御ユニツトの専用を制御す
るものでないから、ユーザは優先ゲスト専用の装
置及び制御ユニツトを専用のチヤネルへ接続する
だけでよい。
I/O割込みはCPUプログラムの実行と非同
期である。I/O割込みが受取られるときはゲス
ト又はホストSCPがCPUを制御しており、この
とき、そのI/O割込みがゲスト及びホストSCP
のどちらによつて処理されるべきかを決めるため
にレジスタ23の対応するチヤネル専用マスク・
ビツトが調べられる。他のSCPへのCPU制御の
切替えが必要かどうかは、ゲストSCPが現在
CPUを制御しているかどうかに依存する。もし
そのときホストSCPがCPUを制御していれば、
ホストSCPがすべてのチヤネルからのI/O割込
みを処理するようにプログラムされるから、チヤ
ネルがゲストに専用されているかに関係なく、ホ
ストSCPがI/O割込みを処理する。しかしホス
トSCPがCPUを制御しているときホストSCPは
ゲスト専用のチヤネルからのI/O割込み要求の
処理を禁止される場合があり、このときは制御は
直ちにゲストSCPに戻されゲストSCPが割込み要
求を処理する。
CR6のビツト30は優先ゲスト(PG)ビツト
位置と呼ばれ、その状態はホスト及び優先ゲスト
SCPのどちらが現在CPUを制御しているかを示
す。PGビツトはゲストSCPがCPUを制御してい
るとき1にセツトされ、ホストSCPがCPUを制
御しているとき0にセツトされる。
第1図はホストSCPがCPUを制御していると
き即ちホストPSAがポインタがプレフイツク
ス・レジスタ21にある間に、優先ゲストSCP専
用のチヤネルに接続された装置からI/O割込み
が与えられた第1の例を例示している。この場合
はホストSCPがCPUを制御しているから、割込
みが専用チヤネルからのものかに関係なくどの
I/O割込みもホストSCPによつて処理される。
このチヤネルに対するレジスタ23のチヤネル専
用マスク・ビツトに0状態が与えられている。従
つてCPU制御の切替えは生じず、専用チヤネル
の割込みはホストPSA42を用いる。このとき
CPUの現PSWは線46により旧I/O PSWフ
イールドに記憶され、次に新I/O PSWフイ
ールドに線47によりフエツチされてこれが現
PSWとなり、その後普通にI/O割込みをサー
ビスするようにホストVM/370割込み処理プロ
グラムをアドレスすることによつてCPUが制御
される。
第2図は専用でないチヤネルからのI/O割込
みが生じたときプレフイツクス・レジスタ21に
ゲストPSAポインタがあるような第2の例を示
している。この場合レジスタ23のチヤネル専用
マスク・ビツトは1で、専用でないチヤネルを示
している。このときはMICBLOK41のホスト
PSAポインタ・フイールドを線26によりフエ
ツチしこれをプレフイツクス・レジスタ21にロ
ードすることにより、CPU制御を切替え、ホス
トVM SCPにCPUを制御させる。I/O割込み
はホストPSAを用いる。
第3図はMVSゲスト専用のチヤネルからI/
O割込みが与えられるときゲストPSAポインタ
がプレフイツクス・レジスタ21に置かれている
第3の例を示している。レジスタ23のチヤネル
専用ビツトはこのチヤネルに対して0にセツトさ
れている。この場合CPU制御の切替えはなく、
現PSWを旧I/O PSWに線48により記憶し
ゲストPSA43から新I/O PSWに線49に
よりフエツチすることによりMVS SCPが割込み
を処理する。
本発明は第1図〜第3図に表わされるように単
一プロセツサにおいて又は第4図に示されるよう
に多重プロセツサにおいて使用しうる。
第4図において多重プロセツサはn+1個の
CPU(CPU0−CPUn)を含み、各CPUは第1図
のCPU20に示された構成要素及び外部PGマス
ク・ラツチ45を含む。多重プロセツサによつて
共有された主記憶装置には、各CPUは第1図の
主記憶装置に示されたのと同じ組合わせの構成要
素41,42,43,44、即ちホストPSA4
2、優先ゲストPSA43、MICBLOK41及び
優先ゲストPSAポインタ44を有する。既述し
たように、第9図に示されている主記憶装置絶対
アドレス・マツプは主記憶装置に設けられたホス
トとゲストのPSAの数に従つて単一プロセツサ
又は多重プロセツサに適応しうる。多重プロセツ
サではすべてのCPUが優先ゲストをサポートす
る必要はなく、かかる場合、優先ゲストをサポー
トしないCPUは主記憶装置内にホストPSAだけ
を持てばよい。したがつて第9図には、n+1個
のホストPSA(H)とk+1個のゲストPSA(G)
がある。
第5図は指定されたCPUにおいてゲストSCP
制御からホストSCP制御へCPU制御の切替えを
行なうための本発明における新規なマイクロコー
ド(即ち、フアームウエア)の方式のフロー・チ
ヤートである。第5図で実行されるCPU制御の
切替えは第6図〜第8図のハードウエア又はマイ
クロコードによつて新規な態様で開始される。第
6図〜第8図は何時CPU制御の切替えが起こる
べきかを決め、CPU制御の切替えによつて実行
されるべき割込みのタイプを選択する。
第5図のステツプ53ではホストPSAポイン
タがプレフイツクス・レジスタにロードされる。
他のステツプ54−58においてはCPUでホス
トSCPを実行するための準備をする。即ち、ステ
ツプ53は主記憶装置のMICBLOK41のホス
トPSAポインタ・フイールドを取出し、ホスト
PSA42をアドレスするためにこれをプレフイ
ツクス・レジスタ21にロードする。しかし
CPUは第5図の他のステツプがマイクロコード
によつて実行されるまではホストSCPの実行を開
始する準備ができない。
ステツプ54はレジスタCR6のPGビツト位置
30を0状態にセツトし、ホストSCPがCPUを
制御中であることを示す。
第5図のマイクロコード・ブロツク55−59
はIBM社の3033、3081のような大型CPUに組込
まれている形式のステツプを行なう。第5図の方
法の新規な点は、ステツプ53によつてアドレス
をアクセスし、開示しステツプの組合わせによつ
て上述の結果を与えるようにしたことである、即
ち、第2図の例で論じたようにプレフイツクス・
レジスタ21のPSAポインタをゲストPSAポイ
ンタからホストPSAポインタへ変えることによ
つてゲストSCPからホストSCPへのCPU制御の
マイクロコード切替えを実行するようにしたこと
である。
ステツプ55はIBMシステム/370解説書に示
されているようにCPUの逐次化を行ない、ホス
トSCPがCPUによる次のプログラム命令の実行
を開始する前に主記憶装置に対するすべての未解
決の要求を完了させる。ステツプ56はすべての
TLB(変換索引緩衝機構)の有効ビツトを無効ビ
ツトにセツトすることによりTLBを除去する。
ステツプ57は第6図〜第8図のCPU制御切
替え開始制御によつて要求される割込みの型式に
対してホストPSAを用いてCPU割込みを普通に
実行する。CPU制御の切替えは次にうちの1つ
によつて開始される。(1)I/O PSWスワツプ
を生じる第7図からのチヤネル割込み要求、(2)プ
ログラムPSWスワツプを生じる第8図からの特
別ゲスト命令又はゲスト待ち状態、及び(3)外部
PSWスワツプを生じる第6図からのタイマ割込
み又は外部事象。指定された割込みに対する
PSWスワツプは普通に完了されて命令アドレス
(IA)をCPUの現PSWに与え、今度はこれが次
のSCPプログラム・ルーチンを選択する。
ステツプ58はステツプ57で実行される割込
みの特定の型式を示す割込みコードを発生し、こ
のコードは割込みの原因を示す。ステツプ58
は、また、その発生された割込みコードを現
PSWに置いて、ハードウエア−ソフトウエアの
インタフエースを与え、実行を開始しつつある呼
出されたSCPに、最後に実行された割込みを認知
させる。
次いで第5図の制御スイツチ・マイクロコー
ド・シーケンスは出口2で終了し、呼出された
SCPルーチンがCPUで実行を開始する。
ホストVM/370SCP及び優先ゲストMVS/
370SCPの両方で動作すべきCPUに対して初期プ
ログラム・ローデリングが生じるときは、その
CPUに対して種々の主記憶領域42,43,4
1,44が割当てられ、MICBLOK41のフイ
ールドが挿入され、そのCPUのCR6には
MICBLOKポインタがロードされ、そのPGビツ
ト位置30はホストが最初CPU制御中であるこ
とを示すために0状態に設定される。
MICBLOK41がアクセスされ、そのホスト
PSAポインタ・フイールドがプレフイツクス・
レジスタ21にロードされ、そのチヤネル専用マ
スク・フイールドがチヤネル専用マスク・レジス
タ23にロードされ、その外部優先ゲスト・マス
ク(外部PGマスク)フイールドがアクセスされ、
そのCPUの外部PGマスク・ラツチ45(第6
図)に1ビツトが設定される(1状態はゲスト
SCPが他のCPUからの割込みを処理しないこと
を示す)。ラツチ45の外部マスクが0状態に設
定され、ゲストSCPが外部割込みを処理するのを
可能にする場合は、特定された外部割込みのゲス
トSCP処理を制御するために制御レジスタ0
(CR0)(第6図)のビツト位置17,18に特
定の外部マスク・ビツトが設定される。現PSW
レジスタ22及び制御レジスタのマスク・ビツト
の状態はCPUを制御しているのがホストSCPで
あるか又はゲストSCPであるかに関係なくCPU
動作を制御する。
次に第6図〜第8図の新規な制御切替え開始制
御を詳細に説明する。第5図のゲスト→ホスト・
マイクロコード制御切替えは第6図〜第8図では
参照番号60で示されている。
第6図はCPU制御切替えが開始されるべきか
否かを決めるためのハードウエア・インターバ
ル・タイマ及び外部割込み開始制御を示してい
る。外部割込み要求信号はもう1つのCPUで実
行されるプロセツサ信号(SIGP)命令によつて
与えられ、インターバル・タイマ割込み要求信号
はローカルCPU内で普通に生じる。
ローカルCPUが外部割込み又はローカル・タ
イマ割込みによつて割込みできることはその現
PSWレジスタ22のビツト位置7(EX)の状態
によつて制御される。このビツト位置7は外部割
込みが可能にされるとき1状態に設定され、外部
割込み禁止のとき従つてホストSCP又はゲスト
SCPが制御中であるかに関係なくCPUに割込み
をかけることができないときは0状態に設定され
る。PSWビツト位置7の汎用外部マスクが割込
み可能にされた場合は、CR0の特定の外部マス
ク・ビツト位置17,18がSIGP外部呼出し要
求及びSIGP緊急要求を可能又は不可能にする。
これらのマスク・ビツトは0状態で不可能、1状
態で可能にする。
第6図において、外部優先ゲスト(PG)マス
ク・ラツチ45にはゲスト/ホスト・マスク・ビ
ツトがあり、これはゲストSCPが外部割込みを処
理できるかどうかを制御する。ラツチ45はCR
6がロードされるとき(例えば制御レジスタCR
はゲストがデイスパツチされるとき通常ロードさ
れる)、第1図のMICBLOK41の外部PGマス
ク・フイールドのビツト22の状態に設定され、
優先ゲストが外部割込みを処理するのを許可され
るかどうかを制御する。
しかしタイマ割込みはホストSCPによつて処理
できるだけである。もしゲストSCPによるCPU
制御の期間にタイマ割込み要求信号が生じると、
CPU制御の切替えが起こり、ホストSCPがタイ
マ割込みを処理する。
第6図においてANDゲート61はインターバ
ル・タイマ割込み要求信号及びPSWレジスタ2
2のビツト位置7からの外部割込みマスク信号
(これはインターバル・タイマ割込み及び外部割
込みが許可されるときオンである)の両方を受取
る。ホストSCPがCPUを制御中の場合(即ちCR
6のPGビツトが0の場合)、インバータIによつ
て反転されたPGビツトはANDゲート47を付勢
してANDゲート61からのタイマ割込み信号を
通過させ、第1の外部割込み要求ラツチ(L1)
69をセツトする。ラツチ69は現在のホスト
PSA(現在ホストSCPがCPUを制御中であること
はPGビツトにより示されている)を用いて普通
のCPU外部割込みを開始する(ブロツク70)。
ANDゲート61からタイマ割込み信号が与え
られたとき優先ゲストが制御中(即ちPGビツト
が1)であれば、ANDゲート67が付勢され、
CPU制御の切替えが生じる。ANDゲート47は
反転されたPGビツトにより付勢されない。ゲー
ト67の出力は第2の外部割込み要求ラツチ
(L2)68をセツトし、第5図に関して説明した
CPU制御切替え60を開始する。
もう1つのCPUがローカルCPUへSIGP信号
〔例えば緊急要求信号(外部割込みコード1201)
又は外部呼出し要求信号(外部割込みコード
1202)〕を与える場合、これはANDゲート62,
64によつて受取られる。ANDゲート62,6
4はCR0のマスク・ビツト位置18,17によ
つて制御される。ANDゲート62,64の出力
はORゲート63を通り、ANDゲート65の入力
に与えられる。ANDゲート65のもう1つの入
力はPSWレジスタ22の汎用外部割込みマス
ク・ビツト位置7である。汎用外部マスク・ビツ
トが許可(PSWビツト7が1)にされていれば、
ANDゲート65からSIGP信号が供給され、これ
はANDゲート46,48,66の入力に与えら
れる。ANDゲート66は優先ゲストが外部割込
みを処理するのを禁止されるかを決める。AND
ゲート66への他の入力はCR6のPGビツト位置
の出力(これは優先ゲストがCPUを制御してい
るとき1である)、及びラツチ45の出力(これ
は優先ゲストが外部割込みの処理を禁止されると
きオンにセツトされる)である。ANDゲート6
6は付勢時に第2の外部割込み要求ラツチ(L2)
68をセツトし、CPUの制御をホストSCPへ切
替えるようにCPU制御切替えマイクロコード制
御60を開始する。
しかし、優先ゲストがCPUを制御中で(PGビ
ツトが1に設定されており)、ラツチ45がオフ
に設定されて優先ゲストが外部割込み処理を可能
にされ、その状態でANDゲート65から緊急信
号又は外部呼出し信号が与えられるならば、
ANDゲート66はラツチ45の出力によつて禁
止され、従つてCPU制御の切替えは起らず、
CPUの制御はそのまま優先ゲストSCPが持つて
割込みを処理する。このときはANDゲート46
が付勢されて第1の外部割込み要求ラツチ(L1)
69をセツトし、現在のゲストPSAを用いて
CPU割込みを開始させる。
外部又はタイマ割込みの完了時は普通のCPU
動作が行なわれ、CPUは割込みの型式に応じて
新PSWから得られる現PSWの命令アドレスIAに
よつてアドレスされる命令で割込み後の実行を開
始する(ブロツク59)。
第7図はI/Oチヤネル割込みに応答するため
のCPU制御切替え開始制御を示している。32個
のANDゲート71(0)〜71(31)はチヤネ
ル0〜31の割込み信号出力とI/Oマスク・レジ
スタCR2の対応ビツト位置の出力とを受取る。
各ANDゲート71(0)〜71(31)はPSWレ
ジスタ22のI/Oマスク・ビツト位置
(IOMK)6も入力として受取る。ANDゲート7
1(0)〜71(32)は可能にされたチヤネルが
割込み信号を与えるときは常にOR回路71Aを
介して出力を発生する。
同様に32個のANDゲート72(0)〜72
(31)はANDゲート71(0)〜71(31)の出
力とチヤネル専用レジスタ23のビツト位置の対
応する32個の出力とを受取る。ANDゲート72
(0)〜72(31)はゲストSCP専用でないチヤ
ネルによつて割込み信号が与えれるときは常に
OR回路72Aを介して出力を発生する。
ANDゲート73はORゲート72Aの非専用チ
ヤネル出力と優先ゲストが制御中であることを示
すCR6のPGビツトの1出力状態とを受取つたと
き付勢される。割込みが専用チヤネルから受取ら
れる場合、OR回路72Aは優先ゲストSCP専用
のチヤネルからの割込み信号を通さないから、
ANDゲート73は付勢されない。従つてORゲー
ト72Aは、現在CPUを制御しているので優先
ゲストであるか又はホストであるかに関係なく即
ちCR6のPGビツト30の状態に関係なくAND
ゲート73を禁止する。ANDゲート73の禁止
出力はインバータIを介してANDゲート77を
付勢し、ORゲート71Aからの許可されたチヤ
ネル割込み信号をゲートする。ANDゲート77
の出力は第1のI/O割込み要求ラツチ(L1)
78をセツトして普通のI/O割込みを開始させ
る。このときは、それがホストPSAであるか又
はゲストPSAであるかに関係なく(即ち、PGビ
ツトのセツト状態に関係なく)現在のPSAを用
いて専用チヤネルの割込みを処理する(ブロツク
70)。
ANDゲート73が付勢されたときは、第2の
I/O割込み要求ラツチ(L2)74をセツトし、
ホストPSAを用いてなされるI/O割込みのた
めにCPU制御切替え制御60を開始する。CPU
制御の切換えの完了時には普通のCPU動作が行
なわれ、CPUはI/O新PSWの命令アドレス
(IA)を用いてCPU割込み後の実行を開始する。
第8図は特別の命令セツト又は優先ゲストによ
るCPU待ち状態に対するCPU制御切替え開始制
御を示している。これらの特別命令はI/O命令
及びシステム制御命令を含む。これらのI/O命
令は、チヤネル除去CLRCH(CLEAR
CHANNEL)、入出力除去CLRIO(CLEAR I/
O)、装置停止HDV(HALT DEVICE)、入出力
停止HIO(HALT I/O)、入出力再開RIO
(RESUME I/O)、入出力開始SIO(START
I/O)、早期リリース入出力開始SIOF
(START I/O FAST RELEASE)、チヤネ
ル・テストTCH(TEST CHANNEL)、入出力
テストTIO(TEST I/O)であり、システム制
御命令は、チヤネル・セツト接続CONCS
(CONNECT CHANNEL SET)、チヤネル・セ
ツト切断DISCS(DISCONNECT CHANNEL
SET)、CPU ID記憶STIDP(STORE CPU
ID)、プレフイツクス設定SPX(SET PREFIX)、
ブロツク・テストTB(TEST BLOCK)、制御情
報ロードLCTL(LOAD CONTROL)、CR2又
はCR6ロード(CR2 OR CR6 IN LCTL)、
プロセツサ信号SIGP(SIGNAL PROCESSOR)
である。これらの命令の実行の開始はローカル
CPUのOPデコーダ及び他の命令実行回路に接続
された特別の線を介して合図される。I/O命令
の実行を合図する線はOR回路81に接続され
る。システム制御命令の実行を合図する線はOR
回路93に接続される。ANDゲート91は(本
発明により用いられる)制御レジスタCR2又は
CR6がロードされるべきときのみ制御情報ロー
ド(LCTL)命令信号を出力し、ANDゲート9
2はゲストSCPが外部割込みを処理しうることを
示すためにラツチ45がオンにセツトされるとき
のみプロセツサ信号(SIGP)命令信号を出力す
る。
チヤネル専用レジスタ23のマスク・ビツトは
CPUにより実行されているI/O命令に対して
CPU制御の切替えが開始されるべきであるかの
判定に用いられる。夫々のANDゲート80(0)
〜80(31)はレジスタ23の夫々のチヤネルが
I/O命令によつて選択されるとき付勢される、
CPUからの対応するチヤネル選択線とを受取る。
OR回路80AはANDゲート80(0)〜80
(31)の出力を受取り、選択されたチヤネルが優
先ゲスト専用でないときANDゲート82へ出力
を発生する。
ANDゲート87はANDゲート82の出力及び
ANDゲート83の出力を受取る。ANDゲート8
3は0状態のPSWビツト15によつて示される
CPU特権状態と、1状態にあるCR6のPGビツ
ト(これは優先ゲストがCPUを制御中であるこ
とを示す)とによつて付勢される。従つてAND
ゲート87はCPUが非専用チヤネルに対する
I/O命令の実行を開始するときゲストSCPが特
権状態にあるCPUを制御している場合を示す。
この場合ゲストはI/O命令の実行を許されず、
CPU制御の切替えが行なわれる。これは、AND
ゲート87の出力がOR回路89を通つてプログ
ラム割込み要求ラツチ(L)90をセツトし
CPU制御をホストSCPへ切替えることによつて
行なわれる。
第8図において、ゲストがCPUを制御してい
るときI/O命令でない特別の命令がきたときは
OR回路93から出力が発生され、CPU制御の切
替えが開始される。これはAND回路88によつ
て行なわれる。AND回路88はOR回路93の出
力及びAND回路83の出力を受取る。AND回路
83は優先ゲストが制御中のときCPU特権状態
により付勢される。ANDゲート88が付勢され
るとOR回路89へ出力が与えられ、プログラム
割込み要求ラツチ(L)90をセツトしてCPU
制御切替えマイクロコード制御60を開始させ
る。
CPU制御切替えはゲストが制御中の間にCPU
が待ち状態に入るときにも開始される。CPU待
ち状態はPSWレジスタ22のビツト位置14の
待ち状態ビツトによつて示される。待ち状態ビツ
トはCPUが待ち状態に置かれるときは常に1状
態にセツトされる。ANDゲート86はPSWビツ
ト14の待ち状態出力及びCR6のPGビツト位置
30の状態を受取る。従つてANDゲート86は
優先ゲストがCPUを制御している間にCPU待ち
状態が生じたとき付勢されてOR回路89へ出力
を与え、プログラム割込み要求ラツチ(L)90
をセツトしてCPU制御切替え90を始動させる。
第8図において、システム制御命令がCPU制
御の切替えを開始するときは常に、その命令の実
行はCPUによつて抑止され、このとき実行され
ない。CPU制御の切替えの後にホストSCPがデ
イスパツチされるとき、ホスト・ルーチンはその
抑止された命令の機能を行なう命令を含む。
CPU制御切替えマイクロコード60(これは
第5図のマイクロコード制御に対応する)が完了
したときはブロツク94に進む。ブロツク94は
プログラム割込み後のCPU実行の開始を表わし、
プログラム新PSWの命令アドレス(IA)を用い
てホスト・ルーチンによりCPU動作を続ける。
【図面の簡単な説明】
第1図はI/O割込みの第1のケースの動作説
明図、第2図はI/O割込みの第2のケースの動
作説明図、第3図はI/O割込みの第3のケース
の動作説明図、第4図は本発明を含んでいる多重
プロセツサシステムを示す図、第5図はCPU制
御をゲストSCPからホストSCPへ切替えるための
マイクロコードCPU制御切替え方法を示す図、
第6図は外部割込み及びタイマ割込みによる
CPU制御切替えを示す論理図、第7図はI/O
チヤネル割込みによるCPU制御切替えを示す論
理図、第8図はゲスト待ち状態及び特別のシステ
ム制御命令によるCPU制御切替えを示す論理図、
第9図はホストVM/370SCP、MVS/370優先
ゲストSCP、及び非優先ゲストに対する記憶アド
レス・マツプである。

Claims (1)

  1. 【特許請求の範囲】 1 複数のシステム制御プログラム(以下、選択
    的にホストSCP及びゲストSCPという)の制御の
    下に動作する単一及び多重プロセツサ(以下、
    CPUという)の各データ処理システムのための
    CPU制御方法であつて、各CPUにより実行され
    るべき次の命令が当該CPU内のプログラム状況
    ワード(以下、PSWという)の記憶手段の命令
    アドレスにより指定され、各ホストSCP及びゲス
    トSCPに関する旧PSW及び新PSWを記憶するプ
    ログラム保存領域(以下、PSAという)が主記
    憶装置内に予め割当てられ、現在CPUを制御中
    のホストSCP又はゲストSCPのためのPSAポイ
    ンタが当該CPU内のプレフイツクス・レジスタ
    内に記憶され、CPU内で発生され又は他のCPU
    から通信された割込み要求事象が現在CPUを制
    御中のゲストSCPによる割込み処理を許容する条
    件を満足する場合、上記PSW記憶手段中の現在
    のPSWを上記プレフイツクス・レジスタにより
    指定されたゲストPSA中の新PSWで置換し、そ
    の新PSWの制御の下にゲストSCPによる割込み
    動作を実行するよう構成されたデータ処理システ
    ムにおけるCPU制御方法にして、 上記割込み要求事象が現在CPUを制御中のゲ
    ストSCPによる割込み処理を許容する条件を満足
    していない場合、CPUS内のハードウエア/マイ
    クロコード手段の制御の下に所定のホストSCPの
    ためのPSAポインタを上記主記憶装置から読取
    つて上記プレフイツクス・レジスタにロードして
    CPUをゲストSCPによる制御からホストSCPに
    よる制御に切替え、上記PSW記憶手段中の現在
    のPSWを、新たに上記プレフイツクス・レジス
    タにロードされた新PSAポインタで指定された
    ホストPSA中の新PSWで置換し、その新PSW制
    御の下にホストSCPによる割込み動作を実行する
    ことを特徴とするCPU制御方法。
JP58044609A 1982-04-26 1983-03-18 Cpu制御方法 Granted JPS58191046A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US371754 1982-04-26
US06/371,754 US4494189A (en) 1982-04-26 1982-04-26 Method and means for switching system control of CPUs

Publications (2)

Publication Number Publication Date
JPS58191046A JPS58191046A (ja) 1983-11-08
JPH0430053B2 true JPH0430053B2 (ja) 1992-05-20

Family

ID=23465279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58044609A Granted JPS58191046A (ja) 1982-04-26 1983-03-18 Cpu制御方法

Country Status (5)

Country Link
US (1) US4494189A (ja)
EP (1) EP0093267B1 (ja)
JP (1) JPS58191046A (ja)
CA (1) CA1182575A (ja)
DE (1) DE3381601D1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5960652A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd デ−タ処理装置
US4493034A (en) * 1982-10-14 1985-01-08 Honeywell Information Systems Inc. Apparatus and method for an operating system supervisor in a data processing system
US5109522A (en) * 1983-06-02 1992-04-28 Amdahl Corporation Data processing system with logical processing facility supporting a plurality of system control programs for production operation
CA1213986A (en) * 1983-12-14 1986-11-12 Thomas O. Curlee, Iii Selective guest system purge control
US5392409A (en) * 1984-01-18 1995-02-21 Hitachi, Ltd. I/O execution method for a virtual machine system and system therefor
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
EP0171475B1 (en) * 1984-08-17 1990-04-11 Amdahl Corporation Data processing system with logical processor facility
US4967342A (en) * 1984-08-17 1990-10-30 Lent Robert S Data processing system having plurality of processors and channels controlled by plurality of system control programs through interrupt routing
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
JPS62154037A (ja) * 1985-12-26 1987-07-09 Hitachi Ltd 仮想計算機監視制御方式
US5038281A (en) * 1986-09-19 1991-08-06 International Business Machines Corporation Acceleration of system interrupts between operating systems in guest-host relationship
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
US5280604A (en) * 1986-12-29 1994-01-18 Nec Corporation Multiprocessor system sharing expandable virtual memory and common operating system
US5218712A (en) * 1987-07-01 1993-06-08 Digital Equipment Corporation Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5121486A (en) * 1987-11-20 1992-06-09 Hitachi, Ltd Network control system for dynamically switching a logical connection between an identified terminal device and an indicated processing unit
JP2629278B2 (ja) * 1988-06-30 1997-07-09 株式会社日立製作所 仮想計算機システム
JPH02171934A (ja) * 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JP2839201B2 (ja) * 1990-07-30 1998-12-16 株式会社日立製作所 仮想計算機システム
JPH0496828A (ja) * 1990-08-15 1992-03-30 Hitachi Ltd 多重絶対アドレス空間構成方法および装置
AU3424293A (en) * 1992-01-02 1993-07-28 Amdahl Corporation Computer system with two levels of guests
EP0667573A1 (en) * 1994-02-14 1995-08-16 International Business Machines Corporation Incorporation of services written in one operating system environment into another operating system environment
US5555414A (en) * 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
US5649140A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation System for use in translating virtual addresses into absolute addresses
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7913255B2 (en) * 2005-10-20 2011-03-22 Qualcomm Incorporated Background thread processing in a multithread digital signal processor
US7650469B2 (en) * 2006-09-06 2010-01-19 International Business Machines Corporation Determining whether a non-running processor has access to an address space
US7698541B1 (en) * 2006-10-31 2010-04-13 Netapp, Inc. System and method for isochronous task switching via hardware scheduling
US11443040B2 (en) 2019-03-08 2022-09-13 International Business Machines Corporation Secure execution guest owner environmental controls
US11475167B2 (en) 2020-01-29 2022-10-18 International Business Machines Corporation Reserving one or more security modules for a secure guest
US11533174B2 (en) 2020-01-29 2022-12-20 International Business Machines Corporation Binding secure objects of a security module to a secure guest
GB2630336A (en) 2023-05-24 2024-11-27 Ibm Identity based hierarchical sessions
US20260037290A1 (en) * 2024-07-31 2026-02-05 International Business Machines Corporation Machine interpretation for a virtualized guest configuration

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4351024A (en) * 1975-04-21 1982-09-21 Honeywell Information Systems Inc. Switch system base mechanism
US4042912A (en) * 1975-06-19 1977-08-16 Honeywell Information Systems Inc. Database set condition test instruction
JPS5394143A (en) * 1977-01-28 1978-08-17 Oki Electric Ind Co Ltd High-speed data transmission-reception system
JPS6049352B2 (ja) * 1978-02-13 1985-11-01 株式会社日立製作所 デ−タ処理装置
JPS5619153A (en) * 1979-07-25 1981-02-23 Fujitsu Ltd Virtual computer system

Also Published As

Publication number Publication date
EP0093267A3 (en) 1987-03-18
JPS58191046A (ja) 1983-11-08
US4494189A (en) 1985-01-15
DE3381601D1 (de) 1990-06-28
CA1182575A (en) 1985-02-12
EP0093267B1 (en) 1990-05-23
EP0093267A2 (en) 1983-11-09

Similar Documents

Publication Publication Date Title
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
US5187802A (en) Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
US4347565A (en) Address control system for software simulation
JPH087678B2 (ja) 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法
JPS6258341A (ja) 入出力割込処理方式
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPS62243058A (ja) マルチプロセツサシステムの割込制御方法
US5093776A (en) Information processing system emulation apparatus and method
JPH0458056B2 (ja)
EP0619899B1 (en) Software control of hardware interruptions
EP0550283A2 (en) Invoking hardware recovery actions via action latches
GB2216306A (en) Load and synchronize computer architecture and process
US5003468A (en) Guest machine execution control system for virutal machine system
JPH0192843A (ja) データ処理装置
JPH0552535B2 (ja)
JPH0646380B2 (ja) 情報処理装置
JPH0567973B2 (ja)
JPS6139135A (ja) 仮想計算機システムにおけるインタバル・タイマ割り込み制御装置
JPH0336633A (ja) 仮想計算機の割り込み直接実行方式
JPS62219058A (ja) 共有メモリの排他制御方式
JPS60193046A (ja) 命令例外検出方式
JPH0150936B2 (ja)
JPS60140437A (ja) 仮想計算機システムタイマ制御方式
JPS61208133A (ja) 仮想計算機システムにおける状態レジスタ制御装置
JPH0217563A (ja) 共有メモリの初期化方法