JPH02734B2 - - Google Patents
Info
- Publication number
- JPH02734B2 JPH02734B2 JP59184742A JP18474284A JPH02734B2 JP H02734 B2 JPH02734 B2 JP H02734B2 JP 59184742 A JP59184742 A JP 59184742A JP 18474284 A JP18474284 A JP 18474284A JP H02734 B2 JPH02734 B2 JP H02734B2
- Authority
- JP
- Japan
- Prior art keywords
- ups
- guest
- cpu
- address
- program
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45541—Bare-metal, i.e. hypervisor runs directly on hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明はユニプロセツサで動作するように設計
されたプログラミング・システムが、IBMシス
テム/370XA(拡張アーキテクチヤ)によつて構
築されたマルチプロセツサを利用できるようにす
る方法に係る。
されたプログラミング・システムが、IBMシス
テム/370XA(拡張アーキテクチヤ)によつて構
築されたマルチプロセツサを利用できるようにす
る方法に係る。
[従来技術]
仮想計算機(VM)ハイパバイザ・プログラ
ム、例えばIBM VM/システム・プロダクト
(SP)は、多年にわたつて広く使用されている。
このVM/SPは通常、主記憶装置の上位アドレ
ス部分にロードされ、普通はシステムの中央処理
装置(CPU)および主記憶(MS)から離れてい
るタイプライタ/デイスプレイ・ターミナルをそ
れぞれ大型システムにインタフエースする多数の
ユーザのプログラム実行を調整する。VMの利点
は、大型システムの見かけ上のデータ処理能力を
各ユーザに与えることである。ユーザ(VM“ホ
スト”の“ゲスト”と呼ぶこともある)には、
VM制御プログラムによつて、各ユーザがシステ
ム上で仕事をするときに動作するそれぞれのMS
領域が割当てられる。ログオン(Logon)は、ユ
ーザがユーザ自身をシステムのために識別し、シ
ステム使用許可を要求する。ログオンの後、ゲス
トは、接続されたシステムのアーキテクチヤとイ
ンタフエースするように設計されているプログラ
ムをランできる。例えば、S/370アーキテクチ
ヤの命令セツトを、S/370システム上でランし
ているゲスト・プログラムにより使用できる。
MVSのようなオペレーテイング・システムは
VM/SPによつてゲストとしてランされていた。
各ゲストは、ゲスト実記憶と呼ばれる、割当てら
れたMS部分を管理する。それは、この部分がゲ
スト・オペレーテイング・システムによつて制御
されるシステム記憶装置であるからである。しか
しながら、VM動作では、ゲスト実記憶は実際に
は仮想記憶であり、必要に応じて、VMホストの
実記憶に写像(map)されなければならない。
MSの下位アドレス部分(ホスト実アドレス)を
絶対アドレス0で始まるゲスト・オペレーテイン
グ・システムの等価アドレス(ゲスト実アドレ
ス)に割当てることにより、単純化が行なわれ、
それは一般に、1つの良好なゲストの性能を更に
よくするものであつた。このようなゲストは仮想
(V)=実(R)のゲストと呼ばれる。他のゲスト
は他のMSアドレス領域で動作する。
ム、例えばIBM VM/システム・プロダクト
(SP)は、多年にわたつて広く使用されている。
このVM/SPは通常、主記憶装置の上位アドレ
ス部分にロードされ、普通はシステムの中央処理
装置(CPU)および主記憶(MS)から離れてい
るタイプライタ/デイスプレイ・ターミナルをそ
れぞれ大型システムにインタフエースする多数の
ユーザのプログラム実行を調整する。VMの利点
は、大型システムの見かけ上のデータ処理能力を
各ユーザに与えることである。ユーザ(VM“ホ
スト”の“ゲスト”と呼ぶこともある)には、
VM制御プログラムによつて、各ユーザがシステ
ム上で仕事をするときに動作するそれぞれのMS
領域が割当てられる。ログオン(Logon)は、ユ
ーザがユーザ自身をシステムのために識別し、シ
ステム使用許可を要求する。ログオンの後、ゲス
トは、接続されたシステムのアーキテクチヤとイ
ンタフエースするように設計されているプログラ
ムをランできる。例えば、S/370アーキテクチ
ヤの命令セツトを、S/370システム上でランし
ているゲスト・プログラムにより使用できる。
MVSのようなオペレーテイング・システムは
VM/SPによつてゲストとしてランされていた。
各ゲストは、ゲスト実記憶と呼ばれる、割当てら
れたMS部分を管理する。それは、この部分がゲ
スト・オペレーテイング・システムによつて制御
されるシステム記憶装置であるからである。しか
しながら、VM動作では、ゲスト実記憶は実際に
は仮想記憶であり、必要に応じて、VMホストの
実記憶に写像(map)されなければならない。
MSの下位アドレス部分(ホスト実アドレス)を
絶対アドレス0で始まるゲスト・オペレーテイン
グ・システムの等価アドレス(ゲスト実アドレ
ス)に割当てることにより、単純化が行なわれ、
それは一般に、1つの良好なゲストの性能を更に
よくするものであつた。このようなゲストは仮想
(V)=実(R)のゲストと呼ばれる。他のゲスト
は他のMSアドレス領域で動作する。
ゲスト・プログラムの実行中は、ゲストがI/
Oを必要としてI/O開始命令(SIOまたは
SIOF)を出そうと試みても、そうすることはで
きない。その理由は、使用するチヤネル・プログ
ラムが書込まれた領域とは違つたMS領域にゲス
トのVM位置がある場合、ゲストのチヤネル・プ
ログラムは動作しないからである。従つて、ゲス
トがSIOまたはSIOF命令を出そうと試みる場合、
VMは、ゲストのプログラム実行に割込み、ゲス
トのためにゲスト・プログラム実行プロセスを引
継ぐ。ゲストI/Oを行なうには、VMは最初
に、ゲストPSAページ・フレームの記憶位置72
(すなわち、ゲスト・ページ0)に移動すること
により、ゲスト・チヤネル・プログラムを見つ
け、ゲストのチヤネル・プログラムにおける第1
のチヤネル・コマンド・ワード(CCW)のアド
レスを含むチヤネル・アドレス・ワード(CAW)
を得る。MS内の最初のCCWを見つけるために、
VMは、MSのゲスト領域の(すなわちMS絶対
アドレス0からの)MSオフセツトを最初のCCW
アドレスに加えることにより、MSでこの最初に
得られたCCWアドレスをその絶対アドレスに変
換する。そしてVMは、チヤネル・プログラムを
実行し、ゲスト領域のどのページ・フレームが転
送中のデータに必要であるかを決め、かつ、I/
Oデータ転送に備えて、これらのページ・フレー
ムを確定する。次いでVMは、チヤネル・プログ
ラムをVM領域にコピーし、そのCCW内のアド
レスを、I/Oデータ転送の場合、ゲスト領域に
新規に確定したページ・フレームでアクセスされ
る(I/Oチヤネル・ハードウエアが必要とす
る)絶対アドレスに変更する。最後に、VMは、
VM領域に構築されたI/Oチヤネル・プログラ
ムの実行を開始し、ゲストが必要とするI/O転
送を実行する。それ故、VMによるゲストI/O
動作は、ユーザ・プログラムが、それが書込まれ
たMS領域のプログラムとして実行される場合に
は存在しない、かなりの量のVMプログラミン
グ・オーバヘツドを含むことが明らかである。
Oを必要としてI/O開始命令(SIOまたは
SIOF)を出そうと試みても、そうすることはで
きない。その理由は、使用するチヤネル・プログ
ラムが書込まれた領域とは違つたMS領域にゲス
トのVM位置がある場合、ゲストのチヤネル・プ
ログラムは動作しないからである。従つて、ゲス
トがSIOまたはSIOF命令を出そうと試みる場合、
VMは、ゲストのプログラム実行に割込み、ゲス
トのためにゲスト・プログラム実行プロセスを引
継ぐ。ゲストI/Oを行なうには、VMは最初
に、ゲストPSAページ・フレームの記憶位置72
(すなわち、ゲスト・ページ0)に移動すること
により、ゲスト・チヤネル・プログラムを見つ
け、ゲストのチヤネル・プログラムにおける第1
のチヤネル・コマンド・ワード(CCW)のアド
レスを含むチヤネル・アドレス・ワード(CAW)
を得る。MS内の最初のCCWを見つけるために、
VMは、MSのゲスト領域の(すなわちMS絶対
アドレス0からの)MSオフセツトを最初のCCW
アドレスに加えることにより、MSでこの最初に
得られたCCWアドレスをその絶対アドレスに変
換する。そしてVMは、チヤネル・プログラムを
実行し、ゲスト領域のどのページ・フレームが転
送中のデータに必要であるかを決め、かつ、I/
Oデータ転送に備えて、これらのページ・フレー
ムを確定する。次いでVMは、チヤネル・プログ
ラムをVM領域にコピーし、そのCCW内のアド
レスを、I/Oデータ転送の場合、ゲスト領域に
新規に確定したページ・フレームでアクセスされ
る(I/Oチヤネル・ハードウエアが必要とす
る)絶対アドレスに変更する。最後に、VMは、
VM領域に構築されたI/Oチヤネル・プログラ
ムの実行を開始し、ゲストが必要とするI/O転
送を実行する。それ故、VMによるゲストI/O
動作は、ユーザ・プログラムが、それが書込まれ
たMS領域のプログラムとして実行される場合に
は存在しない、かなりの量のVMプログラミン
グ・オーバヘツドを含むことが明らかである。
ゲストI/Oチヤネル・プログラムのアドレス
再配置で付加されたVMオーバヘツドは負担を重
くするが、優先ゲストとも呼ばれる最初のゲスト
を絶対アドレス0にロードする、すなわち、優先
ゲストの仮想アドレス空間の下位アドレス部分
を、実アドレス0で始まるMS実アドレス空間に
直接にコピーしてV=Rのユーザとする場合を除
けば、前記オーバヘツドを避ける一般化された方
法は見つかつていない。(実アドレスはユニプロ
セツサ(UP)の絶対アドレスと同じであるが、
マルチプロセツサ(MP)の絶対アドレスとは同
じではない。)この仮想アドレス対実アドレスの
写像は優先ゲストに関してのみ仮想アドレス変換
を不要とし、それによつて優先ゲストのI/Oチ
ヤネル・プログラムが再配置を判なわずに使用で
きる。しかしながら、最初のゲスト以外のゲスト
はV=Rのゲストにはなり得ず、VMは前記の煩
わしい方法でそれらのI/Oチヤネル・プログラ
ムを処理しなければならない。
再配置で付加されたVMオーバヘツドは負担を重
くするが、優先ゲストとも呼ばれる最初のゲスト
を絶対アドレス0にロードする、すなわち、優先
ゲストの仮想アドレス空間の下位アドレス部分
を、実アドレス0で始まるMS実アドレス空間に
直接にコピーしてV=Rのユーザとする場合を除
けば、前記オーバヘツドを避ける一般化された方
法は見つかつていない。(実アドレスはユニプロ
セツサ(UP)の絶対アドレスと同じであるが、
マルチプロセツサ(MP)の絶対アドレスとは同
じではない。)この仮想アドレス対実アドレスの
写像は優先ゲストに関してのみ仮想アドレス変換
を不要とし、それによつて優先ゲストのI/Oチ
ヤネル・プログラムが再配置を判なわずに使用で
きる。しかしながら、最初のゲスト以外のゲスト
はV=Rのゲストにはなり得ず、VMは前記の煩
わしい方法でそれらのI/Oチヤネル・プログラ
ムを処理しなければならない。
非優先ゲストI/Oチヤネル・プログラムの
VM処理の負担増加は、大量のI/O活動を行な
う非優先ゲストの場合に限りかなりのものになる
ので、大量のI/O活動を行なうプログラムは、
優先ゲストの場合を除き、VMによつて効率的に
処理できず、1つの優先ゲストのみがVMによつ
て効率的に処理できる。このVM限界は、ユニプ
ロセツサUPまたはマルチプロセツサMPのどち
らでVMがランされても生じる。その理由はどち
らの主記憶も、絶対アドレスの拡張が1つしかな
いからである(絶対アドレスはUPの実アドレス
と同じである)。MPにおけるVM限界は、MPの
1つのCPUしか、システムにおける1つの優先
ゲストを実行できないことである。非優先ゲスト
を実行しているMPの他のCPUは、UPの場合と
同じようにVMゲストI/O処理の負担が重くな
る。
VM処理の負担増加は、大量のI/O活動を行な
う非優先ゲストの場合に限りかなりのものになる
ので、大量のI/O活動を行なうプログラムは、
優先ゲストの場合を除き、VMによつて効率的に
処理できず、1つの優先ゲストのみがVMによつ
て効率的に処理できる。このVM限界は、ユニプ
ロセツサUPまたはマルチプロセツサMPのどち
らでVMがランされても生じる。その理由はどち
らの主記憶も、絶対アドレスの拡張が1つしかな
いからである(絶対アドレスはUPの実アドレス
と同じである)。MPにおけるVM限界は、MPの
1つのCPUしか、システムにおける1つの優先
ゲストを実行できないことである。非優先ゲスト
を実行しているMPの他のCPUは、UPの場合と
同じようにVMゲストI/O処理の負担が重くな
る。
MPの場合のI/O負担の解決法は、適切な内
部プログラム・ロツクを有する読取専用形式のプ
ログラムを再設計し、該プログラムを複数の
CPUで直接かつ同時に実行できるようにするこ
とである。これは、MSが、絶対アドレス0で始
まるプログラムの1つのコピーしか持たないこと
に関連し、このコピーは同時かつ独自に複数の
CPU上で実行されており、必要なプログラム調
整は内部プログラム・ロツクによつて維持され
る。
部プログラム・ロツクを有する読取専用形式のプ
ログラムを再設計し、該プログラムを複数の
CPUで直接かつ同時に実行できるようにするこ
とである。これは、MSが、絶対アドレス0で始
まるプログラムの1つのコピーしか持たないこと
に関連し、このコピーは同時かつ独自に複数の
CPU上で実行されており、必要なプログラム調
整は内部プログラム・ロツクによつて維持され
る。
あいにく、MP動作の場合の複合UPプログラ
ムの再設計は費用がかかり、ほどほどにエラーが
ないようにするには長い期間を要する。いくつか
のユニプロセツサ・プログラミング・システム
(UPS)が作成されており、多くのUPSプログラ
ムには、ユニプロセツサ(UP)システムをラン
するための実アドレツシング(仮想アドレツシン
グではない)が含まれる。システム/370のACP
およびTPFプログラムはUPSの実例である。こ
れらのプログラムは、24ビツト実アドレスを用
い、非常に多量のI/O活動を行なうが、MP上
で直接にランするようには設計されていない。こ
れらのプログラムは、このUPSが、このUPSプ
ログラムのコピーを1回実行するように、設計さ
れている1つの実アドレス範囲において複数の
CPUでそれ自身の制御によつて直接にランされ
ているが、プログラムの完全性を維持するのに必
要な内部ロツクに関する設計はなされていない。
ムの再設計は費用がかかり、ほどほどにエラーが
ないようにするには長い期間を要する。いくつか
のユニプロセツサ・プログラミング・システム
(UPS)が作成されており、多くのUPSプログラ
ムには、ユニプロセツサ(UP)システムをラン
するための実アドレツシング(仮想アドレツシン
グではない)が含まれる。システム/370のACP
およびTPFプログラムはUPSの実例である。こ
れらのプログラムは、24ビツト実アドレスを用
い、非常に多量のI/O活動を行なうが、MP上
で直接にランするようには設計されていない。こ
れらのプログラムは、このUPSが、このUPSプ
ログラムのコピーを1回実行するように、設計さ
れている1つの実アドレス範囲において複数の
CPUでそれ自身の制御によつて直接にランされ
ているが、プログラムの完全性を維持するのに必
要な内部ロツクに関する設計はなされていない。
ACP/TPFの場合、若し、従来のVM制御の
下に別個のゲストとして複数のプログラム・コピ
ーを用いて、MPの複数のCPUで同時にランされ
るならば、I/O処理の負担は過剰になる。これ
は、チヤネル・プログラムの解釈および再配置が
最初のコピーを除く全コピーに必要とするからで
ある。これは、非常に頻度の高いI/O動作処理
を要するACP/TPFの場合、特にあてはまる。
下に別個のゲストとして複数のプログラム・コピ
ーを用いて、MPの複数のCPUで同時にランされ
るならば、I/O処理の負担は過剰になる。これ
は、チヤネル・プログラムの解釈および再配置が
最初のコピーを除く全コピーに必要とするからで
ある。これは、非常に頻度の高いI/O動作処理
を要するACP/TPFの場合、特にあてはまる。
密結合を用いるMP主記憶装置では、CPUが要
求した実アドレスは、CPUハードウエア・プレ
フイツクシングにより絶対アドレス(ユーザにと
つて見かけ上ではない)に変更される。絶対アド
レツシングはMPにおいて必要とされる。という
のは、複数CPUの各々は、実アドレス0に置か
れるそれ自身の制御データ領域(プレフイツクス
保管領域PSAと呼ばれる)を有するからである。
MP主記憶装置は1つの実際のアドレス0(絶対
アドレス0と呼ばれる)しか持つていない。従つ
て、各CPUの実アドレス0は非0絶対アドレス
にプレフイツクスされ、各CPUの実アドレス0
は、MP計算機における単一の絶対アドレス範囲
にある別個の非オーバラツプ絶対アドレスに置か
れる。普通、絶対アドレス0のページはPSAペ
ージとしては使用されない。このように、PSA
ページをアクセスするために設けられたCPU実
アドレスは、対応する絶対アドレスとは異なる
が、主記憶装置をアクセスするために設けられた
他の全CPU実アドレスは対応する絶対アドレス
と同じである。MPにおける0と最大値(MP計
算機ごとに異なることがある。例えば、64MB)
の間には1セツトの絶対アドレスしかないから、
UPSプログラムの1つのコピーしか主記憶装置
に置くことができない。
求した実アドレスは、CPUハードウエア・プレ
フイツクシングにより絶対アドレス(ユーザにと
つて見かけ上ではない)に変更される。絶対アド
レツシングはMPにおいて必要とされる。という
のは、複数CPUの各々は、実アドレス0に置か
れるそれ自身の制御データ領域(プレフイツクス
保管領域PSAと呼ばれる)を有するからである。
MP主記憶装置は1つの実際のアドレス0(絶対
アドレス0と呼ばれる)しか持つていない。従つ
て、各CPUの実アドレス0は非0絶対アドレス
にプレフイツクスされ、各CPUの実アドレス0
は、MP計算機における単一の絶対アドレス範囲
にある別個の非オーバラツプ絶対アドレスに置か
れる。普通、絶対アドレス0のページはPSAペ
ージとしては使用されない。このように、PSA
ページをアクセスするために設けられたCPU実
アドレスは、対応する絶対アドレスとは異なる
が、主記憶装置をアクセスするために設けられた
他の全CPU実アドレスは対応する絶対アドレス
と同じである。MPにおける0と最大値(MP計
算機ごとに異なることがある。例えば、64MB)
の間には1セツトの絶対アドレスしかないから、
UPSプログラムの1つのコピーしか主記憶装置
に置くことができない。
従つて、従来技術では:
(1) CPUは、MPの2以上のCPUで直接に実行
することができない。その理由は、複数の
CPUが書込み可能部分を競合することによつ
て生じる実行上の障害がないようにする、内部
プログラム・ルーチンにおけるプログラム・ロ
ツクが欠けているからである。
することができない。その理由は、複数の
CPUが書込み可能部分を競合することによつ
て生じる実行上の障害がないようにする、内部
プログラム・ルーチンにおけるプログラム・ロ
ツクが欠けているからである。
(2) VM I/Oの負担により、UPSが非常に頻
度の高いI/O活動を行なう場合には、VMの
下に複数のCPUでUSPの複数コピーの、VM
による間接的実行は(動作可能ではあるが)、
経済的見地からは実用的ではない。
度の高いI/O活動を行なう場合には、VMの
下に複数のCPUでUSPの複数コピーの、VM
による間接的実行は(動作可能ではあるが)、
経済的見地からは実用的ではない。
(3) 複数のCPUの動作の複合UPSプログラムを
書き直すことは、MPプログラミング技術分野
の当業者にとつて可能ではあるが、莫大な費用
がかかり、かなりの時間と多くの検査を必要と
する。
書き直すことは、MPプログラミング技術分野
の当業者にとつて可能ではあるが、莫大な費用
がかかり、かなりの時間と多くの検査を必要と
する。
その結果、より高速で信頼性のあるMPが使用
可能であつても、このようなUSPの最も効率的
な処理は、UPにおける単一のCPU動作に限られ
る。従つて、単一CPUで実行するように設計さ
れた現に存在するACPまたはTPFプログラムは、
MPシステムの複数のCPUでは効率的に実行する
ことができないので、最高のMP処理速度は、
ACP/TPFトランザクシヨンに関しては得るこ
とができない。もちろん、別個のUPのCPUを利
用することは可能であるが、いくつかの共用され
た物理的構成要素を使用するから、一般的にMP
ハードウエアは、一定量の処理能力に対しては低
価格のパーケージを提供する。
可能であつても、このようなUSPの最も効率的
な処理は、UPにおける単一のCPU動作に限られ
る。従つて、単一CPUで実行するように設計さ
れた現に存在するACPまたはTPFプログラムは、
MPシステムの複数のCPUでは効率的に実行する
ことができないので、最高のMP処理速度は、
ACP/TPFトランザクシヨンに関しては得るこ
とができない。もちろん、別個のUPのCPUを利
用することは可能であるが、いくつかの共用され
た物理的構成要素を使用するから、一般的にMP
ハードウエアは、一定量の処理能力に対しては低
価格のパーケージを提供する。
[発明が解決しようとする問題点]
本発明の目的は下記の通りである:
(1) MPシステムの複数のCPUが互いに、UPSプ
ログラミング・システムを変更せずに、大量の
I/O活動を行なうユニプロセツサ・プログラ
ミング・システム(1つのCPUでしか動作し
ないように設計されている)を効率的にランで
きるようにする。
ログラミング・システムを変更せずに、大量の
I/O活動を行なうユニプロセツサ・プログラ
ミング・システム(1つのCPUでしか動作し
ないように設計されている)を効率的にランで
きるようにする。
(2) UPSの複数のコピーが同じ物理的経路を介
して同じ外部データ・ベースDASD装置をアク
セスできるようにする。その場合、UPSは外
部のUPS間通信手段を使用し、レコードのロ
ツクおよび同期を行なう。例えば、フアイル制
御装置ハードウエア・ロツクは、ロツクされて
いる各レコードの識別子を含み、ロツクは特定
の読取り要求の時刻にオンにセツトされ、同じ
レコードがこのレコードの更新が済んでから再
書込みされるまではオフにセツトされることは
ない。
して同じ外部データ・ベースDASD装置をアク
セスできるようにする。その場合、UPSは外
部のUPS間通信手段を使用し、レコードのロ
ツクおよび同期を行なう。例えば、フアイル制
御装置ハードウエア・ロツクは、ロツクされて
いる各レコードの識別子を含み、ロツクは特定
の読取り要求の時刻にオンにセツトされ、同じ
レコードがこのレコードの更新が済んでから再
書込みされるまではオフにセツトされることは
ない。
(3) MPシステムの複数のCPUが、UPSにおける
アドレスを変更せずにMPの完全性を維持しな
がら、かつMPの完全性ロツクをUPSに挿入せ
ずに、高いI/O活動を行なうUPSプログラ
ミング・システムを同時に効率的に実行できる
ようにする。
アドレスを変更せずにMPの完全性を維持しな
がら、かつMPの完全性ロツクをUPSに挿入せ
ずに、高いI/O活動を行なうUPSプログラ
ミング・システムを同時に効率的に実行できる
ようにする。
(4) 高いI/O活動を行なうUPSの複数のコピ
ーが、MP主記憶装置のそれぞれの2nバイト・
アドレス位置に置かれ、MPシステムのそれぞ
れのCPUでUPSコピーの効率的な同時実行が
得られるようにする。
ーが、MP主記憶装置のそれぞれの2nバイト・
アドレス位置に置かれ、MPシステムのそれぞ
れのCPUでUPSコピーの効率的な同時実行が
得られるようにする。
(5) MPで動作できるVMハイパバイザ型の制御
プログラムを供給し、それぞれのCPUが使用
する、主記憶装置の複数の領域に同等にコピー
できる高いI/O活動を行なうUPSのそれぞ
れのコピーを、複数のCPUで効率的に、同時
にかつ独立して実行できるようにする。
プログラムを供給し、それぞれのCPUが使用
する、主記憶装置の複数の領域に同等にコピー
できる高いI/O活動を行なうUPSのそれぞ
れのコピーを、複数のCPUで効率的に、同時
にかつ独立して実行できるようにする。
(6) システム/370拡張アーキテクチヤ(S/
370XA)に従つて構築されたMPシステムが、
たとえUPSプログラムが高いI/O活動を行
ない、かつ実アドレスの1つのエクスパンスの
内部MP完全性ロツクなしに書込まれたとして
も、MPの複数CPUで独立して実行している主
記憶装置に複数のコピーを有するUPSプログ
ラムを実行できるようにする。
370XA)に従つて構築されたMPシステムが、
たとえUPSプログラムが高いI/O活動を行
ない、かつ実アドレスの1つのエクスパンスの
内部MP完全性ロツクなしに書込まれたとして
も、MPの複数CPUで独立して実行している主
記憶装置に複数のコピーを有するUPSプログ
ラムを実行できるようにする。
(7) MPの複数のCPUが高いI/O活動を行なう
UPSの複数MSコピーを独自に効率的に実行で
きるようにする。それによつて、各コピーは、
ハイパバイザ・プログラムのエミユレーシヨン
命令によつて変更されたアーキテクチヤを有す
るそれぞれのCPUで実行され、UPSが書込ま
れた型のCPUをエミユレートする。
UPSの複数MSコピーを独自に効率的に実行で
きるようにする。それによつて、各コピーは、
ハイパバイザ・プログラムのエミユレーシヨン
命令によつて変更されたアーキテクチヤを有す
るそれぞれのCPUで実行され、UPSが書込ま
れた型のCPUをエミユレートする。
(8) MSのそれぞれの領域で高いI/O活動を行
なうUPSのそれぞれのコピーを実行中の複数
CPU間のアドレツシング干渉を下記により防
ぐ: (a) 1つのCPUに実アドレツシングを使用さ
せ、その実アドレスをMS絶対アドレスに直
接に写像するUPSコピーを実行する。
なうUPSのそれぞれのコピーを実行中の複数
CPU間のアドレツシング干渉を下記により防
ぐ: (a) 1つのCPUに実アドレツシングを使用さ
せ、その実アドレスをMS絶対アドレスに直
接に写像するUPSコピーを実行する。
(b) もう1つのCPUで実行するため相互の
UPSコピーのそれぞれの変換表を使用し、
そのUPS実アドレスを、それぞれのMS領域
にアクセスされているMS絶対アドレスに変
換する。
UPSコピーのそれぞれの変換表を使用し、
そのUPS実アドレスを、それぞれのMS領域
にアクセスされているMS絶対アドレスに変
換する。
(c) 解釈実行開始(SIE)命令で用いたエミユ
レーシヨン状態記述子(SD)にあるアドレ
ツシング限界保護を使用する。
レーシヨン状態記述子(SD)にあるアドレ
ツシング限界保護を使用する。
(9) UPSのI/Oチヤネル・プログラム実アド
レスを、チヤネルのMSアクセス要求時に簡単
に絶対アドレスに変更できるようにする。それ
によつて: (a) MSの別のUPSコピーを用いる他のCPUの
実行と互いに干渉せずに、 (b) 実際に占有された実記憶装置を反映するチ
ヤネル・プログラム・アドレスのソフトウエ
アを変更せずに、 (c) チヤネル・プログラムの複製を除く、従つ
て、UPSに見られるようなチヤネル・プロ
グラムの変更を伴なわずに新しいアドレスを
挿入できるので、 I/OチヤネルがMSで実行中の複数の
UPSコピーの1つにあるI/O領域を適切
にアドレスできる。
レスを、チヤネルのMSアクセス要求時に簡単
に絶対アドレスに変更できるようにする。それ
によつて: (a) MSの別のUPSコピーを用いる他のCPUの
実行と互いに干渉せずに、 (b) 実際に占有された実記憶装置を反映するチ
ヤネル・プログラム・アドレスのソフトウエ
アを変更せずに、 (c) チヤネル・プログラムの複製を除く、従つ
て、UPSに見られるようなチヤネル・プロ
グラムの変更を伴なわずに新しいアドレスを
挿入できるので、 I/OチヤネルがMSで実行中の複数の
UPSコピーの1つにあるI/O領域を適切
にアドレスできる。
(10) VMゲストに、MSのそれぞれの2nバイト・
アドレスに置かれたUPSのそれぞれのコピー
を使用させることにより、効率的な直接のI/
Oチヤネル処理を可能にする。それによつて、
VMゲストごとに、チヤネル・アドレスは、各
チヤネル・アドレスに2nバイト・アドレスから
取出されたゾーン係数をOR(または連結)す
ることにより、チヤネルによつてMS絶対アド
レスに変換される。このチヤネル変換は変換表
を含まず、変換ごとのMSアクセスを行なわず
に実行できる。
アドレスに置かれたUPSのそれぞれのコピー
を使用させることにより、効率的な直接のI/
Oチヤネル処理を可能にする。それによつて、
VMゲストごとに、チヤネル・アドレスは、各
チヤネル・アドレスに2nバイト・アドレスから
取出されたゾーン係数をOR(または連結)す
ることにより、チヤネルによつてMS絶対アド
レスに変換される。このチヤネル変換は変換表
を含まず、変換ごとのMSアクセスを行なわず
に実行できる。
(11) 他のUPSコピーをサービスしている使用中
の装置の要求された動作の持ち行列を維持する
ことにより、共用I/O装置におけるI/O動
作の干渉を防ぐ。
の装置の要求された動作の持ち行列を維持する
ことにより、共用I/O装置におけるI/O動
作の干渉を防ぐ。
(12) 使用中のI/O装置がその動作を完了する
と、待ち行列中の、もう1つのUPSコピーの
I/O命令を取出し、I/O装置が待ち行列中
のI/O命令を最初に要求しているUPSが専
用しているCPUに割込むように指示する。
と、待ち行列中の、もう1つのUPSコピーの
I/O命令を取出し、I/O装置が待ち行列中
のI/O命令を最初に要求しているUPSが専
用しているCPUに割込むように指示する。
(13) (システム/370 I/Oを用いるようにコ
ード化された)UPSが、UPSが変更せずに、
拡張チヤネル数を含むシステム/370XA I/
O能力を使用できるようにする。
ード化された)UPSが、UPSが変更せずに、
拡張チヤネル数を含むシステム/370XA I/
O能力を使用できるようにする。
[問題点を解決するための手段]
本発明は、MPシステムでランするように作成
されてはいないユニプロセツサ・システム
(UPS)のために独特な多重処理環境を提供す
る。本発明は、ハイパバイザ型の制御プログラム
(区分された多重処理プログラムMPと呼ぶ)を
提供し、MPにおいて、例えば複数DASDで単一
のI/Oデータ・ベースを共用する能力を有する
MPの主記憶装置(MS)にあるUPSのそれぞれ
のコピーの、複数CPUによる同時実行を可能に
する。PMPは、MSにあるUPSの特定のコピー
との関連性をCPUに与える。UPSのそれぞれの
コピーを実行中の複数のCPUは、互いに独立し
てランするが、I/O装置を共用できる。PMP
は、“IBM System/370 Extended
Architecture Principles of Operation”(IBM
Publication No.SA22―7085―0)、“IBM
Assists for MVS/XA”(IBM Publication
No.SA22―7092―0)、およびA.Padegs、
“System/370Extended Architecture:Design
Considerations”IBM Journal of Research
and Development、May1983、vol.27、No.3、
pp198―205の論文に既に開された370―XAアー
キテクチヤを有するCPUで動作するように設計
された、仮想計算機(VM)型のジヨブ入力およ
びタスク指名制御プログラミング・システムによ
つてランできる。プログラム作業は、それぞれの
UPSコピーによる実行のために開始され、それ
ぞれのUPSゲストのタスクとしてVM/PMPに
よつて制御される。
されてはいないユニプロセツサ・システム
(UPS)のために独特な多重処理環境を提供す
る。本発明は、ハイパバイザ型の制御プログラム
(区分された多重処理プログラムMPと呼ぶ)を
提供し、MPにおいて、例えば複数DASDで単一
のI/Oデータ・ベースを共用する能力を有する
MPの主記憶装置(MS)にあるUPSのそれぞれ
のコピーの、複数CPUによる同時実行を可能に
する。PMPは、MSにあるUPSの特定のコピー
との関連性をCPUに与える。UPSのそれぞれの
コピーを実行中の複数のCPUは、互いに独立し
てランするが、I/O装置を共用できる。PMP
は、“IBM System/370 Extended
Architecture Principles of Operation”(IBM
Publication No.SA22―7085―0)、“IBM
Assists for MVS/XA”(IBM Publication
No.SA22―7092―0)、およびA.Padegs、
“System/370Extended Architecture:Design
Considerations”IBM Journal of Research
and Development、May1983、vol.27、No.3、
pp198―205の論文に既に開された370―XAアー
キテクチヤを有するCPUで動作するように設計
された、仮想計算機(VM)型のジヨブ入力およ
びタスク指名制御プログラミング・システムによ
つてランできる。プログラム作業は、それぞれの
UPSコピーによる実行のために開始され、それ
ぞれのUPSゲストのタスクとしてVM/PMPに
よつて制御される。
VM/PMPは:
(1) MPにおける全タスクの割当ての場合、
(2) 各I/O装置の、UPS動作への割当ての場
合、 MPの完全性を確保する。また、VM/PMP
は、他のUPSコピーが要求した動作を実行して
使用中であるI/O装置に対し、UPSが出した
命令を保持するI/O待ち行列を維持することに
より、MPで複数のUPSコピーが共用するI/O
経路の完全性を物理的にも論理的にも確保する。
要求されたI/O装置が解放されると、PMPは
待機中の次の命令を待ち行列から出すことができ
る。
合、 MPの完全性を確保する。また、VM/PMP
は、他のUPSコピーが要求した動作を実行して
使用中であるI/O装置に対し、UPSが出した
命令を保持するI/O待ち行列を維持することに
より、MPで複数のUPSコピーが共用するI/O
経路の完全性を物理的にも論理的にも確保する。
要求されたI/O装置が解放されると、PMPは
待機中の次の命令を待ち行列から出すことができ
る。
UPSのコピーはMP主記憶装置(MS)のそれ
ぞれの領域にプログラム・ロードされる。各領域
は、それぞれ異なつたMS記憶位置で始まり、連
続するバイト領域を含む。
ぞれの領域にプログラム・ロードされる。各領域
は、それぞれ異なつたMS記憶位置で始まり、連
続するバイト領域を含む。
VM/PMPは、最初、MSの最上位アドレスに
プログラム・ロードされるのが望ましい。その
後、UPSのコピーを、MSの最下位アドレスから
ロードすることができる。次のコピーは、ログオ
ン・プロセスによつていつでもMSにロードでき
る。
プログラム・ロードされるのが望ましい。その
後、UPSのコピーを、MSの最下位アドレスから
ロードすることができる。次のコピーは、ログオ
ン・プロセスによつていつでもMSにロードでき
る。
MSの大きさは、少なくとも、それぞれのUPS
コピーのために設けられた領域数に、VM/
PMPおよびその他のプログラム領域を加えたも
のでなければならない。UPSプログラムは、そ
の領域しかカバーしない有効アドレスの大きさを
用いることがあり、このアドレスの大きさはMS
の絶対アドレス範囲をアドレスするのに不十分な
ことがある。例えば、UPSは24ビツト・アドレ
スを有することがあり、MS絶対アドレスは24ビ
ツト・アドレツシングを越える、例えば26ビツト
であるかもしれない。VM/PMPは、MPの各
CPUで独立してランし、UPSおよび非UPS作業
のタスク指名を含めて、それぞれのCPUにすべ
ての作業をタスク指名する。CPUでの非UPS作
業は、若し、そのCPUにUPSが割当てられてい
ないか、または割当てられたUPSが実行可能で
はないならば実行できる。非UPS作業はVM作業
であるかもしれない。その場合、VM/PMPは
VM制御プログラムに制御を渡しVM制御プログ
ラムは、通常のVMの場合のように、VM作業の
CPUおよびI/O実行を制御する。VM/PMP
はUPS作業の実行をPMPに渡す。PMPの制御に
よつて、CPUをUPS作業に専用できる。VM作
業は、UPS作業に専用されていないCPUまたは
VM作業に専用されるCPUで実行できる。
コピーのために設けられた領域数に、VM/
PMPおよびその他のプログラム領域を加えたも
のでなければならない。UPSプログラムは、そ
の領域しかカバーしない有効アドレスの大きさを
用いることがあり、このアドレスの大きさはMS
の絶対アドレス範囲をアドレスするのに不十分な
ことがある。例えば、UPSは24ビツト・アドレ
スを有することがあり、MS絶対アドレスは24ビ
ツト・アドレツシングを越える、例えば26ビツト
であるかもしれない。VM/PMPは、MPの各
CPUで独立してランし、UPSおよび非UPS作業
のタスク指名を含めて、それぞれのCPUにすべ
ての作業をタスク指名する。CPUでの非UPS作
業は、若し、そのCPUにUPSが割当てられてい
ないか、または割当てられたUPSが実行可能で
はないならば実行できる。非UPS作業はVM作業
であるかもしれない。その場合、VM/PMPは
VM制御プログラムに制御を渡しVM制御プログ
ラムは、通常のVMの場合のように、VM作業の
CPUおよびI/O実行を制御する。VM/PMP
はUPS作業の実行をPMPに渡す。PMPの制御に
よつて、CPUをUPS作業に専用できる。VM作
業は、UPS作業に専用されていないCPUまたは
VM作業に専用されるCPUで実行できる。
UPSコピーにあるI/Oアドレス(すなわち、
I/O実アドレス)を、簡単にMS絶対アドレス
に変換できるようするため、各領域は、基数2の
整数乗、すなわち2nの境界バイト・アドレスで始
まる。ただし、最初のUPS領域は、絶対アドレ
ス0で開始することができる。2nバイト境界によ
り、MS絶対アドレスは、2nで表わされた境界値
とUPS I/Oアドレスを連結して容易に生成さ
れ、変換された絶対アドレスが生じる。更に、よ
り一般的なI/Oアドレス変換装置を用いて領域
の境界をより柔難に見つけることができる(ただ
し、この装置はより複雑で高価になる)。
I/O実アドレス)を、簡単にMS絶対アドレス
に変換できるようするため、各領域は、基数2の
整数乗、すなわち2nの境界バイト・アドレスで始
まる。ただし、最初のUPS領域は、絶対アドレ
ス0で開始することができる。2nバイト境界によ
り、MS絶対アドレスは、2nで表わされた境界値
とUPS I/Oアドレスを連結して容易に生成さ
れ、変換された絶対アドレスが生じる。更に、よ
り一般的なI/Oアドレス変換装置を用いて領域
の境界をより柔難に見つけることができる(ただ
し、この装置はより複雑で高価になる)。
各領域の最下位アドレスは、システム/370ア
ーキテクチヤに従つて構築できる、ゲストの
PSAページで始まり、ゲスト実アドレス0を有
する。各ゲストのPSAページの内容は、シミユ
レートされる、すなわち、CPUハードウエア動
作ではなくプログラム命令によつて完全に書込ま
れる。
ーキテクチヤに従つて構築できる、ゲストの
PSAページで始まり、ゲスト実アドレス0を有
する。各ゲストのPSAページの内容は、シミユ
レートされる、すなわち、CPUハードウエア動
作ではなくプログラム命令によつて完全に書込ま
れる。
しかしながら、システムの各CPUは、ハード
ウエア制御されたPSAページも有し、例えば、
ハードウエア割込みでハードウエア入力された内
容を受取る。各CPUのPSAページは、CPUのプ
レフイツクス・レジスタの内容により、MSの
PMP領域に置かれることが望ましい。CPUの
PSAページにある新しいPSWは、ハードウエア
割込みを処理するためPMP領域のルーチンを指
す。
ウエア制御されたPSAページも有し、例えば、
ハードウエア割込みでハードウエア入力された内
容を受取る。各CPUのPSAページは、CPUのプ
レフイツクス・レジスタの内容により、MSの
PMP領域に置かれることが望ましい。CPUの
PSAページにある新しいPSWは、ハードウエア
割込みを処理するためPMP領域のルーチンを指
す。
VM/PMPはホスト制御プログラムとして動
作し、各CPUをエミユレーシヨン状態にするこ
とにより、UPSコピーを、それぞれのCPUでエ
ミユレートされたゲストとして実行できるように
し、UPSゲスト・プログラムを実行する。PMP
が370―XAモードで動作中のCPUをエミユレー
シヨン状態にする1つの方法は、PMPがSIE(解
釈実行開始)命令を実行し、CPUにシステム/
370またはシステム/360のアーキテクチヤをエミ
ユレートさせることである。SIE命令は、特公昭
61―22825号公報に開示、説明されている。MS
の各UPSは、CPUがCPSゲストを実行すべきと
きはいつも、前記のCPUの各々でSIE命令を実行
してエミユレーシヨン状態にすることにより、
MPのCPUの別々の1つでエミユレートできる
個々のゲストとして処理される。
作し、各CPUをエミユレーシヨン状態にするこ
とにより、UPSコピーを、それぞれのCPUでエ
ミユレートされたゲストとして実行できるように
し、UPSゲスト・プログラムを実行する。PMP
が370―XAモードで動作中のCPUをエミユレー
シヨン状態にする1つの方法は、PMPがSIE(解
釈実行開始)命令を実行し、CPUにシステム/
370またはシステム/360のアーキテクチヤをエミ
ユレートさせることである。SIE命令は、特公昭
61―22825号公報に開示、説明されている。MS
の各UPSは、CPUがCPSゲストを実行すべきと
きはいつも、前記のCPUの各々でSIE命令を実行
してエミユレーシヨン状態にすることにより、
MPのCPUの別々の1つでエミユレートできる
個々のゲストとして処理される。
CPUにおけるUPSゲストのエミユレーシヨン
状態は、ハードウエア割込みが生じるごとに一時
的に中止されるか、またはUPSゲストは: (1) UPSのI/O開始命令 または (2) ゲストの現在のプログラム・ステータス・ワ
ード(PSW)のI/O割込可能フイールドを
オンにセツトするUPS命令(例えば、システ
ム・マスク・セツト命令) のどちらかを実行する。エミユレーシヨン状態が
存在しなくなると、CPU制御はUPSゲストから
PMPホストに渡され、PMPはそれぞれ: (1) 要求されたI/O装置を開始するか、 (2) 割込みを生じる特別の命令、例えばSSMを
シミユレートするか、または (3) エミユレーシヨン・モードからの出口を生じ
るハードウエア割込みを処理する。
状態は、ハードウエア割込みが生じるごとに一時
的に中止されるか、またはUPSゲストは: (1) UPSのI/O開始命令 または (2) ゲストの現在のプログラム・ステータス・ワ
ード(PSW)のI/O割込可能フイールドを
オンにセツトするUPS命令(例えば、システ
ム・マスク・セツト命令) のどちらかを実行する。エミユレーシヨン状態が
存在しなくなると、CPU制御はUPSゲストから
PMPホストに渡され、PMPはそれぞれ: (1) 要求されたI/O装置を開始するか、 (2) 割込みを生じる特別の命令、例えばSSMを
シミユレートするか、または (3) エミユレーシヨン・モードからの出口を生じ
るハードウエア割込みを処理する。
そしてPMPは再びCPUをエミユレーシヨン状
態に戻し、UPSゲストによる実行を続ける。
態に戻し、UPSゲストによる実行を続ける。
[実施例]
A 全般説明
第2図は本発明を使用できるマルチプロセツサ
(MP)のハードウエア構成を示す。MPは4つの
CPUを含み、各CPUは、密結合されたMPシス
テムの主記憶装置に従来の方法で接続され、主記
憶装置はこれらのCPUによつて共用される。主
記憶装置は、特定のCPUが専用する排他的領域
を有することがあるが、このような排他的領域
は、本発明が利用する主記憶装置の部分ではな
い。本発明が利用する共用可能な主記憶装置の部
分は、どのCPUも、読取りまたは書込み命令の
アドレス位置をアクセスできるようにする。
(MP)のハードウエア構成を示す。MPは4つの
CPUを含み、各CPUは、密結合されたMPシス
テムの主記憶装置に従来の方法で接続され、主記
憶装置はこれらのCPUによつて共用される。主
記憶装置は、特定のCPUが専用する排他的領域
を有することがあるが、このような排他的領域
は、本発明が利用する主記憶装置の部分ではな
い。本発明が利用する共用可能な主記憶装置の部
分は、どのCPUも、読取りまたは書込み命令の
アドレス位置をアクセスできるようにする。
第2図のI/Oプロセツサは、多数のI/O装
置(I/Oと呼ばれる)の1つを主記憶装置に接
続するすべてのチヤネル機能を備え、それによつ
て、どのI/O装置も、I/Oプロセツサによつ
て設けられたサブチヤネル(SCH)を介し、
I/Oプロセツサによつて実行され且つチヤネル
制御ワード(CCW)から成るチヤネル・プログ
ラムの制御によつて、主記憶装置内のアドレスさ
れた領域との間でデータ・レコードを送受するこ
とができる。第2図に示したMPシステムは、
IBM Publication No.SA22―7085―0で定義さ
れたIBMシステム/370拡張アーキテクチヤ
(370―XA)によつて設計されているものと仮定
する。また、MP中の各CPUは、ハードウエアお
よび(または)マイクロコードを含み、特公昭61
―22825号公報で定義されたSIE(解釈実行開始)
命令を備えている。
置(I/Oと呼ばれる)の1つを主記憶装置に接
続するすべてのチヤネル機能を備え、それによつ
て、どのI/O装置も、I/Oプロセツサによつ
て設けられたサブチヤネル(SCH)を介し、
I/Oプロセツサによつて実行され且つチヤネル
制御ワード(CCW)から成るチヤネル・プログ
ラムの制御によつて、主記憶装置内のアドレスさ
れた領域との間でデータ・レコードを送受するこ
とができる。第2図に示したMPシステムは、
IBM Publication No.SA22―7085―0で定義さ
れたIBMシステム/370拡張アーキテクチヤ
(370―XA)によつて設計されているものと仮定
する。また、MP中の各CPUは、ハードウエアお
よび(または)マイクロコードを含み、特公昭61
―22825号公報で定義されたSIE(解釈実行開始)
命令を備えている。
仮想計算機/区分多重処理プログラム(VM―
PMP)の良好な実施例は、それぞれのゲストを
実行中の各CPUでSIE命令を実行することによ
り、システム/370をエミユレートするゲストと
してMSにあるUPSコピーの1つを各CPUで実行
する。各SIE命令の実行は、CPUを、状態記述
(SD)と呼ばれる、MSにある制御ブロツクで定
義されたエミユレーシヨン状態にする。SIE命令
は、SDをアドレスする1つのオペランドを有す
る。すなわち、SDは、それぞれのCPUでエミユ
レートされるハードウエア状態を定義するフイー
ルドを含むので、MSにある特定のUPSコピーか
ら得られたUPSプログラムは、UPSが最初に設
計された、エミユレートされた環境(例えば、シ
ステム/360またはシステム/370)のCPUで実
行できる。SDフイールドは: (1) UPSゲストの実アドレス0が割当てられて
いる、ゲスト・ページ0にある、MS絶対アド
レスを含む起点フイールド、 (2) ゲストの領域を含むMS領域の連続バイトの
大きさを含むエクステント・フイールド、 (3) ゲストの現在のPSW(プログラム・ステータ
ス・ワード)のフイールド(ゲスト割込みに使
用されるゲストの現在のPSWを含み、PMPの
プログラム命令の順序によりそのゲストの
PSW交換が行なわれ、どのクラスのゲスト割
込みでも、ゲストのSDからの現在のPSWフイ
ールドを、ゲスト・ページ0にあるそのクラス
の古いPSWフイールドにコピーし、次いで、
ゲスト・ページ0からの各割込みクラスの新し
いPSWフイールドを、そのSDの現在のPSWフ
イールドにコピーし、ゲストの新しい命令アド
レスおよび新しい状態を指示する)、 (4) ゲストの16個の汎用レジスタ(GR)および
16個の制御レジスタ(CR)、 (5) 他のゲスト状態のその他のフイールドを含
む。
PMP)の良好な実施例は、それぞれのゲストを
実行中の各CPUでSIE命令を実行することによ
り、システム/370をエミユレートするゲストと
してMSにあるUPSコピーの1つを各CPUで実行
する。各SIE命令の実行は、CPUを、状態記述
(SD)と呼ばれる、MSにある制御ブロツクで定
義されたエミユレーシヨン状態にする。SIE命令
は、SDをアドレスする1つのオペランドを有す
る。すなわち、SDは、それぞれのCPUでエミユ
レートされるハードウエア状態を定義するフイー
ルドを含むので、MSにある特定のUPSコピーか
ら得られたUPSプログラムは、UPSが最初に設
計された、エミユレートされた環境(例えば、シ
ステム/360またはシステム/370)のCPUで実
行できる。SDフイールドは: (1) UPSゲストの実アドレス0が割当てられて
いる、ゲスト・ページ0にある、MS絶対アド
レスを含む起点フイールド、 (2) ゲストの領域を含むMS領域の連続バイトの
大きさを含むエクステント・フイールド、 (3) ゲストの現在のPSW(プログラム・ステータ
ス・ワード)のフイールド(ゲスト割込みに使
用されるゲストの現在のPSWを含み、PMPの
プログラム命令の順序によりそのゲストの
PSW交換が行なわれ、どのクラスのゲスト割
込みでも、ゲストのSDからの現在のPSWフイ
ールドを、ゲスト・ページ0にあるそのクラス
の古いPSWフイールドにコピーし、次いで、
ゲスト・ページ0からの各割込みクラスの新し
いPSWフイールドを、そのSDの現在のPSWフ
イールドにコピーし、ゲストの新しい命令アド
レスおよび新しい状態を指示する)、 (4) ゲストの16個の汎用レジスタ(GR)および
16個の制御レジスタ(CR)、 (5) 他のゲスト状態のその他のフイールドを含
む。
最初に、VM/PMPプログラムは、第3図の
主記憶装置マツプで60MB〜64MBの範囲の最高
絶対アドレス範囲にロードされる。次に、MSの
0〜60MBの下位部分が使用可能になり、UPSの
コピーを受取る。
主記憶装置マツプで60MB〜64MBの範囲の最高
絶対アドレス範囲にロードされる。次に、MSの
0〜60MBの下位部分が使用可能になり、UPSの
コピーを受取る。
ロードされたVM/PMP領域は、MPシステム
のCPUごとにプログラム保管領域(PSA)を含
み、将来のUPS動作に使用できる。第3図は4
つのCPUのPSA領域を示す。あるCPUがUPS動
作のために初期化されると、MSにあるPSAは、
それぞれのCPUのプレフイツクス・レジスタに
初期化された絶対アドレスによつて見つけられ
る。
のCPUごとにプログラム保管領域(PSA)を含
み、将来のUPS動作に使用できる。第3図は4
つのCPUのPSA領域を示す。あるCPUがUPS動
作のために初期化されると、MSにあるPSAは、
それぞれのCPUのプレフイツクス・レジスタに
初期化された絶対アドレスによつて見つけられ
る。
また、ロードされたVM/PMP領域は、通常
のVM/CPプログラムの動作に似た方法でジヨ
ブを受取り、タスク指名する。
のVM/CPプログラムの動作に似た方法でジヨ
ブを受取り、タスク指名する。
また、VMD(VM定義)ブロツクおよびPMP
制御ブロツクもVM/PMP領域に含まれ、第1
図に詳細に示されている。VMDブロツクは、ユ
ーザがシステムを開始する、例えばシステムのロ
グを記録する場合、システムの各ユーザのために
設ける。第1図の例は、システムVMD201、
システムにロードされるUPSごとのUPS VMD
(例、203,205,207および209)お
よびVMユーザの通常のVM VMD(例、211
〜213)を示す。また、新規のPMPブロツク
(例、204,206,208および210)は、
将来、システムにロードされることがあるUPS
ごとに最初に設けられる。
制御ブロツクもVM/PMP領域に含まれ、第1
図に詳細に示されている。VMDブロツクは、ユ
ーザがシステムを開始する、例えばシステムのロ
グを記録する場合、システムの各ユーザのために
設ける。第1図の例は、システムVMD201、
システムにロードされるUPSごとのUPS VMD
(例、203,205,207および209)お
よびVMユーザの通常のVM VMD(例、211
〜213)を示す。また、新規のPMPブロツク
(例、204,206,208および210)は、
将来、システムにロードされることがあるUPS
ごとに最初に設けられる。
また、PMP I/O制御ブロク(例えば、物理
装置ブロツクPDEV)も、システムの物理I/O
装置ごとに1つのPDEVが、VM/PMP領域に
初期化される。また、この実施例は、第3図に制
御領域UPS1〜UPS4として示された新規の
UPS制御領域をUPSごとに設け、システムにロ
ードできる。各UPS制御領域は、論理装置
(LDEV)ブロツク、およびシステムにロードさ
れた特定のUPSによつて使用できるI/O装置
を表わすLDEVに対するLDEVポインタのリスト
を含む。装置を表わす単一のPDEVに対し複数の
LDEV(すなわち、UPS当り1LDEV)を置くこと
もできる。第8図はシステムにおけるPDEVおよ
びLDEVならびにそれらの相互接続を示す。
装置ブロツクPDEV)も、システムの物理I/O
装置ごとに1つのPDEVが、VM/PMP領域に
初期化される。また、この実施例は、第3図に制
御領域UPS1〜UPS4として示された新規の
UPS制御領域をUPSごとに設け、システムにロ
ードできる。各UPS制御領域は、論理装置
(LDEV)ブロツク、およびシステムにロードさ
れた特定のUPSによつて使用できるI/O装置
を表わすLDEVに対するLDEVポインタのリスト
を含む。装置を表わす単一のPDEVに対し複数の
LDEV(すなわち、UPS当り1LDEV)を置くこと
もできる。第8図はシステムにおけるPDEVおよ
びLDEVならびにそれらの相互接続を示す。
VM/PMPプログラムを初期化した後、各
UPSゲストは、第9図に示すように、ログオン
手順によつてMSにロードできる。この手順は、
最初のUPSコピーを、最初のMSゾーン、できれ
ば、その起点をMSの絶対アドレス0に有するゾ
ーン0にロードし、UPSをCPUに割当てる。ゾ
ーン0でゲストを実行するCPUが要求した全ア
ドレスは、ゲストの実アドレスとしてゾーン0の
絶対アドレスを直接に使用できる。ユーザ・プロ
グラム・アドレスを主記憶装置アドレスに直接に
写像することは、ゾーン0を使用するUPSゲス
トによつてしか行なうことができない。その理由
は、前記写像は、同じ実アドレスのセツトを含む
が、MS絶対アドレスに直接には写像できない他
のMSゾーンにある別のUPSゲストとは対照的
に、絶対アドレス0で開始できるからである。こ
の問題は、各ゲストの実アドレスを要求された
MS絶対アドレスに変換する変換表を必要とする
仮想アドレスとして、2番目以降の各ゲストの実
アドレスを処理することにより解決される。
UPSゲストは、第9図に示すように、ログオン
手順によつてMSにロードできる。この手順は、
最初のUPSコピーを、最初のMSゾーン、できれ
ば、その起点をMSの絶対アドレス0に有するゾ
ーン0にロードし、UPSをCPUに割当てる。ゾ
ーン0でゲストを実行するCPUが要求した全ア
ドレスは、ゲストの実アドレスとしてゾーン0の
絶対アドレスを直接に使用できる。ユーザ・プロ
グラム・アドレスを主記憶装置アドレスに直接に
写像することは、ゾーン0を使用するUPSゲス
トによつてしか行なうことができない。その理由
は、前記写像は、同じ実アドレスのセツトを含む
が、MS絶対アドレスに直接には写像できない他
のMSゾーンにある別のUPSゲストとは対照的
に、絶対アドレス0で開始できるからである。こ
の問題は、各ゲストの実アドレスを要求された
MS絶対アドレスに変換する変換表を必要とする
仮想アドレスとして、2番目以降の各ゲストの実
アドレスを処理することにより解決される。
2番目以降の各UPSゲストは、MS中の次の2n
バイト境界アドレスで始まる次の各ゾーンにロー
ドされたUPSコピーを有する。nの値は、UPS
プログラムに含まれた有効アドレスのビツト数に
よつて決められる。すなわち、基本的には、
UPSプログラムをランするように設計したコン
ピユータ・アーキテクチヤによつて決められる。
例えば、若し、UPSがシステム/360またはシス
テム/370のアーキテクチヤでランするように設
計されていたら、nは24である、というのは、各
有効アドレスは24ビツト桁あるからである。224
は16MBであるから、各々のシステム/360また
はシステム/370のUPSは、MSの16MBまでアド
レスできる。これらのUPSプログラムを収容す
るには、MSは、ゾーンと呼ばれる16MBごとに
論理的に区分される。ゾーン0はMS絶対番地の
最初の16MBを含み、ゾーン1は次の16MBの絶
対番地を含む、以下同様である。各UPSプログ
ラムは、全体として1つのゾーン内の領域を占有
する。各UPSは全体のゾーンを実際に占有しな
くてもよいが、各UPSコピーは、そのゾーンが
開始する境界から始まるべきである。第3図の
UPSの例は、各UPSが各16MBゾーンで12MBの
実アドレス領域を占有するものと仮定する。
バイト境界アドレスで始まる次の各ゾーンにロー
ドされたUPSコピーを有する。nの値は、UPS
プログラムに含まれた有効アドレスのビツト数に
よつて決められる。すなわち、基本的には、
UPSプログラムをランするように設計したコン
ピユータ・アーキテクチヤによつて決められる。
例えば、若し、UPSがシステム/360またはシス
テム/370のアーキテクチヤでランするように設
計されていたら、nは24である、というのは、各
有効アドレスは24ビツト桁あるからである。224
は16MBであるから、各々のシステム/360また
はシステム/370のUPSは、MSの16MBまでアド
レスできる。これらのUPSプログラムを収容す
るには、MSは、ゾーンと呼ばれる16MBごとに
論理的に区分される。ゾーン0はMS絶対番地の
最初の16MBを含み、ゾーン1は次の16MBの絶
対番地を含む、以下同様である。各UPSプログ
ラムは、全体として1つのゾーン内の領域を占有
する。各UPSは全体のゾーンを実際に占有しな
くてもよいが、各UPSコピーは、そのゾーンが
開始する境界から始まるべきである。第3図の
UPSの例は、各UPSが各16MBゾーンで12MBの
実アドレス領域を占有するものと仮定する。
このように、2番目以降の各ゲストは、VM/
PMP制御プログラムより仮想アドレスとして処
理されたUPS実アドレスを有し、それによつて、
2番目以降の各ゲストはそれぞれ、各UPS制御
領域のPMPプログラムにより、セグメント・テ
ーブルおよび1組のページ・テーブルを割当てら
れる。
PMP制御プログラムより仮想アドレスとして処
理されたUPS実アドレスを有し、それによつて、
2番目以降の各ゲストはそれぞれ、各UPS制御
領域のPMPプログラムにより、セグメント・テ
ーブルおよび1組のページ・テーブルを割当てら
れる。
2番目のゲストおよびそれ以降のゲスト(もし
あれば)は、V(仮想)=F(固定)型のゲストと
してランされるのが望ましい。V=Fのゲスト
は、そのMS領域に完全に適合する。それによつ
て、ゲストのページ・テーブル項目に、UPSの
全ページを含むことになつているゲスト領域のペ
ージ・フレームの絶対アドレスが割当てられる。
従つて、V=Fのゲストは、MSにロードされた
後の通常の動作中に補助記憶とのページ交換を行
なわなくてもよい。
あれば)は、V(仮想)=F(固定)型のゲストと
してランされるのが望ましい。V=Fのゲスト
は、そのMS領域に完全に適合する。それによつ
て、ゲストのページ・テーブル項目に、UPSの
全ページを含むことになつているゲスト領域のペ
ージ・フレームの絶対アドレスが割当てられる。
従つて、V=Fのゲストは、MSにロードされた
後の通常の動作中に補助記憶とのページ交換を行
なわなくてもよい。
UPSは、UPSにある各ページの実アドレスを
使用してCPUが要求した場合にロードされるが、
この動作によつて各ページにページ誤りを起こ
し、各UPSページが当該領域にロードされる結
果になる。2番目以降のゲストのページを、MS
内の一定場所にあるページ・フレームに置くこと
により、CPUにあるTLB(変換ルツクアサイド・
バツフア)は、ページ不在によつて生じたアドレ
ス変換によつてロードされる。TLBに記憶され
たこれらの変換の大部分は、後に、UPSが通常
の実行を行なう際、UPSに要求される。CPUを
UPSに専用することは、VM/PMPがそのUPS
の代わりに動作する場合を除き、専用CPUの
TLBの内容は、そのCPUを使用する別のプログ
ラムよつて変更されることはないので、その
TLBは、その初期化された変換の大部分を絶え
ず保持する上、TLB装置はまれにしか生じない
から、MPの各専用のCPUにおけるUPS性能は向
上する。従つて、非専用CPUでは、TLB項目置
換はより頻繁に行なわれる。
使用してCPUが要求した場合にロードされるが、
この動作によつて各ページにページ誤りを起こ
し、各UPSページが当該領域にロードされる結
果になる。2番目以降のゲストのページを、MS
内の一定場所にあるページ・フレームに置くこと
により、CPUにあるTLB(変換ルツクアサイド・
バツフア)は、ページ不在によつて生じたアドレ
ス変換によつてロードされる。TLBに記憶され
たこれらの変換の大部分は、後に、UPSが通常
の実行を行なう際、UPSに要求される。CPUを
UPSに専用することは、VM/PMPがそのUPS
の代わりに動作する場合を除き、専用CPUの
TLBの内容は、そのCPUを使用する別のプログ
ラムよつて変更されることはないので、その
TLBは、その初期化された変換の大部分を絶え
ず保持する上、TLB装置はまれにしか生じない
から、MPの各専用のCPUにおけるUPS性能は向
上する。従つて、非専用CPUでは、TLB項目置
換はより頻繁に行なわれる。
また、VM/PMPは、ゲストI/O装置の
I/Oチヤネル・プログラムの開始、UPSゲス
トによるI/O装置の共用、ならびに、複数
CPUで動作するUPSゲストのI/O割込み処理
のプログラムも含む。
I/Oチヤネル・プログラムの開始、UPSゲス
トによるI/O装置の共用、ならびに、複数
CPUで動作するUPSゲストのI/O割込み処理
のプログラムも含む。
PMPは、PMPが出したSIE命令によつて各
UPSゲストを実行する。PMPは: (1) ゲストがI/O開始命令(例えば、SIOまた
はSIOF)を実行するごとに、 または、 (2) SIE実行により、ゲストSDにおける現在の
ゲストPSWのI/O割込み可能ビツト(例え
ば、PSWビツト6)がオンにセツトされてい
ることを検出するごとに、 SIEによるゲスト実行を終了する(SIE出口ま
たはSIE通知割込みと呼ばれる)。ゲストSIOまた
はSIOFによるSIE通知割込みに際し、PMPは: (1) 370―XAサブチヤネル開始命令を出し、要
求された装置のI/Oチヤネル・プログラム
を、該装置が使用中でない場合に活動状態にす
る、 または (2) 該装置が使用中の場合には、該装置のI/O
要求キユー(待行列)にI/O要求を入れるル
ーチンを実行する。
UPSゲストを実行する。PMPは: (1) ゲストがI/O開始命令(例えば、SIOまた
はSIOF)を実行するごとに、 または、 (2) SIE実行により、ゲストSDにおける現在の
ゲストPSWのI/O割込み可能ビツト(例え
ば、PSWビツト6)がオンにセツトされてい
ることを検出するごとに、 SIEによるゲスト実行を終了する(SIE出口ま
たはSIE通知割込みと呼ばれる)。ゲストSIOまた
はSIOFによるSIE通知割込みに際し、PMPは: (1) 370―XAサブチヤネル開始命令を出し、要
求された装置のI/Oチヤネル・プログラム
を、該装置が使用中でない場合に活動状態にす
る、 または (2) 該装置が使用中の場合には、該装置のI/O
要求キユー(待行列)にI/O要求を入れるル
ーチンを実行する。
I/O割込み可能によるSIE通知割込みでは、
PMPは、ゲストの割込み待ち行列における最も
早い割込み要求を処理する。
PMPは、ゲストの割込み待ち行列における最も
早い割込み要求を処理する。
ゲストの、I/O割込み待ち行列にある項目を
見つけるためには、VM/PMPは、該ゲストの
VMDをアクセスするとともに該ゲストのゲスト
制御ブロツク(GCB)を指すポインタを取込み、
I/O割込み待ち行列ポインタをアクセスして、
サービスされていない割込みが存在するかどうか
を探す。
見つけるためには、VM/PMPは、該ゲストの
VMDをアクセスするとともに該ゲストのゲスト
制御ブロツク(GCB)を指すポインタを取込み、
I/O割込み待ち行列ポインタをアクセスして、
サービスされていない割込みが存在するかどうか
を探す。
若し、ポインタが非0ならば、サービスされて
いない割込みがあるので、I/O割込みがVM/
PMPによつてシミユレートされる。I/O割込
み待ち行列は、UPSがI/O割込みを受入れる
のを阻止されている間に受取つたサービスされて
いない割込み情報を含むLDEVの連鎖から成る。
いない割込みがあるので、I/O割込みがVM/
PMPによつてシミユレートされる。I/O割込
み待ち行列は、UPSがI/O割込みを受入れる
のを阻止されている間に受取つたサービスされて
いない割込み情報を含むLDEVの連鎖から成る。
CPUがUPSを実行していないうちに、ゲスト
I/O割込みが起きると、VM/PMPは同様に
割込みをサービスするか、またはゲストがI/O
割込みを禁止されている場合は、割込みをゲスト
装置の割込み待ち行列に入れる。
I/O割込みが起きると、VM/PMPは同様に
割込みをサービスするか、またはゲストがI/O
割込みを禁止されている場合は、割込みをゲスト
装置の割込み待ち行列に入れる。
CPUがUPSゲストに専用されると、CPU制御
レジスタはセツトされ、特定のISCを有するI/
O割込みしか該CPUに割込むことができない。
従つて、UPS装置のI/O割込みが生じる度に、
PMPは、該UPSゲストに専用されたCPUで実行
する。
レジスタはセツトされ、特定のISCを有するI/
O割込みしか該CPUに割込むことができない。
従つて、UPS装置のI/O割込みが生じる度に、
PMPは、該UPSゲストに専用されたCPUで実行
する。
ハードウエアはI/O割込みごとに2つの割込
みパラメータを供給する。1つは割込みを生じる
サブチヤネル番号であり、他の1つはMSCH命
令およびSSCH命令ごとにソフトウエアによつて
セツトされたソフトウエア・パラメータである。
PMP装置の場合、ソフトウエア・パラメータは
常に現在の動作に関連したLDEVのアドレスであ
る。
みパラメータを供給する。1つは割込みを生じる
サブチヤネル番号であり、他の1つはMSCH命
令およびSSCH命令ごとにソフトウエアによつて
セツトされたソフトウエア・パラメータである。
PMP装置の場合、ソフトウエア・パラメータは
常に現在の動作に関連したLDEVのアドレスであ
る。
LDEVアドレスの上位ビツト(ビツト0)は常
に1にセツトされる。PMPはこれをフラグとし
て用い、その装置と、VM制御された装置とを見
分ける。PDEVおよびI/O割込み待ち行列ポイ
ンタはLDEVから見つけることができる。
に1にセツトされる。PMPはこれをフラグとし
て用い、その装置と、VM制御された装置とを見
分ける。PDEVおよびI/O割込み待ち行列ポイ
ンタはLDEVから見つけることができる。
ゲスト・プログラムがSIO命令またはSIOF命
令を出すと、SIE実行は通知割込みされ、PMP
は、本発明によつて設けられた特別の機能を用い
てI/Oチヤネル・プログラムを開始する。第1
図において、VM/PMPは、ゲストのVMDをア
クセスするとともにUPSゲストのゲスト制御ブ
ロツク(GCB)を指すポインタを取込み、次い
で、VM/PMPはLDEVポインタ・リストのポ
インタをアクセスする。次いで、VM/PMPは、
それぞれのUPS制御領域にあるLDEVポイン
タ・リストに進み、I/O開始命令によつて与え
られたI/Oアドレスを使つて、該リスト中の、
要求されたLDEVポインタを索引する。そして、
このLDEVポインタは、要求されたLDEV―シス
テム/370XAで定義されたORB(動作要求ブロツ
ク)を含む―をアクセスする。ORBは、チヤネ
ル・プログラム・アドレス(モジユロ16MB)
と、このI/O開始手順で最初にアクセスされた
PMP制御ブロツクにあるゲスト・ゾーン・フイ
ールドからコピーされるゾーン・フイールドとを
含む。(それぞれのゲスト・ゾーン・フイールド
は、UPSゲストがログオンされたとき、それぞ
れのゲストのゾーンの起点絶対アドレスのビツト
1〜7によつて初期化されている。)そして、見
つかつたORBは、I/Oプロセツサに渡され、
I/Oプロセツサは、チヤネル・プログラムにあ
るCCW(チヤネル・コマンド・ワード)または
IDAW(間接データ・アドレス・ワード)から取
出された各MSアドレスの最上位(最も左の端)
にゾーン・フイールドをOR(または連結)し、
要求されたMS絶対アドレスを生成する。この手
順が行なわれると、任意の領域でランしている
UPSのそれぞれのコピーからUPSゲストによつ
て与えられた24ビツト桁の実アドレスは、I/O
プロセツサにある簡単なハードウエアI/Oアド
レス変換プログラムによつて、UPSが占有する
ゾーンにあるMSをアクセスするのに必要な31ビ
ツト絶対アドレスに変換される。このような簡単
な変換プログラムは、224の倍数のゾーン初期境
界アドレスにその起点を有する各UPS領域に依
存する。(このようなI/Oプロセツサ・アドレ
ス変換は、VM/PMPプログラムがCCWアドレ
ス変換する−V=FのゲストによつてI/O動作
を処理できる速度が大幅に低下させられる―のを
避ける。(ACP/TPFのような)高速のI/O速
度を有するUPSの場合、使用中のアドレス変換
によつて与えられた、付加されたシステム効率
は、このようなタイプのUPSのMPシステム性能
を大幅に高め、各々のV=FのUPSゲストは、
同じCPU命令速度を有するユニプロセツサで
UPSによつて得られる同じ速度でランできる。
令を出すと、SIE実行は通知割込みされ、PMP
は、本発明によつて設けられた特別の機能を用い
てI/Oチヤネル・プログラムを開始する。第1
図において、VM/PMPは、ゲストのVMDをア
クセスするとともにUPSゲストのゲスト制御ブ
ロツク(GCB)を指すポインタを取込み、次い
で、VM/PMPはLDEVポインタ・リストのポ
インタをアクセスする。次いで、VM/PMPは、
それぞれのUPS制御領域にあるLDEVポイン
タ・リストに進み、I/O開始命令によつて与え
られたI/Oアドレスを使つて、該リスト中の、
要求されたLDEVポインタを索引する。そして、
このLDEVポインタは、要求されたLDEV―シス
テム/370XAで定義されたORB(動作要求ブロツ
ク)を含む―をアクセスする。ORBは、チヤネ
ル・プログラム・アドレス(モジユロ16MB)
と、このI/O開始手順で最初にアクセスされた
PMP制御ブロツクにあるゲスト・ゾーン・フイ
ールドからコピーされるゾーン・フイールドとを
含む。(それぞれのゲスト・ゾーン・フイールド
は、UPSゲストがログオンされたとき、それぞ
れのゲストのゾーンの起点絶対アドレスのビツト
1〜7によつて初期化されている。)そして、見
つかつたORBは、I/Oプロセツサに渡され、
I/Oプロセツサは、チヤネル・プログラムにあ
るCCW(チヤネル・コマンド・ワード)または
IDAW(間接データ・アドレス・ワード)から取
出された各MSアドレスの最上位(最も左の端)
にゾーン・フイールドをOR(または連結)し、
要求されたMS絶対アドレスを生成する。この手
順が行なわれると、任意の領域でランしている
UPSのそれぞれのコピーからUPSゲストによつ
て与えられた24ビツト桁の実アドレスは、I/O
プロセツサにある簡単なハードウエアI/Oアド
レス変換プログラムによつて、UPSが占有する
ゾーンにあるMSをアクセスするのに必要な31ビ
ツト絶対アドレスに変換される。このような簡単
な変換プログラムは、224の倍数のゾーン初期境
界アドレスにその起点を有する各UPS領域に依
存する。(このようなI/Oプロセツサ・アドレ
ス変換は、VM/PMPプログラムがCCWアドレ
ス変換する−V=FのゲストによつてI/O動作
を処理できる速度が大幅に低下させられる―のを
避ける。(ACP/TPFのような)高速のI/O速
度を有するUPSの場合、使用中のアドレス変換
によつて与えられた、付加されたシステム効率
は、このようなタイプのUPSのMPシステム性能
を大幅に高め、各々のV=FのUPSゲストは、
同じCPU命令速度を有するユニプロセツサで
UPSによつて得られる同じ速度でランできる。
CPUが最初にアドレス・ゾーンの値をゲスト
I/O装置のORBにセツトすることにより、簡
単な自動ハードウエアI/Oアドレス変換が得ら
れる。チヤネル・プロセツサは31ビツト絶対アド
レスを生成し、次のようにCCWおよびデータを
アクセスする。すなわち、I/Oチヤネル・プロ
グラムの場合はすべて、最初のCCWはORBの31
ビツト・チヤネル・プログラム・アドレス・フイ
ールドを使つてアドレスされる。ORBのフオー
マツト(F)ビツトがフオーマツト0の(システ
ム/370が互換性を有する)CCWを指定すると、
370―XAチヤネル・サブシステム動作は本発明
によつて変更され、(本実施例でゾーンと呼ばれ
る)ORBのチヤネル・プログラム・アドレス・
フイールドのビツト1〜7は、CCWの24ビツ
ト・データ・アドレス・フイールドから取出され
た31ビツト絶対MSアドレスの、または(CCW間
接データ・アドレツシングがCCWで指示される
場合)31ビツトIDAWのビツト1〜7とORされ
る。CCWの24ビツト・データ・アドレス・フイ
ールドを使用する場合、24ビツトの値は、先ず左
端の7ビツトに0を有する31ビツトに拡張され
る。前記手順は、非連続CCW,IDAWまたはデ
ータ・アクセスが要求されるごとに実行される。
連続アクセスは、前述の手順によつて前に生成さ
れたアドレスの増加しか必要としない。
I/O装置のORBにセツトすることにより、簡
単な自動ハードウエアI/Oアドレス変換が得ら
れる。チヤネル・プロセツサは31ビツト絶対アド
レスを生成し、次のようにCCWおよびデータを
アクセスする。すなわち、I/Oチヤネル・プロ
グラムの場合はすべて、最初のCCWはORBの31
ビツト・チヤネル・プログラム・アドレス・フイ
ールドを使つてアドレスされる。ORBのフオー
マツト(F)ビツトがフオーマツト0の(システ
ム/370が互換性を有する)CCWを指定すると、
370―XAチヤネル・サブシステム動作は本発明
によつて変更され、(本実施例でゾーンと呼ばれ
る)ORBのチヤネル・プログラム・アドレス・
フイールドのビツト1〜7は、CCWの24ビツ
ト・データ・アドレス・フイールドから取出され
た31ビツト絶対MSアドレスの、または(CCW間
接データ・アドレツシングがCCWで指示される
場合)31ビツトIDAWのビツト1〜7とORされ
る。CCWの24ビツト・データ・アドレス・フイ
ールドを使用する場合、24ビツトの値は、先ず左
端の7ビツトに0を有する31ビツトに拡張され
る。前記手順は、非連続CCW,IDAWまたはデ
ータ・アクセスが要求されるごとに実行される。
連続アクセスは、前述の手順によつて前に生成さ
れたアドレスの増加しか必要としない。
本実施例の重要な点は、ORBからの7ビツ
ト・ゾーン値を、31ビツトIDAWの、または24ビ
ツトCCWデータ・アドレス・フイールドの内容
を拡張して生成された31ビツト値の左端の7ビツ
トとORする必要があることである。ゾーン値
を、24ビツトCCWデータ・アドレス・フイール
ド内容、またはIDAWの右側の24ビツト(形成さ
れるデータ・アドレスにとつてどちらか適切な
方)に単に連結するのではなく、ゾーン値と31ビ
ツト値をORする理由は、標準370―XAアーキテ
クチヤによつてランするように設計されたプログ
ラムに互換性を与えることである。標準370―
XAアーキテクチヤ(およびIBM3033拡張機能に
よつて与えられたシステム/370拡張アーキテク
チヤ)では、IDAWはアドレスを31ビツトまで保
持できる。31ビツトIDAWが導入されたことによ
つて、31ビツト・アドレスCCWフオーマツト
(フオーマツト1)を用いるように変換されてい
ないプログラムも、MSの最初の16MB内に置か
れたI/Oデータ領域を使用できる。事実、
MVS/XA制御プログラムはそのために31ビツ
トIDAWを使用する。前述のゾーン・ビツトの
OR動作によつて互換性が与えられる、というの
は、標準370―XAアーキテクチヤでは、ORBの
チヤネル・プログラム・アドレス・フイールドの
ビツト1〜7(本発明の良好な実施例のゾーン・
ビツト)は、フオーマツト0(24ビツト・アドレ
ス)のCCWがORBで指定されると、0を含むこ
とが要求されるからである。これらのビツトを、
(左端の7ビツト桁に非0値を含むことがある)
IDAWからの31ビツトとORしても、最初の31ビ
ツト・アドレスは乱されない。当業者は、ゾーン
と24ビツト・アドレスを連結(ORではない)し
て31ビツト・アドレスを作ることは、前述の互換
性を与えないことを容易に理解するはずである。
本発明の重要な点は、本発明を取り入れたコンピ
ユータ・システムは、本実施例で説明されたプロ
グラム、ならびに変更を加えない標準370―XA
アーキテクチヤによつて実行するように設計され
たプログラムを実行することができることであ
る。若し、このような互換性が重要でなければ、
本発明は、ゾーン・フイールドを、各UPSの24
ビツト・チヤネル・アドレスの左端に連結するこ
とにより、必要なアドレス変換を得ることも含
む。
ト・ゾーン値を、31ビツトIDAWの、または24ビ
ツトCCWデータ・アドレス・フイールドの内容
を拡張して生成された31ビツト値の左端の7ビツ
トとORする必要があることである。ゾーン値
を、24ビツトCCWデータ・アドレス・フイール
ド内容、またはIDAWの右側の24ビツト(形成さ
れるデータ・アドレスにとつてどちらか適切な
方)に単に連結するのではなく、ゾーン値と31ビ
ツト値をORする理由は、標準370―XAアーキテ
クチヤによつてランするように設計されたプログ
ラムに互換性を与えることである。標準370―
XAアーキテクチヤ(およびIBM3033拡張機能に
よつて与えられたシステム/370拡張アーキテク
チヤ)では、IDAWはアドレスを31ビツトまで保
持できる。31ビツトIDAWが導入されたことによ
つて、31ビツト・アドレスCCWフオーマツト
(フオーマツト1)を用いるように変換されてい
ないプログラムも、MSの最初の16MB内に置か
れたI/Oデータ領域を使用できる。事実、
MVS/XA制御プログラムはそのために31ビツ
トIDAWを使用する。前述のゾーン・ビツトの
OR動作によつて互換性が与えられる、というの
は、標準370―XAアーキテクチヤでは、ORBの
チヤネル・プログラム・アドレス・フイールドの
ビツト1〜7(本発明の良好な実施例のゾーン・
ビツト)は、フオーマツト0(24ビツト・アドレ
ス)のCCWがORBで指定されると、0を含むこ
とが要求されるからである。これらのビツトを、
(左端の7ビツト桁に非0値を含むことがある)
IDAWからの31ビツトとORしても、最初の31ビ
ツト・アドレスは乱されない。当業者は、ゾーン
と24ビツト・アドレスを連結(ORではない)し
て31ビツト・アドレスを作ることは、前述の互換
性を与えないことを容易に理解するはずである。
本発明の重要な点は、本発明を取り入れたコンピ
ユータ・システムは、本実施例で説明されたプロ
グラム、ならびに変更を加えない標準370―XA
アーキテクチヤによつて実行するように設計され
たプログラムを実行することができることであ
る。若し、このような互換性が重要でなければ、
本発明は、ゾーン・フイールドを、各UPSの24
ビツト・チヤネル・アドレスの左端に連結するこ
とにより、必要なアドレス変換を得ることも含
む。
PMP環境におけるI/O装置は:
(1) VM/CP割当て装置、
(2) PMP共用装置(VM/CPには割当てられい
ない)、 に分類することがある。
ない)、 に分類することがある。
最初、すべての共用装置はPMPに割当てられ
る。他のすべての装置は、通常のVMシステム生
成(SYSGEN)プロセスによつてVM/CP制御
プログラムに割当てられる。これらの装置はVM
自身によつて使用されるか、または、VM付加マ
イクロ命令の使用によりUPSを再割当てして、
I/O装置を指定されたUPSゲストに接続する
ことができる。このような装置がUPSゲストに
接続されると、装置のプログラム制御はPMPに
渡され、PMPは、370―XA I/O制御ブロツク
を使用して特別な処理を行ない、そのI/Oを制
御する。
る。他のすべての装置は、通常のVMシステム生
成(SYSGEN)プロセスによつてVM/CP制御
プログラムに割当てられる。これらの装置はVM
自身によつて使用されるか、または、VM付加マ
イクロ命令の使用によりUPSを再割当てして、
I/O装置を指定されたUPSゲストに接続する
ことができる。このような装置がUPSゲストに
接続されると、装置のプログラム制御はPMPに
渡され、PMPは、370―XA I/O制御ブロツク
を使用して特別な処理を行ない、そのI/Oを制
御する。
また、PMPプログラムは装置を共用する機能
を備え、同じMPにある複数のUPSゲストは同じ
物理装置をアクセスできる。各々のUPS共用装
置は、同じ物理装置のLDEVを各共用ゲストの
UPS制御領域に入れることにより、装置を共用
する各ゲストのために構成された有効な論理サブ
チヤネルを有する。その故、UPS装置はどれも
複数のUPSゲストの間で共用できるが、装置が
使用中の間は、他のゲストはアクセスできない。
従つて、装置共用は、各共用ゲストの対応する論
理装置制御ブロツク(LDEV)をシステムに初期
化させることにより行なわれる。共用論理の場
合、装置を表わす1つのPDEVについて複数の
LDEVがある。LDEVはVM/PMP主記憶装置
領域に入れられる。
を備え、同じMPにある複数のUPSゲストは同じ
物理装置をアクセスできる。各々のUPS共用装
置は、同じ物理装置のLDEVを各共用ゲストの
UPS制御領域に入れることにより、装置を共用
する各ゲストのために構成された有効な論理サブ
チヤネルを有する。その故、UPS装置はどれも
複数のUPSゲストの間で共用できるが、装置が
使用中の間は、他のゲストはアクセスできない。
従つて、装置共用は、各共用ゲストの対応する論
理装置制御ブロツク(LDEV)をシステムに初期
化させることにより行なわれる。共用論理の場
合、装置を表わす1つのPDEVについて複数の
LDEVがある。LDEVはVM/PMP主記憶装置
領域に入れられる。
新しいUPSゲストは、若し、CPUおよびMSゾ
ーンが新しいUPSゲストによる使用がどちらも
可能ならば、いつでもシステムに初期化できる。
VM/PMPは、現に存在するUPS装置のLDEV
を、ログオン中のUPSゲストのUPS制御領域に
挿入することにより、装置の共用性を変更するこ
とができる。
ーンが新しいUPSゲストによる使用がどちらも
可能ならば、いつでもシステムに初期化できる。
VM/PMPは、現に存在するUPS装置のLDEV
を、ログオン中のUPSゲストのUPS制御領域に
挿入することにより、装置の共用性を変更するこ
とができる。
一般に、テープ、ユニツト・レコード、コンソ
ールおよび通信装置はVMに共用、割当てされ
ず、それぞれのゲストに専用される。DASD装置
は、通常はUPSゲスト間で共用される。
ールおよび通信装置はVMに共用、割当てされ
ず、それぞれのゲストに専用される。DASD装置
は、通常はUPSゲスト間で共用される。
このように、唯一のUPSゲストを実行し他の
作業を行なわないCPUの専用は、アドレス変換
を与えるPMPソフトウエアの必要をなくすこと
により、PMPプログラムをサポートするソフト
ウエア実行経路長も減少させる。VM/PMPは、
ユーザのVMDにあるCPU IDフイールドをセツ
トすることによりCPUを専用し、そのVMDの作
業しか実行しないCPUを専用する。他の初期化
活動は: (1) 専用されている各CPUのプレフイツクス・
レジスタを、MSのPMP領域にあるCPUの
PSAの絶対アドレスによつてセツトし、 (2) CPUのPSAにあるCPU専用フイールドを
UPSゲストのアドレスにセツトし、 (3) UPS作業を行なうことになつている各CPU
の制御レジスタ6にある、それぞれのI/O割
込みサブクラス・コード(ISC)の割込み可能
ビツト桁をセツトし、 (4) 夫々のUPSゲストに割当てられた各装置の
各I/Oサブチヤネルに、同じISC値を割当
て、 (5) 各々の変換可能なゲスト(MSゾーン0に割
当てられたゲストを除く)に、異なつたセツト
の変換テーブルを供給する。
作業を行なわないCPUの専用は、アドレス変換
を与えるPMPソフトウエアの必要をなくすこと
により、PMPプログラムをサポートするソフト
ウエア実行経路長も減少させる。VM/PMPは、
ユーザのVMDにあるCPU IDフイールドをセツ
トすることによりCPUを専用し、そのVMDの作
業しか実行しないCPUを専用する。他の初期化
活動は: (1) 専用されている各CPUのプレフイツクス・
レジスタを、MSのPMP領域にあるCPUの
PSAの絶対アドレスによつてセツトし、 (2) CPUのPSAにあるCPU専用フイールドを
UPSゲストのアドレスにセツトし、 (3) UPS作業を行なうことになつている各CPU
の制御レジスタ6にある、それぞれのI/O割
込みサブクラス・コード(ISC)の割込み可能
ビツト桁をセツトし、 (4) 夫々のUPSゲストに割当てられた各装置の
各I/Oサブチヤネルに、同じISC値を割当
て、 (5) 各々の変換可能なゲスト(MSゾーン0に割
当てられたゲストを除く)に、異なつたセツト
の変換テーブルを供給する。
同じCPUおよびI/O ISCをセツトすること
は、同じISC値を有するゲストが使用するCPUと
I/O装置のサブセツトとの関連性を生じる。
UPSゲストは、(LDEVによつて割当てられた)
非使用中のI/O装置の使用が、その装置の
PDEVにあるISC値を、その装置のゲストLDEV
にある、要求中のUPSゲストに最初に割当てら
れたISC値に単に変更することにより可能にな
る。そして該CPUはI/O装置を起動し、該
I/O装置からのすべての割込みを受入れる。
は、同じISC値を有するゲストが使用するCPUと
I/O装置のサブセツトとの関連性を生じる。
UPSゲストは、(LDEVによつて割当てられた)
非使用中のI/O装置の使用が、その装置の
PDEVにあるISC値を、その装置のゲストLDEV
にある、要求中のUPSゲストに最初に割当てら
れたISC値に単に変更することにより可能にな
る。そして該CPUはI/O装置を起動し、該
I/O装置からのすべての割込みを受入れる。
このように、VM/PMPプログラムは、UPS
ゲストに、専用CPU環境、370―XA I/O環境
でシステム370 I/O命令をシミユレートする高
速経路I/Oサポート、ならびに、共用可能な
I/O装置プログラム・サポートを与えることが
できる。
ゲストに、専用CPU環境、370―XA I/O環境
でシステム370 I/O命令をシミユレートする高
速経路I/Oサポート、ならびに、共用可能な
I/O装置プログラム・サポートを与えることが
できる。
B 個別説明
ユニプロセツサ・システム(UPS)の4つの
コピーがロードされた、第2図のMPシステムの
例が第3図の主記憶装置マツプによつて示されて
いる。第3図の主記憶装置(MS)は、第2図の
CPU1〜4がどれもアクセスできる64メガバイ
ト(MB)の共用可能な記憶を含む。このよう
に、第3図では、UPSの第1のコピーは、ゾー
ン0のUPS1領域に書込まれ、UPSの第2のコ
ピーはゾーン1のUPS2領域に書込まれる。以
下同様に、UPSの第3および第4のコピーはそ
れぞれ、ゾーン2のUPS3領域およびゾーン3
のUPS4領域に書込まれる。これらの領域の
各々は、境界絶対アドレス0で始まるUPS1の
場合を除き、16MBの倍数のゾーン境界絶対アド
レスで始まる。従つて、UPS領域の各々の初め
の境界アドレスは、基数2の冪(即ち、224)で
ある。換言すれば、特定のUPSのためにMSをア
クセスするのに用いた31ビツト絶対アドレスはす
べて、アドレスのゾーン・ビツト位置1〜7に常
駐するゾーン番号を含む。
コピーがロードされた、第2図のMPシステムの
例が第3図の主記憶装置マツプによつて示されて
いる。第3図の主記憶装置(MS)は、第2図の
CPU1〜4がどれもアクセスできる64メガバイ
ト(MB)の共用可能な記憶を含む。このよう
に、第3図では、UPSの第1のコピーは、ゾー
ン0のUPS1領域に書込まれ、UPSの第2のコ
ピーはゾーン1のUPS2領域に書込まれる。以
下同様に、UPSの第3および第4のコピーはそ
れぞれ、ゾーン2のUPS3領域およびゾーン3
のUPS4領域に書込まれる。これらの領域の
各々は、境界絶対アドレス0で始まるUPS1の
場合を除き、16MBの倍数のゾーン境界絶対アド
レスで始まる。従つて、UPS領域の各々の初め
の境界アドレスは、基数2の冪(即ち、224)で
ある。換言すれば、特定のUPSのためにMSをア
クセスするのに用いた31ビツト絶対アドレスはす
べて、アドレスのゾーン・ビツト位置1〜7に常
駐するゾーン番号を含む。
実際には、各UPSに16MBは必要ではなく、
12MBしか必要としない。それ故、UPS4は絶対
アドレス48MBで始まるが、60MBを越えた空間
は不要である。従つて、60MBからVM/PMP領
域が設けられ、絶対アドレス64MBまでの4MB
を占めるVM/PMPプログラムがロードされる。
VM/PMPはPMPルーチンおよびVM/CPを含
む。VM/CP(制御プログラム)は、従来の
VM/CPプログラムに似ているが、特公昭61―
22825号公報で定義されたようなSIE命令をサポ
ートする。主記憶装置にあるUPSのそれぞれの
コピーは、MP中の別々のCPUを専用して実行さ
れる。このように、UPS2、UPS3およびUPS
4は、CPU2、CPU3およびCPU4を専用して
実行される。UPS1はCPU1でしか実行しない
が、CPU1は、VM作業も実行するから、専用さ
れたCPUではない。しかしながら、専用された
CPUは、そのCPUを専用するUPSゲストのため
にVM/PMPも実行する。
12MBしか必要としない。それ故、UPS4は絶対
アドレス48MBで始まるが、60MBを越えた空間
は不要である。従つて、60MBからVM/PMP領
域が設けられ、絶対アドレス64MBまでの4MB
を占めるVM/PMPプログラムがロードされる。
VM/PMPはPMPルーチンおよびVM/CPを含
む。VM/CP(制御プログラム)は、従来の
VM/CPプログラムに似ているが、特公昭61―
22825号公報で定義されたようなSIE命令をサポ
ートする。主記憶装置にあるUPSのそれぞれの
コピーは、MP中の別々のCPUを専用して実行さ
れる。このように、UPS2、UPS3およびUPS
4は、CPU2、CPU3およびCPU4を専用して
実行される。UPS1はCPU1でしか実行しない
が、CPU1は、VM作業も実行するから、専用さ
れたCPUではない。しかしながら、専用された
CPUは、そのCPUを専用するUPSゲストのため
にVM/PMPも実行する。
各UPSは、IBM Publication GA22―7000の
任意のレベルによつて定義されるような、UPS
が16MBよりも大きい実記憶をサポートするよう
に設計されてはいない、IBMシステム/370アー
キテクチヤに対して設計されるものと仮定し、ま
た、各CPUは、1つのコピーが複数のCPUで実
行された場合にMPの完全性を確保するMPプロ
グラム・ロツクまたはその他の手段によつて設計
されてはいないものと仮定する。IBM
Publication GA22―7000―8はIDAWおよび拡
張実アドレツシングを定義する。また、各UPS
は、0〜12MBの実アドレスのエクスパンス―領
域の大きさ―によつて設計されているものと仮定
する。
任意のレベルによつて定義されるような、UPS
が16MBよりも大きい実記憶をサポートするよう
に設計されてはいない、IBMシステム/370アー
キテクチヤに対して設計されるものと仮定し、ま
た、各CPUは、1つのコピーが複数のCPUで実
行された場合にMPの完全性を確保するMPプロ
グラム・ロツクまたはその他の手段によつて設計
されてはいないものと仮定する。IBM
Publication GA22―7000―8はIDAWおよび拡
張実アドレツシングを定義する。また、各UPS
は、0〜12MBの実アドレスのエクスパンス―領
域の大きさ―によつて設計されているものと仮定
する。
VM/CPプログラムは、IBMシステムとして
数年にわたつて市販されているプログラム番号
5664―167を有するIBM VM/SPに基づくもの
でもよい。VM/PMPプログラムは、主記憶装
置にロードされる前に連係編集され、保有する全
アドレスは60〜64MBの範囲の絶対アドレスを得
る。
数年にわたつて市販されているプログラム番号
5664―167を有するIBM VM/SPに基づくもの
でもよい。VM/PMPプログラムは、主記憶装
置にロードされる前に連係編集され、保有する全
アドレスは60〜64MBの範囲の絶対アドレスを得
る。
VM/PMPプログラムは、主記憶装置のVM/
PMP領域にロードされてから、第9図に示され
たプロセスを含む、UPSコピーをそれぞれの領
域にロードし初期化するためのコードを有する。
また、VM/PMPは、CPU1〜4のそれぞれの
プログラム保管領域(PSA)を含む。各PSA領
域は、固定アドレス割当てを有するデータのペー
ジ・フレームを含み、IBM System/370
Extended Architecture Principles of
Operation(IBM publication number SA22―
7085―0)の第3〜4章に定義されたようなアド
レス割当てを有する、それぞれのCPUの動作を
制御することができる。また、第3図のVM/
PMP領域は、第1図に詳細に示されたタスク指
名リストおよび制御ブロツクを含む。タスク指名
リストは、VM/SPプログラムで通常使用され
るVMD制御ブロツクとほぼ同じ複数の制御ブロ
ツク(VMD)を含む。しかしながら、VM/
PMPプログラムのために設けたVMDブロツク
は、PMPフラグ・フイールドおよびUPSポイン
タ・フイールドのような、本発明に適応する特に
調整された追加フイールドを有する。
PMP領域にロードされてから、第9図に示され
たプロセスを含む、UPSコピーをそれぞれの領
域にロードし初期化するためのコードを有する。
また、VM/PMPは、CPU1〜4のそれぞれの
プログラム保管領域(PSA)を含む。各PSA領
域は、固定アドレス割当てを有するデータのペー
ジ・フレームを含み、IBM System/370
Extended Architecture Principles of
Operation(IBM publication number SA22―
7085―0)の第3〜4章に定義されたようなアド
レス割当てを有する、それぞれのCPUの動作を
制御することができる。また、第3図のVM/
PMP領域は、第1図に詳細に示されたタスク指
名リストおよび制御ブロツクを含む。タスク指名
リストは、VM/SPプログラムで通常使用され
るVMD制御ブロツクとほぼ同じ複数の制御ブロ
ツク(VMD)を含む。しかしながら、VM/
PMPプログラムのために設けたVMDブロツク
は、PMPフラグ・フイールドおよびUPSポイン
タ・フイールドのような、本発明に適応する特に
調整された追加フイールドを有する。
ユーザがシステムをログオンする場合、VMD
はユーザのためにVM/PMPによつて生成され
る。しかしながら、第1図に示されたPMPゲス
ト制御ブロツク(GCB)は、最初にVM/PMP
プログラムによつて設けられ、将来のある時点
で、UPSコピーを受取る使用可能な各MSゾーン
のGCBが生成される。また、各GCBの内容も、
VM/PMPが初期化されると初期化される。こ
の内容には、ゾーン境界絶対アドレス、ゲスト・
ゾーン値、ISC値、ゲストI/O割込みポイン
タ、およびLDEVリスト・ポインタが含まれる。
はユーザのためにVM/PMPによつて生成され
る。しかしながら、第1図に示されたPMPゲス
ト制御ブロツク(GCB)は、最初にVM/PMP
プログラムによつて設けられ、将来のある時点
で、UPSコピーを受取る使用可能な各MSゾーン
のGCBが生成される。また、各GCBの内容も、
VM/PMPが初期化されると初期化される。こ
の内容には、ゾーン境界絶対アドレス、ゲスト・
ゾーン値、ISC値、ゲストI/O割込みポイン
タ、およびLDEVリスト・ポインタが含まれる。
第1図の例では、システムVMD201、UPS
1 VMD〜UPS4 VMD203,205,2
07および209、ならびにVM VMD(1)〜VM
VMD(2) 211〜213が示されている。シス
テムVMD201およびVM VMD211〜21
3を設けることにより、各タスクは、VMタスク
が現にVMシステムによつてランされている従来
の方法でランされる。
1 VMD〜UPS4 VMD203,205,2
07および209、ならびにVM VMD(1)〜VM
VMD(2) 211〜213が示されている。シス
テムVMD201およびVM VMD211〜21
3を設けることにより、各タスクは、VMタスク
が現にVMシステムによつてランされている従来
の方法でランされる。
第1図にはVMDロツク・フイールドも設けら
れている。同時に2以上のCPUがタスク指名リ
ストを開始できないようにするため、どのCPU
も比較およびスワツプ(CSまたはCDS)命令を
うまく実行してVMDロツク・フイールドを検査
してからタスク指名リストを開始する。
れている。同時に2以上のCPUがタスク指名リ
ストを開始できないようにするため、どのCPU
も比較およびスワツプ(CSまたはCDS)命令を
うまく実行してVMDロツク・フイールドを検査
してからタスク指名リストを開始する。
どのVMDも作業可能フイールド、CPU IDフ
イールド、および状態記述(SD)フイールドを
含む。各SDは多くのフイールドを有する大きな
領域で、SIE命令を実行しているCPUのためにシ
ステム記述を設け、CPUは、それぞれのVMDが
表わすゲストが使用する別のアーキテクチヤ(例
えば、システム/360またはシステム/370)をエ
ミユレートする。SDの内容は本明細書で既に定
義されている。CPU IDフイールドは使用可能
で、このVMDの作業が実行することになつてい
る専用CPUの識別子を含む。CPU IDフイールド
が0にセツトされると、VMDの作業はどのCPU
でも実行できる。作業可能フイールドは、それぞ
れのVMDに関して実行可能なタスクがあるかど
うかを指示し、非UPS VMDのタスクは非UPS
VMDにある他のフイールド(図示せず)に含ま
れている。
イールド、および状態記述(SD)フイールドを
含む。各SDは多くのフイールドを有する大きな
領域で、SIE命令を実行しているCPUのためにシ
ステム記述を設け、CPUは、それぞれのVMDが
表わすゲストが使用する別のアーキテクチヤ(例
えば、システム/360またはシステム/370)をエ
ミユレートする。SDの内容は本明細書で既に定
義されている。CPU IDフイールドは使用可能
で、このVMDの作業が実行することになつてい
る専用CPUの識別子を含む。CPU IDフイールド
が0にセツトされると、VMDの作業はどのCPU
でも実行できる。作業可能フイールドは、それぞ
れのVMDに関して実行可能なタスクがあるかど
うかを指示し、非UPS VMDのタスクは非UPS
VMDにある他のフイールド(図示せず)に含ま
れている。
各UPS VMDはPMPフラグ・フイールドを含
む。このフイールドは単一のビツトの場合があ
る。このビツトはオンにセツトされると、特定の
VMDが、PMPプログラムで与えられたUPS処
理を必要とする、UPSタイプのVMDであること
を識別する。
む。このフイールドは単一のビツトの場合があ
る。このビツトはオンにセツトされると、特定の
VMDが、PMPプログラムで与えられたUPS処
理を必要とする、UPSタイプのVMDであること
を識別する。
各UPS VMDは更に、それぞれのGCBを指す
UPSポインタ(すなわち、アドレス)を含む。
第1図で、UPS1,VMD203はGCB204を
指すポインタを含む。同様に、他のUPS VMD
205,207および209は、それぞれの
UPSゲストのGCB206,208および210
を指すGCBポインタを有する。
UPSポインタ(すなわち、アドレス)を含む。
第1図で、UPS1,VMD203はGCB204を
指すポインタを含む。同様に、他のUPS VMD
205,207および209は、それぞれの
UPSゲストのGCB206,208および210
を指すGCBポインタを有する。
それぞれのUPSゲストのGCB204,206,
208および210は同一の構造を有する。詳細
に図示されたGCB210は、ゲスト4境界絶対
アドレスを含む。このアドレスは主記憶装置内の
UPS4の領域の最初の境界の絶対アドレスであ
る。ゲスト4ゾーン・フイールドは0にセツトさ
れているビツト138の次に位置し、7個のゾー
ン・ビツトは、最初の境界―ゲスト4の場合は
48MB―を表わす31ビツト絶対アドレスの左端の
7ビツトである。また、GCB210は、それぞ
れのゲストに割当てられたI/O割込みサブクラ
ス・コード(ISC)を含むゲスト4ISCフイール
ドを有する。更に、GCB210は、このゲスト
のI/O割込み待ち行列の先頭を見つけるゲスト
4のI/O割込みポインタ、ならびにこのゲスト
のUPS制御領域にあるLDEVポインタ・リスト
を見つけるゲスト4LDEVリスト・ポインタを含
む。LDEVポインタ・リストはアドレス項目を含
み、このゲストが割当てたI/O装置のLDEVを
見つける。同じLDEVが同じ物理装置を共用する
複数ゲストによつて使用されることがある。
208および210は同一の構造を有する。詳細
に図示されたGCB210は、ゲスト4境界絶対
アドレスを含む。このアドレスは主記憶装置内の
UPS4の領域の最初の境界の絶対アドレスであ
る。ゲスト4ゾーン・フイールドは0にセツトさ
れているビツト138の次に位置し、7個のゾー
ン・ビツトは、最初の境界―ゲスト4の場合は
48MB―を表わす31ビツト絶対アドレスの左端の
7ビツトである。また、GCB210は、それぞ
れのゲストに割当てられたI/O割込みサブクラ
ス・コード(ISC)を含むゲスト4ISCフイール
ドを有する。更に、GCB210は、このゲスト
のI/O割込み待ち行列の先頭を見つけるゲスト
4のI/O割込みポインタ、ならびにこのゲスト
のUPS制御領域にあるLDEVポインタ・リスト
を見つけるゲスト4LDEVリスト・ポインタを含
む。LDEVポインタ・リストはアドレス項目を含
み、このゲストが割当てたI/O装置のLDEVを
見つける。同じLDEVが同じ物理装置を共用する
複数ゲストによつて使用されることがある。
本実施例では、UPSプログラム(磁気テープ
上にあるかもしれない)は、第9図のログオン手
順により第3図のUPS1〜4の、それぞれの4
つの領域に4回コピーできる。UPSプログラム
がコピーされる度に、元の磁気テープに存在する
ような各領域に、同じ、24ビツト実アドレスのセ
ツトが供給される。これらの実アドレスは、領域
ごとに、それぞれの領域の境界の最初から0〜
12MBの範囲にわたる。各ゾーン領域の終りの残
りの4MBは、それぞれのUPSによつて使用され
ることはないが、その通常のVMユーザに割当て
られるVMプログラム(すなわち、VMゲスト)
のような他のプログラムにとつて使用可能であ
り、VMゲストのVM制御プログラムによつても
割当てできる。
上にあるかもしれない)は、第9図のログオン手
順により第3図のUPS1〜4の、それぞれの4
つの領域に4回コピーできる。UPSプログラム
がコピーされる度に、元の磁気テープに存在する
ような各領域に、同じ、24ビツト実アドレスのセ
ツトが供給される。これらの実アドレスは、領域
ごとに、それぞれの領域の境界の最初から0〜
12MBの範囲にわたる。各ゾーン領域の終りの残
りの4MBは、それぞれのUPSによつて使用され
ることはないが、その通常のVMユーザに割当て
られるVMプログラム(すなわち、VMゲスト)
のような他のプログラムにとつて使用可能であ
り、VMゲストのVM制御プログラムによつても
割当てできる。
各UPS領域は、UPSページ0、すなわちエミ
ユレートされたCPUのシミユレートされたPSA
領域で始まり、ホスト・システムとみなされる
PMPプログラムによつてエミユレートされたゲ
ストのような各領域のUPSプログラムを実行す
ることになつている。UPSページ0は、それぞ
れのエミユレートされたCPUのコンピユータ・
アーキテクチヤ、例えば、システム/370によつ
て設計される。本実施例では、UPSプログラム
の各々は、370―XAアーキテクチヤによつて動
作するホストPMPプログラムによるシステム/
370アーキテクチヤによつて動作する。
ユレートされたCPUのシミユレートされたPSA
領域で始まり、ホスト・システムとみなされる
PMPプログラムによつてエミユレートされたゲ
ストのような各領域のUPSプログラムを実行す
ることになつている。UPSページ0は、それぞ
れのエミユレートされたCPUのコンピユータ・
アーキテクチヤ、例えば、システム/370によつ
て設計される。本実施例では、UPSプログラム
の各々は、370―XAアーキテクチヤによつて動
作するホストPMPプログラムによるシステム/
370アーキテクチヤによつて動作する。
第9図は、UPSゲストをシステムに初期化す
ることを可能にするログオン手順を示す。このよ
うな新しいゲストのログオンは、システムが別の
UPSゲストを収容できるGCBおよび記憶空間を
有する限りいつでも実行できる。第9図のステツ
プ11で、VM/PMPは、VMDタスク指名リス
トの次のVMDとして現在のゲストGの特定の
UPS VMDを生成する。次にステツプ12で、
MSのVM/PMP領域にある前記ゲストのUPS
VMDのGCBを見つける。次いでステツプ13
で、前記GCBを見つけるVMDにGCBポインタを
書き込むことにより、新たに生成されたVMDに
前記GCBを接続する。
ることを可能にするログオン手順を示す。このよ
うな新しいゲストのログオンは、システムが別の
UPSゲストを収容できるGCBおよび記憶空間を
有する限りいつでも実行できる。第9図のステツ
プ11で、VM/PMPは、VMDタスク指名リス
トの次のVMDとして現在のゲストGの特定の
UPS VMDを生成する。次にステツプ12で、
MSのVM/PMP領域にある前記ゲストのUPS
VMDのGCBを見つける。次いでステツプ13
で、前記GCBを見つけるVMDにGCBポインタを
書き込むことにより、新たに生成されたVMDに
前記GCBを接続する。
そしてステツプ14で、ゲストUPS制御領域
のLDEVポインタ・リストを作成する。
のLDEVポインタ・リストを作成する。
次にステツプ16で、ゲストGが専用する使用
可能なCPUを選択する。ステツプ17で、VM/
PMP領域にある前記CPUのPSAを探し、PSAに
おける専用フイールドを見つけ、オン状態(例え
ば、1状態)にセツトする。次いでステツプ18
で、前記CPUの制御レジスタ(CR)に、ゲスト
のGCBにある、ゲストに割当てられたISC値をロ
ードする。次にステツプ19で、UPSのコピー
をゲストGCBにあるMS絶対アドレスにロードす
る。若し、第9図のステツプのどれかが万一失販
したら、新しいゲストのログオンは実行できな
い。
可能なCPUを選択する。ステツプ17で、VM/
PMP領域にある前記CPUのPSAを探し、PSAに
おける専用フイールドを見つけ、オン状態(例え
ば、1状態)にセツトする。次いでステツプ18
で、前記CPUの制御レジスタ(CR)に、ゲスト
のGCBにある、ゲストに割当てられたISC値をロ
ードする。次にステツプ19で、UPSのコピー
をゲストGCBにあるMS絶対アドレスにロードす
る。若し、第9図のステツプのどれかが万一失販
したら、新しいゲストのログオンは実行できな
い。
第4図には、VM/PMP制御プログラムにあ
るタスク指名ルーチンの流れ図を示す。タスク指
名ルーチンは、MPの全CPUで同時に実行でき
る。CPUはどれも実行を要するごとに、ステツ
プ31を開始し、タスク指名リストをアクセスす
る。そのため、CPUは先ず第1図のVMDロツ
ク・フイールド200をセツトしなければならな
い。CPUがVMDタスク指名リストをアクセスで
きるのはこの時しかない。該ロツクをセツトする
には、CPUは、通常の比較およびスワツプ命令
のような命令をうまく実行しなければならない。
ロツク・フイールドがCPUによつてセツトされ
ると、システムのCPU間の約束によつて該CPU
しか、前記リストのVMDをアクセスできない。
次に該CPUのタスク指名プログラムはステツプ
32に進み、リスト上の最初のVMDブロツク
(システムVMD201)を検査し、その作業可
能フイールドにあるビツトのどれかがオンである
かどうかを決め、実行可能な一般的な型システム
作業があるかどうかを指示する。若しあれば、該
作業は、VM/SPプログラムが行なう従来の方
法で処理される。作業可能フイールドは、VM/
SPで用いた通常のVMDで始まつたものと推定さ
れる。
るタスク指名ルーチンの流れ図を示す。タスク指
名ルーチンは、MPの全CPUで同時に実行でき
る。CPUはどれも実行を要するごとに、ステツ
プ31を開始し、タスク指名リストをアクセスす
る。そのため、CPUは先ず第1図のVMDロツ
ク・フイールド200をセツトしなければならな
い。CPUがVMDタスク指名リストをアクセスで
きるのはこの時しかない。該ロツクをセツトする
には、CPUは、通常の比較およびスワツプ命令
のような命令をうまく実行しなければならない。
ロツク・フイールドがCPUによつてセツトされ
ると、システムのCPU間の約束によつて該CPU
しか、前記リストのVMDをアクセスできない。
次に該CPUのタスク指名プログラムはステツプ
32に進み、リスト上の最初のVMDブロツク
(システムVMD201)を検査し、その作業可
能フイールドにあるビツトのどれかがオンである
かどうかを決め、実行可能な一般的な型システム
作業があるかどうかを指示する。若しあれば、該
作業は、VM/SPプログラムが行なう従来の方
法で処理される。作業可能フイールドは、VM/
SPで用いた通常のVMDで始まつたものと推定さ
れる。
あるVMシステム作業が完成した後、または、
若し、システムVMD201の作業可能フイール
ドの全ビツトがオフならば、ステツプ33に進
み、次のVMD(検査される最初のUPS VMD、
すなわち、UPS1 VMD203として示され
る)に移動する。次にステツプ34で、CPUID
フイールドを検査し、このVMDが特定のCPUに
専用されているかどうかを決定し、それによつ
て、その作業のすべては、そのVMDにIDを有す
るCPUのみで行なわれなければならない。若し、
CPU IDフイールドが0であり、そのVMDを指
示するならば、ステツプ36に進み、VM/
PMP領域にあるこのCPUのPSAの専用フイール
ドを検査することにより、このタスク指名プログ
ラムを実行しているCPUが非専用CPUであるか
どうかを決定する。若し、このCPUの専用フイ
ールドはオンであるが、このVMDの場合はオン
ではないならば、このVMDの作業はこのCPUで
は実行できず(すなわち、このCPUは別のVMD
に専用されている)、ステツプ33に戻り、次の
VMD(例、UPS VMD205)に移動する。
若し、システムVMD201の作業可能フイール
ドの全ビツトがオフならば、ステツプ33に進
み、次のVMD(検査される最初のUPS VMD、
すなわち、UPS1 VMD203として示され
る)に移動する。次にステツプ34で、CPUID
フイールドを検査し、このVMDが特定のCPUに
専用されているかどうかを決定し、それによつ
て、その作業のすべては、そのVMDにIDを有す
るCPUのみで行なわれなければならない。若し、
CPU IDフイールドが0であり、そのVMDを指
示するならば、ステツプ36に進み、VM/
PMP領域にあるこのCPUのPSAの専用フイール
ドを検査することにより、このタスク指名プログ
ラムを実行しているCPUが非専用CPUであるか
どうかを決定する。若し、このCPUの専用フイ
ールドはオンであるが、このVMDの場合はオン
ではないならば、このVMDの作業はこのCPUで
は実行できず(すなわち、このCPUは別のVMD
に専用されている)、ステツプ33に戻り、次の
VMD(例、UPS VMD205)に移動する。
他方、若しステツプ36で、CPU PSAの専用
フイールドがオフであれば、この非専用VMDは
この非専用CPUで作業を実行できる。次に、ス
テツプ42に進み、このVMDの作業可能フイー
ルドの任意のビツトが0であるかどうかを決定す
る。若し、作業が使用可能ではないなら、再びス
テツプ33に進む。しかし、若し作業が使用可能
ならば、VMDタスク指名リストはステツプ43
でアンロツクされ、第1図のVMDロツク・フイ
ールド200をリセツトするので、タスク指名リ
ストは別のCPUで検査できる。次にステツプ4
4で、このVMDのPMPフラグを検査し、それが
UPS作業を表わすか、VM作業を表わすかを決め
る。若し、フラグがオンならば、出口Aから第5
図に進み、非専用CPUでUPS作業を実行する。
若し、PMPフラグがオフならば、ステツプ46
に進み、非専用CPUで通常のVMゲストとしてこ
のVMDの作業を実行する。
フイールドがオフであれば、この非専用VMDは
この非専用CPUで作業を実行できる。次に、ス
テツプ42に進み、このVMDの作業可能フイー
ルドの任意のビツトが0であるかどうかを決定す
る。若し、作業が使用可能ではないなら、再びス
テツプ33に進む。しかし、若し作業が使用可能
ならば、VMDタスク指名リストはステツプ43
でアンロツクされ、第1図のVMDロツク・フイ
ールド200をリセツトするので、タスク指名リ
ストは別のCPUで検査できる。次にステツプ4
4で、このVMDのPMPフラグを検査し、それが
UPS作業を表わすか、VM作業を表わすかを決め
る。若し、フラグがオンならば、出口Aから第5
図に進み、非専用CPUでUPS作業を実行する。
若し、PMPフラグがオフならば、ステツプ46
に進み、非専用CPUで通常のVMゲストとしてこ
のVMDの作業を実行する。
しかしながら、ステツプ34で、若し、VMD
のCPU IDフイールドが専用CPUを指定すれば、
イエスの出口からステツプ41に進み、VMDの
CPU IDフイールドを実行中のCPUのPSAの専
用フイールドにあるCPU IDと比較する。若し、
両者が一致しなければ、このCPUはこのVMDに
は専用されておらず、ノーの出口からステツプ3
3に戻り、次のVMDに進む。他方、ステツプ4
1で、両者が一致すれば、このCPUはこのVMD
に専用されており、イエスの出口からステツプ4
2に進み、VMDの作業可能フイールドを検査す
る。若し、ステツプ42で、このVMDの作業が
使用可能でないなら、ノーの出口からステツプ3
3に戻る。しかし、若し、作業可能フイールドが
オンならば、ステツプ43に進み、VMDタスク
指名リストをアンロツクするので、MPにある別
のCPUによつて検査される。次いで、ステツプ
44に進み、このVMDにあるPMPビツトの状態
を検査する。若し、PMPビツトがオンならば、
UPS作業はこのVMDのために専用されており、
出口Aから第5図に進み、UPS作業を行なう。
若し、PMPビツトが、オフならば、UPS作業は
存在しないが、VM作業は存在し、ノーの出口か
らステツプ46に進み、このCPUで通常のVM作
業を行なう。
のCPU IDフイールドが専用CPUを指定すれば、
イエスの出口からステツプ41に進み、VMDの
CPU IDフイールドを実行中のCPUのPSAの専
用フイールドにあるCPU IDと比較する。若し、
両者が一致しなければ、このCPUはこのVMDに
は専用されておらず、ノーの出口からステツプ3
3に戻り、次のVMDに進む。他方、ステツプ4
1で、両者が一致すれば、このCPUはこのVMD
に専用されており、イエスの出口からステツプ4
2に進み、VMDの作業可能フイールドを検査す
る。若し、ステツプ42で、このVMDの作業が
使用可能でないなら、ノーの出口からステツプ3
3に戻る。しかし、若し、作業可能フイールドが
オンならば、ステツプ43に進み、VMDタスク
指名リストをアンロツクするので、MPにある別
のCPUによつて検査される。次いで、ステツプ
44に進み、このVMDにあるPMPビツトの状態
を検査する。若し、PMPビツトがオンならば、
UPS作業はこのVMDのために専用されており、
出口Aから第5図に進み、UPS作業を行なう。
若し、PMPビツトが、オフならば、UPS作業は
存在しないが、VM作業は存在し、ノーの出口か
らステツプ46に進み、このCPUで通常のVM作
業を行なう。
CPUでVM作業またはUPS作業が完了すると、
ステツプ46から、または第5図の出口Bからス
テツプ33に再び進み、第4図のプロセスが繰返
される。
ステツプ46から、または第5図の出口Bからス
テツプ33に再び進み、第4図のプロセスが繰返
される。
PMP作業が存在する場合、第4図の出口Aか
第5図に進み、PMPプログラムは、ステツプ5
2で、SIE命令を出し、CPUをエミユレーシヨン
状態に置き、それぞれのCPUがUPSプログラム
を実行するのに必要なアーキテクチヤをエミユレ
ートし、ステツプ53でUPSコードを実行する。
第5図に進み、PMPプログラムは、ステツプ5
2で、SIE命令を出し、CPUをエミユレーシヨン
状態に置き、それぞれのCPUがUPSプログラム
を実行するのに必要なアーキテクチヤをエミユレ
ートし、ステツプ53でUPSコードを実行する。
UPSコード実行は、SIE通知割込みがあるごと
に一時的に終了する。これは、ステツプ54で、
(SIE命令を実行中の)CPUが、SIE実行では処
理できず、監視制御プログラム、すなわち、この
場合はVM/PMPの介入を必要とする命令の型
または特殊な状態を検出することにより行なわれ
る。I/O処理を取扱うSIE割込みを生じる基本
的に重要な下記の2種類の状態は: (1) I/O(SIOまたはSIOF)開始命令、 (2) I/O割込み可能状態 である。従つて、第5図のステツプ54には、
I/O装置を開始するSIOまたはSIOFの、CPU
による検出が含まれる。その場合、動作はステツ
プ56に進み、要求されたI/O装置の開始に関
連するLDEV/PDEV/ORBを見つける。また、
若し、ステツプ54で、(現在のUPSゲストの状
態記述子(SD)にある現在のPSWでI/O割込
可能ビツトをオンにセツトするシステム・マス
ク・セツト命令のような)I/O割込可能が検出
されれば、出口Cを経て、第6図に進む。また、
ステツプ54で、若し、本発明と無関係な他の種
類の通知割込み状態が検出されれば、出口55に
進み、本発明の範囲外の手段によつて処理され
る。
に一時的に終了する。これは、ステツプ54で、
(SIE命令を実行中の)CPUが、SIE実行では処
理できず、監視制御プログラム、すなわち、この
場合はVM/PMPの介入を必要とする命令の型
または特殊な状態を検出することにより行なわれ
る。I/O処理を取扱うSIE割込みを生じる基本
的に重要な下記の2種類の状態は: (1) I/O(SIOまたはSIOF)開始命令、 (2) I/O割込み可能状態 である。従つて、第5図のステツプ54には、
I/O装置を開始するSIOまたはSIOFの、CPU
による検出が含まれる。その場合、動作はステツ
プ56に進み、要求されたI/O装置の開始に関
連するLDEV/PDEV/ORBを見つける。また、
若し、ステツプ54で、(現在のUPSゲストの状
態記述子(SD)にある現在のPSWでI/O割込
可能ビツトをオンにセツトするシステム・マス
ク・セツト命令のような)I/O割込可能が検出
されれば、出口Cを経て、第6図に進む。また、
ステツプ54で、若し、本発明と無関係な他の種
類の通知割込み状態が検出されれば、出口55に
進み、本発明の範囲外の手段によつて処理され
る。
若し、SIOまたはSIOF命令が通知割込みを生
じたら、ステツプ56に進み、VM/PMPプロ
グラムが現在のGCB(例、第1図のGCB210)
にあるLDEVリスト・ポインタを使用して特定の
LDEVブロツクを見つける。すなわち、第1図の
関連するUPS制御領域にあるLDEVポインタ・
リストが見つかると、VM/PMPプログラムは、
SIOまたはSIOF命令で指定されたI/Oアドレ
スを、LDEVポインタ・リストへのインデツクス
として用い、第8図に示されたタイプの要求され
たLDEV135のポインタ・アドレス―第1図の
関連するUPS制御領域にある―を得る。アクセ
スされたLDEVにはPDEVポインタがあり、第8
図の、要求されたI/O装置のPDEVブロツク1
33を見つける。(I/O装置のPDEVブロツク
は1つしかないが、I/O装置のLDEVブロツク
の数は、同じI/O装置を共用するゲストの数と
同じである。)VM/PMPは、たとえ対応する
PDEVブロツクや使用中であつても、ゲストの
LDEVブロツクをどれでも処理できる。
じたら、ステツプ56に進み、VM/PMPプロ
グラムが現在のGCB(例、第1図のGCB210)
にあるLDEVリスト・ポインタを使用して特定の
LDEVブロツクを見つける。すなわち、第1図の
関連するUPS制御領域にあるLDEVポインタ・
リストが見つかると、VM/PMPプログラムは、
SIOまたはSIOF命令で指定されたI/Oアドレ
スを、LDEVポインタ・リストへのインデツクス
として用い、第8図に示されたタイプの要求され
たLDEV135のポインタ・アドレス―第1図の
関連するUPS制御領域にある―を得る。アクセ
スされたLDEVにはPDEVポインタがあり、第8
図の、要求されたI/O装置のPDEVブロツク1
33を見つける。(I/O装置のPDEVブロツク
は1つしかないが、I/O装置のLDEVブロツク
の数は、同じI/O装置を共用するゲストの数と
同じである。)VM/PMPは、たとえ対応する
PDEVブロツクや使用中であつても、ゲストの
LDEVブロツクをどれでも処理できる。
また、PMPプログラムは、アクセスされた
LDEVブロツクに関連したORB(動作要求ブロツ
ク)をアクセスする。次に、ステツプ57で
PMPは、LDEV/ORBブロツクに、それぞれの
ゲストのCAWおよびゲストのページ0から得ら
れる、いくつかのフイールドをロードする。これ
らは: (1) UPSゲストの保護キー・フイールド、 (2) ゲストのチヤネル・プログラム・アドレスで
ある。
LDEVブロツクに関連したORB(動作要求ブロツ
ク)をアクセスする。次に、ステツプ57で
PMPは、LDEV/ORBブロツクに、それぞれの
ゲストのCAWおよびゲストのページ0から得ら
れる、いくつかのフイールドをロードする。これ
らは: (1) UPSゲストの保護キー・フイールド、 (2) ゲストのチヤネル・プログラム・アドレスで
ある。
次に、第5図のステツプ58では、在来型の比
較およびスワツプ・ルーチンによつてPDEVロツ
ク・バイトをオンにセツトし、所要のロツクがオ
ンにセツトされるまでスピンする。
較およびスワツプ・ルーチンによつてPDEVロツ
ク・バイトをオンにセツトし、所要のロツクがオ
ンにセツトされるまでスピンする。
次にステツプ59で、要求されたI/O装置を
開始する。この動作は第7図に詳細に示されたル
ーチンによつて制御される。第7図のステツプ9
1で、このルーチンは、対応するPDEVブロツク
133(第8図)の使用中ビツトを検査する。若
し、このビツトがオンなら、表示されたI/O装
置は使用中であり、現在の要求に対し、いまは使
用できない。この場合、イエスの出口からステツ
プ92に進み、この要求を、PDEVブロツク13
3にある装置待ち行列ポインタが指定する、第8
図のI/O要求待ち行列に加える。そして、ステ
ツプ97で、PDEVブロツク133はアンロツク
され、第5図のステツプ59に戻り、VM/
PMPは再びSIE命令を出し、その同じCPUで同
じUPSゲスト・プログラムの実行を続ける。第
7図のステツプ91で、PDEVブロツク133の
PDEV使用中フイールドがオフで、装置が使用中
ではないことを表示すれば、ノーの出口からステ
ツプ93に進み、PDEVがこのUPSに現に割当
てられているかどうかを決定するため、この
UPSのLDEV ISCとPDEV133(第8図)の
ISCフイールドとを比較する。若し、両者が等し
ければ、イエスの出口からステツプ96に進み、
I/O装置を起動する370―XAサブチヤネル起
動(SSCH)命令を出す。これに対し、ステツプ
94の比較結果が不一致なら、ステツプ94に進
み、サブチヤネルのISCをこのUPSのISCに変更
する370―XAサブチヤネル変更(MSCH)命令
を出す。そしてPDEV ISCはLDEV ISCに対応
するように更新される。そしてステツプ96に進
み、最後にサブチヤネルを起動するSSCH命令を
実行する。
開始する。この動作は第7図に詳細に示されたル
ーチンによつて制御される。第7図のステツプ9
1で、このルーチンは、対応するPDEVブロツク
133(第8図)の使用中ビツトを検査する。若
し、このビツトがオンなら、表示されたI/O装
置は使用中であり、現在の要求に対し、いまは使
用できない。この場合、イエスの出口からステツ
プ92に進み、この要求を、PDEVブロツク13
3にある装置待ち行列ポインタが指定する、第8
図のI/O要求待ち行列に加える。そして、ステ
ツプ97で、PDEVブロツク133はアンロツク
され、第5図のステツプ59に戻り、VM/
PMPは再びSIE命令を出し、その同じCPUで同
じUPSゲスト・プログラムの実行を続ける。第
7図のステツプ91で、PDEVブロツク133の
PDEV使用中フイールドがオフで、装置が使用中
ではないことを表示すれば、ノーの出口からステ
ツプ93に進み、PDEVがこのUPSに現に割当
てられているかどうかを決定するため、この
UPSのLDEV ISCとPDEV133(第8図)の
ISCフイールドとを比較する。若し、両者が等し
ければ、イエスの出口からステツプ96に進み、
I/O装置を起動する370―XAサブチヤネル起
動(SSCH)命令を出す。これに対し、ステツプ
94の比較結果が不一致なら、ステツプ94に進
み、サブチヤネルのISCをこのUPSのISCに変更
する370―XAサブチヤネル変更(MSCH)命令
を出す。そしてPDEV ISCはLDEV ISCに対応
するように更新される。そしてステツプ96に進
み、最後にサブチヤネルを起動するSSCH命令を
実行する。
次いでステツプ97で、PDEVをアンロツク
し、装置を共用する別の要求UPSによつて使用
できるようにする。
し、装置を共用する別の要求UPSによつて使用
できるようにする。
従つて、UPSはどれも、たとえ装置が使用中
で、PDEVの操作が装置動作と重なつても、アン
ロツクされたPDEVをアクセスできる。しかしな
がら、若し、新しいI/O要求者がPDEVの使用
中ビツトがオンであることを発見し、要求が装置
待ち行列に加えられれば、新しい要求は、その装
置からの後のI/O割込みによつて、I/O要求
待ち行列が該装置の現に存在するI/O要求につ
いて検査されるまで、I/O装置をアクセスでき
ない。
で、PDEVの操作が装置動作と重なつても、アン
ロツクされたPDEVをアクセスできる。しかしな
がら、若し、新しいI/O要求者がPDEVの使用
中ビツトがオンであることを発見し、要求が装置
待ち行列に加えられれば、新しい要求は、その装
置からの後のI/O割込みによつて、I/O要求
待ち行列が該装置の現に存在するI/O要求につ
いて検査されるまで、I/O装置をアクセスでき
ない。
ステツプ97の出口から第5図に戻り、SIE命
令を再び出してこの要求のUPSコードの実行の
継続する。
令を再び出してこの要求のUPSコードの実行の
継続する。
最後には、起動されたI/O装置は、その動作
点に達し、このCPUに対しI/O割込み信号を
生成する。I/O割込みは、サブチヤネルと関連
したI/O割込みサブクラス・マスク・ビツトが
1であり、かつ、CPUがI/O割込みについて
使用可能であるときしか、生じることができな
い。若し、チヤネル・サブシステムがサブチヤネ
ルからの割込み要求の優先順位を確立したが、
CPUがI/O割込みを禁止されたならば、サブ
チヤネルに関連したI/O割込みサブクラス・マ
スク・ビツトが1であることを条件として、割込
みは、CPUを割込み可能にする命令の終了直後、
かつ次の命令が実行される前に生じる。
点に達し、このCPUに対しI/O割込み信号を
生成する。I/O割込みは、サブチヤネルと関連
したI/O割込みサブクラス・マスク・ビツトが
1であり、かつ、CPUがI/O割込みについて
使用可能であるときしか、生じることができな
い。若し、チヤネル・サブシステムがサブチヤネ
ルからの割込み要求の優先順位を確立したが、
CPUがI/O割込みを禁止されたならば、サブ
チヤネルに関連したI/O割込みサブクラス・マ
スク・ビツトが1であることを条件として、割込
みは、CPUを割込み可能にする命令の終了直後、
かつ次の命令が実行される前に生じる。
割込みによつて、現在のPSWが、CPU PSA
実記憶位置56に古いPSWとして記憶され、割
込みに関連したI/O割込みコードが、割込みを
可能にするCPU PSAにある実記憶位置184〜
191に記憶される。続いて、新しいPSWが実
記憶位置120からロードされ、そのPSWによ
つて指示されたCPU状態で処理が再開される。
割込みを生じるサブチヤネルは、割込みコードに
よつて識別される。I/O割込みコードは、
IBM Publication Form No.SA22―7085―0で
フオーマツトが定義される。
実記憶位置56に古いPSWとして記憶され、割
込みに関連したI/O割込みコードが、割込みを
可能にするCPU PSAにある実記憶位置184〜
191に記憶される。続いて、新しいPSWが実
記憶位置120からロードされ、そのPSWによ
つて指示されたCPU状態で処理が再開される。
割込みを生じるサブチヤネルは、割込みコードに
よつて識別される。I/O割込みコードは、
IBM Publication Form No.SA22―7085―0で
フオーマツトが定義される。
割込み応答ブロツク(IRB)はサブチヤネル検
査(TSCH)命令の記憶オペランドである。IRB
アドレスの下位2ビツトは0で、ワード境界の
IRBを定義する。IRBは、主要な3つのフイール
ドとして、サブチヤネル・ステータス・ワード
(SCSW)、拡張ステータス・ワード(ESW)、お
よび拡張制御ワード(ECW)を含む。
査(TSCH)命令の記憶オペランドである。IRB
アドレスの下位2ビツトは0で、ワード境界の
IRBを定義する。IRBは、主要な3つのフイール
ドとして、サブチヤネル・ステータス・ワード
(SCSW)、拡張ステータス・ワード(ESW)、お
よび拡張制御ワード(ECW)を含む。
従つて、I/O割込み信号は、それぞれの
CPUのハードウエア割込み動作を生じる。CPU
のPSAは、CPU PSAを見つけるCPUのプレフ
イツクス・レジスタの絶対アドレスの使用によ
り、VM/PMP領域で見つかる。このPSAにあ
る新しいI/O PSWアドレスにより、第5図
のステツプ60に進み、第8図に示された装置の
I/O割込みパラメータをアクセスする。ステツ
プ61で、割込みパラメータのビツト桁137を
検査し、装置がUPSの装置かVMの装置かを決め
る。若し、VMの装置なら、VM制御プログラム
に分岐し、本発明に関連しない従来の方法で実行
されるI/O割込みを処理する。また若し、
UPSの装置なら、割込パラメータはLDEVのア
ドレスであり、ステツプ62に進んで、LDEVに
あるPDEVポインタからPDEVをアクセスする。
CPUのハードウエア割込み動作を生じる。CPU
のPSAは、CPU PSAを見つけるCPUのプレフ
イツクス・レジスタの絶対アドレスの使用によ
り、VM/PMP領域で見つかる。このPSAにあ
る新しいI/O PSWアドレスにより、第5図
のステツプ60に進み、第8図に示された装置の
I/O割込みパラメータをアクセスする。ステツ
プ61で、割込みパラメータのビツト桁137を
検査し、装置がUPSの装置かVMの装置かを決め
る。若し、VMの装置なら、VM制御プログラム
に分岐し、本発明に関連しない従来の方法で実行
されるI/O割込みを処理する。また若し、
UPSの装置なら、割込パラメータはLDEVのア
ドレスであり、ステツプ62に進んで、LDEVに
あるPDEVポインタからPDEVをアクセスする。
次にステツプ63で、PDEVロツクをセツト
し、ステツプ64で、サブチヤネル検査
(TSCH)命令を実行してMSにあるTSCHオペ
ランド位置のSCSWを得る。
し、ステツプ64で、サブチヤネル検査
(TSCH)命令を実行してMSにあるTSCHオペ
ランド位置のSCSWを得る。
次にステツプ66で、ゲストSDにあるゲスト
の現在のPSW(ゲストのVMDに存在する)で
I/O割込み可能ビツトがオンかどうかを決定す
る。若し、ゲストのI/O割込みが可能でないな
ら、ノーの出口からステツプ67に進み、PMP
プログラムは、そのゲストのSDにある割込みフ
ラグをオンにセツトし、割込みのSCSW(サブチ
ヤネル・ステータス・ワード)をLDEVに記憶す
ることにより、関連LDEVにあるI/O割込みを
待ち行列に入れ、該LDEVを、UPSゲストの
I/O割込み待ち行列に連鎖する。そして、ステ
ツプ69で、I/O起動要求待ち行列134をア
クセスし、このI/O装置のPDEVのI/O起動
要求待ち行列にI/O起動要求があるかどうかを
決定する。若し、結果がイエスなら、ステツプ7
1で、第7図のI/O起動ルーチンを、前に説明
したように実行し、PDEVのI/O起動待ち行列
の先頭の1つのI/O要求が実行される。若し、
I/O起動要求が存在しなければ、ステツプ70
に進み、PDEVのロツク・フイールドをオフにセ
ツトし、次いでステツプ72で、現在のゲストの
VMDにある作業可能フラグを検査する。若し、
作業可能フラグがすべてオフならば、ゲストはラ
ンできず、出口Bから第4図に戻り、このCPU
について他の可能な作業がVMDリストにあるか
どうかを決定する。また、若し、作業可能フラグ
がオンならば、イエスの出口からステツプ52に
戻り、再びSIE命令を出してゲストのUPSコード
実行を続ける。
の現在のPSW(ゲストのVMDに存在する)で
I/O割込み可能ビツトがオンかどうかを決定す
る。若し、ゲストのI/O割込みが可能でないな
ら、ノーの出口からステツプ67に進み、PMP
プログラムは、そのゲストのSDにある割込みフ
ラグをオンにセツトし、割込みのSCSW(サブチ
ヤネル・ステータス・ワード)をLDEVに記憶す
ることにより、関連LDEVにあるI/O割込みを
待ち行列に入れ、該LDEVを、UPSゲストの
I/O割込み待ち行列に連鎖する。そして、ステ
ツプ69で、I/O起動要求待ち行列134をア
クセスし、このI/O装置のPDEVのI/O起動
要求待ち行列にI/O起動要求があるかどうかを
決定する。若し、結果がイエスなら、ステツプ7
1で、第7図のI/O起動ルーチンを、前に説明
したように実行し、PDEVのI/O起動待ち行列
の先頭の1つのI/O要求が実行される。若し、
I/O起動要求が存在しなければ、ステツプ70
に進み、PDEVのロツク・フイールドをオフにセ
ツトし、次いでステツプ72で、現在のゲストの
VMDにある作業可能フラグを検査する。若し、
作業可能フラグがすべてオフならば、ゲストはラ
ンできず、出口Bから第4図に戻り、このCPU
について他の可能な作業がVMDリストにあるか
どうかを決定する。また、若し、作業可能フラグ
がオンならば、イエスの出口からステツプ52に
戻り、再びSIE命令を出してゲストのUPSコード
実行を続ける。
第5図のステツプ66で、若し、ゲストがI/
O割込み可能なら、イエスの出口からステツプ6
8に進み、VM/PMPがI/O割込みのプログ
ラム・シミユレーシヨンを実行することにより、
このUPSゲストのI/O割込みを処理する。
I/O割込みのシミユレーシヨンは、ゲストの
VMDにあるSDで見つかつた、ゲストの現在の
PSWの読取り、次いで、ゲストの現在のPSW
を、それぞれのUPS領域のゲスト・ページ0に
ある古いI/O PSW記憶位置に書込むことを
含む。そして、新しいI/O PSWがゲスト・
ページ0から読取られ、ゲストのSDの現在の
PSW記憶位置に書込まれる。また、(ステツプ6
4で、TSCH命令実行によつて読取られたSCSW
は、ゲスト・ページ0のCSW記憶位置にコピー
される。次いで、ステツプ69に進み、前に説明
したように動作する。
O割込み可能なら、イエスの出口からステツプ6
8に進み、VM/PMPがI/O割込みのプログ
ラム・シミユレーシヨンを実行することにより、
このUPSゲストのI/O割込みを処理する。
I/O割込みのシミユレーシヨンは、ゲストの
VMDにあるSDで見つかつた、ゲストの現在の
PSWの読取り、次いで、ゲストの現在のPSW
を、それぞれのUPS領域のゲスト・ページ0に
ある古いI/O PSW記憶位置に書込むことを
含む。そして、新しいI/O PSWがゲスト・
ページ0から読取られ、ゲストのSDの現在の
PSW記憶位置に書込まれる。また、(ステツプ6
4で、TSCH命令実行によつて読取られたSCSW
は、ゲスト・ページ0のCSW記憶位置にコピー
される。次いで、ステツプ69に進み、前に説明
したように動作する。
第5図のステツプ54のSIE通知割込みが、
I/O割込み可能として検出されるごとに、出口
Cから第6図のステツプ81に進み、第1図のゲ
ストI/O割込みポインタによつて見つけた、現
にI/O割込み待ち行列の先頭にあるI/O割込
み(すなわち、SCSW)を取出す。第5図のステ
ツプ67で、ゲストのI/O装置のI/O割込み
待ち行列に加えられた幾つかのI/O割込みでゲ
ストが割込みできなかつたこともありうる。第6
図のプログラミングによるパスにより、PMPプ
ログラムは、該待ち行列の先頭にある1つのI/
O割込み(SCSW)を処理する。ステツプ81
で、VM/PMPにより割込みが待ち行列から取
出され、ステツプ82で、VM/PMPはゲスト
の割込みをシミユレートする。この動作は、(そ
れぞれのゲストのVMDにあるSDからの)ゲスト
の現在のPSWフイールドを、ゲストのMS領域の
最初の、このゲストのページ0にある、ゲストの
古いI/O PSWフイールドにコピーすること
により行なわれる。次いで、ゲストのページ0に
ある、ゲストの新しいI/O PSWは、(ゲスト
のSDにある)ゲストの現在のPSW記憶位置に書
込まれる。最後に、ステツプ81で待ち行列から
取出された、LDEVからのSCSWは、ゲストのペ
ージ0のCSW PSW記憶位置に書込まれる。
I/O割込み可能として検出されるごとに、出口
Cから第6図のステツプ81に進み、第1図のゲ
ストI/O割込みポインタによつて見つけた、現
にI/O割込み待ち行列の先頭にあるI/O割込
み(すなわち、SCSW)を取出す。第5図のステ
ツプ67で、ゲストのI/O装置のI/O割込み
待ち行列に加えられた幾つかのI/O割込みでゲ
ストが割込みできなかつたこともありうる。第6
図のプログラミングによるパスにより、PMPプ
ログラムは、該待ち行列の先頭にある1つのI/
O割込み(SCSW)を処理する。ステツプ81
で、VM/PMPにより割込みが待ち行列から取
出され、ステツプ82で、VM/PMPはゲスト
の割込みをシミユレートする。この動作は、(そ
れぞれのゲストのVMDにあるSDからの)ゲスト
の現在のPSWフイールドを、ゲストのMS領域の
最初の、このゲストのページ0にある、ゲストの
古いI/O PSWフイールドにコピーすること
により行なわれる。次いで、ゲストのページ0に
ある、ゲストの新しいI/O PSWは、(ゲスト
のSDにある)ゲストの現在のPSW記憶位置に書
込まれる。最後に、ステツプ81で待ち行列から
取出された、LDEVからのSCSWは、ゲストのペ
ージ0のCSW PSW記憶位置に書込まれる。
そして、出口Dから第5図のステツプ52に戻
り、再びSIE命令を出し、UPSコードを実行する
ことにより、ゲストUPSプログラムの実行を再
開する。
り、再びSIE命令を出し、UPSコードを実行する
ことにより、ゲストUPSプログラムの実行を再
開する。
[発明の効果]
本発明は、MPシステムでランするように作成
されてはいないユニプロセツサ・システム
(UPS)プログラムを、MPの複数CPUで実行す
る独特な多重処理(MP)方法を提供する。UPS
の個々のコピーは、MPの、共用された主記憶装
置(MS)に設けられる。ハイパバイザ型の制御
プログラム(区分された多重処理システム、
PMPと呼ばれる)はMP方法を用い、UPSゲス
ト仮想計算機として、MPの個々のCPUでUPSの
複数コピーの同時実行が可能である。PMPは、
UPSの特定のコピーだけの実行にCPUをどれで
も専用できる。UPSのコピーは、互いに独立に、
別々のCPUでランするが、I/O装置を共用で
きる。PMPは、370―XAアーキテクチヤを有す
るCPUで動作し、CPUでエミユレーシヨンを利
用するように設計された、仮想計算機(VM)型
のジヨブ入力およびタスク指名制御プログラミン
グ・システムによつてランし、同一のまたはもう
1つのアーキテクチヤ(例えば、システム/360
またはシステム/370)用として設計されたUPS
が、エミユレーシヨン命令(例えば、解釈実行開
始、SIE命令)を用いることにより、UPSゲスト
として370―XA CPUで実行することができる。
UPSコピー(すなわち、UPSゲスト)を実行す
る効率的な直接I/O処理は、各UPSのMS境界
が別々の2nバイト絶対アドレスにあることを必要
とし、それによつて、I/Oプロセツサは容易
に、各UPSが用いるチヤネル・プログラムおよ
びI/Oデータ・アドレスを、MPの実際の絶対
的MSアドレスに変換する。ただし、nはUPSが
用いる有効アドレスのビツト数である。それぞれ
のゲストのゾーン・パラメータは、2n境界アドレ
スから取出される。このチヤネル変換は、変換表
を必要とせず、変換ごとのMSアクセスを避ける
ことができる。CPUは、セグメントおよびペー
ジ・テーブルを用いて、UPSゲストのCPU要求
のUPSアドレスを変換できる。
されてはいないユニプロセツサ・システム
(UPS)プログラムを、MPの複数CPUで実行す
る独特な多重処理(MP)方法を提供する。UPS
の個々のコピーは、MPの、共用された主記憶装
置(MS)に設けられる。ハイパバイザ型の制御
プログラム(区分された多重処理システム、
PMPと呼ばれる)はMP方法を用い、UPSゲス
ト仮想計算機として、MPの個々のCPUでUPSの
複数コピーの同時実行が可能である。PMPは、
UPSの特定のコピーだけの実行にCPUをどれで
も専用できる。UPSのコピーは、互いに独立に、
別々のCPUでランするが、I/O装置を共用で
きる。PMPは、370―XAアーキテクチヤを有す
るCPUで動作し、CPUでエミユレーシヨンを利
用するように設計された、仮想計算機(VM)型
のジヨブ入力およびタスク指名制御プログラミン
グ・システムによつてランし、同一のまたはもう
1つのアーキテクチヤ(例えば、システム/360
またはシステム/370)用として設計されたUPS
が、エミユレーシヨン命令(例えば、解釈実行開
始、SIE命令)を用いることにより、UPSゲスト
として370―XA CPUで実行することができる。
UPSコピー(すなわち、UPSゲスト)を実行す
る効率的な直接I/O処理は、各UPSのMS境界
が別々の2nバイト絶対アドレスにあることを必要
とし、それによつて、I/Oプロセツサは容易
に、各UPSが用いるチヤネル・プログラムおよ
びI/Oデータ・アドレスを、MPの実際の絶対
的MSアドレスに変換する。ただし、nはUPSが
用いる有効アドレスのビツト数である。それぞれ
のゲストのゾーン・パラメータは、2n境界アドレ
スから取出される。このチヤネル変換は、変換表
を必要とせず、変換ごとのMSアクセスを避ける
ことができる。CPUは、セグメントおよびペー
ジ・テーブルを用いて、UPSゲストのCPU要求
のUPSアドレスを変換できる。
第1図は本発明の良好な実施例で監視用に区分
された多重処理(PMP)プログラムが使用する
VM/PMPタスク指名リストおよびそのPMP制
御ブロツクを表わす図、第2図は本発明を利用で
きる多重処理(MP)システムを表わす図、第3
図はUPSゲストが使用する4つのゲスト領域、
VM/PMP領域、および絶対アドレス範囲、実
アドレス範囲ならびに仮想アドレス範囲を含む主
記憶装置のアドレツシング・マツプを示す図、第
4図は良好な実施例を使用しているMPのすべて
のCPUによつて並行して実行されるVM/PMP
制御プログラム・タスク指名ルーチンを示す図、
第5図は良好な実施例の区分されたマルチプロセ
ツサ・プログラム(PMP)の流れ図、第6図は
第5図から分岐したI/O割込み待ち行列取出し
ルーチンを表わす流れ図、第7図は第5図の良好
な実施例のチヤネル・プログラムを開始するI/
O開始ルーチンを示す流れ図、第8図はUPSゲ
スト・チヤネル・プログラムのアドレスを変換
し、UPSゲスト・サブチヤネルをISCフイールド
を介してCPUに論理的に接続する代表的なI/
Oサブチヤネルを示す図、第9図は実施例の動作
を開始するシステム初期化プログラムの方法の流
れ図である。
された多重処理(PMP)プログラムが使用する
VM/PMPタスク指名リストおよびそのPMP制
御ブロツクを表わす図、第2図は本発明を利用で
きる多重処理(MP)システムを表わす図、第3
図はUPSゲストが使用する4つのゲスト領域、
VM/PMP領域、および絶対アドレス範囲、実
アドレス範囲ならびに仮想アドレス範囲を含む主
記憶装置のアドレツシング・マツプを示す図、第
4図は良好な実施例を使用しているMPのすべて
のCPUによつて並行して実行されるVM/PMP
制御プログラム・タスク指名ルーチンを示す図、
第5図は良好な実施例の区分されたマルチプロセ
ツサ・プログラム(PMP)の流れ図、第6図は
第5図から分岐したI/O割込み待ち行列取出し
ルーチンを表わす流れ図、第7図は第5図の良好
な実施例のチヤネル・プログラムを開始するI/
O開始ルーチンを示す流れ図、第8図はUPSゲ
スト・チヤネル・プログラムのアドレスを変換
し、UPSゲスト・サブチヤネルをISCフイールド
を介してCPUに論理的に接続する代表的なI/
Oサブチヤネルを示す図、第9図は実施例の動作
を開始するシステム初期化プログラムの方法の流
れ図である。
Claims (1)
- 【特許請求の範囲】 1 主記憶装置を共用する複数の中央処理装置と
複数の入出力装置を前記主記憶装置に接続する入
出力処理装置とを有するマルチプロセツサ・シス
テムにおいて、任意のアーキテクチヤを持つたユ
ニプロセツサ・システムで実行するように設計さ
れたユニプロセツサ・プログラミング・システム
(UPS)を前記複数の中央処理装置が同時に実行
できるようにする制御方法であつて、 前記UPSで使用されるアドレスのビツト数を
nとしたとき2nバイトの倍数を境界とする複数の
ゾーンを前記主記憶装置に設定し、 前記複数のゾーンのそれぞれに前記UPSのコ
ピーをUPSアドレス0から記憶し、 前記UPSの各コピーについて、前記中央処理
装置及び前記入出力装置の割当てを示す情報を前
記主記憶装置に記憶し、 前記マルチプロセツサ・システムの制御プログ
ラムの制御のもとに、前記各コピーのプログラム
を前記情報に基いて割当てられた中央処理装置で
実行すると共に、中央処理装置が割当てられてい
ないコピーについては、どのコピーにも割当てら
れていない中央処理装置で実行する ことを特徴とするマルチプロセツサ・システム制
御方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US539762 | 1983-10-05 | ||
| US06/539,762 US4564903A (en) | 1983-10-05 | 1983-10-05 | Partitioned multiprocessor programming system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6083168A JPS6083168A (ja) | 1985-05-11 |
| JPH02734B2 true JPH02734B2 (ja) | 1990-01-09 |
Family
ID=24152538
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP59184742A Granted JPS6083168A (ja) | 1983-10-05 | 1984-09-05 | マルチプロセツサ・システム制御方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4564903A (ja) |
| EP (1) | EP0136666B1 (ja) |
| JP (1) | JPS6083168A (ja) |
| CA (1) | CA1209270A (ja) |
| DE (1) | DE3479768D1 (ja) |
Families Citing this family (166)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4974151A (en) * | 1985-02-21 | 1990-11-27 | International Business Machines Corporation | Configuration capability for devices in an open system having the capability of adding or changing devices by user commands |
| JPS61206057A (ja) * | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
| JPS61206043A (ja) * | 1985-03-11 | 1986-09-12 | Hitachi Ltd | 仮想計算機システムにおける割込制御方法 |
| US4660144A (en) * | 1985-05-23 | 1987-04-21 | International Business Machines Corp. | Adjunct machine |
| US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
| US4783736A (en) * | 1985-07-22 | 1988-11-08 | Alliant Computer Systems Corporation | Digital computer with multisection cache |
| JPS6258341A (ja) * | 1985-09-03 | 1987-03-14 | Fujitsu Ltd | 入出力割込処理方式 |
| CA1270338A (en) * | 1985-09-11 | 1990-06-12 | Akihiko Hoshino | Data processing system for processing units having different throughputs |
| JPS62159239A (ja) * | 1985-12-30 | 1987-07-15 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 仮想マシンの編集システム |
| US4742447A (en) * | 1986-01-16 | 1988-05-03 | International Business Machines Corporation | Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system |
| US4925311A (en) * | 1986-02-10 | 1990-05-15 | Teradata Corporation | Dynamically partitionable parallel processors |
| JPH0658650B2 (ja) * | 1986-03-14 | 1994-08-03 | 株式会社日立製作所 | 仮想計算機システム |
| US4937036A (en) * | 1986-04-28 | 1990-06-26 | Xerox Corporation | Concurrent display of data from two different display processors and user interface therefore |
| US4920481A (en) * | 1986-04-28 | 1990-04-24 | Xerox Corporation | Emulation with display update trapping |
| US5088033A (en) * | 1986-04-28 | 1992-02-11 | Xerox Corporation | Data processing system emulation in a window with a coprocessor and I/O emulation |
| US5113517A (en) * | 1986-04-28 | 1992-05-12 | Xerox Corporation | Concurrent display of data from two different processors each having different display font and user interface for controlling transfer of converted font data therebetween |
| US4899136A (en) * | 1986-04-28 | 1990-02-06 | Xerox Corporation | Data processor having a user interface display with metaphoric objects |
| US4939507A (en) * | 1986-04-28 | 1990-07-03 | Xerox Corporation | Virtual and emulated objects for use in the user interface of a display screen of a display processor |
| US5153577A (en) * | 1986-04-28 | 1992-10-06 | Xerox Corporation | Mapping character color attributes into grey pixel patterns |
| US4780821A (en) * | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
| 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 |
| US4845624A (en) * | 1987-03-05 | 1989-07-04 | International Business Machines Corporation | Relational data base lock avoidance system |
| US5475836A (en) * | 1987-04-01 | 1995-12-12 | Lotus Development Corporation | Interface for providing access to external data sources/sinks |
| US4843541A (en) * | 1987-07-29 | 1989-06-27 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
| US4862349A (en) * | 1987-10-19 | 1989-08-29 | International Business Machines Corporation | Method for extracting and/or replacing control system information in a computer operating system |
| AU616213B2 (en) * | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
| CA2003338A1 (en) * | 1987-11-09 | 1990-06-09 | Richard W. Cutts, Jr. | Synchronization of fault-tolerant computer system having multiple processors |
| US4875159A (en) * | 1987-12-22 | 1989-10-17 | Amdahl Corporation | Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system |
| US5129087A (en) * | 1988-02-03 | 1992-07-07 | International Business Machines, Corp. | Computer system and a method of monitoring transient data structures in a computer system |
| JP2561696B2 (ja) * | 1988-03-31 | 1996-12-11 | 三菱電機株式会社 | ネットワークシステムにおける共用領域管理方法 |
| JP2629278B2 (ja) * | 1988-06-30 | 1997-07-09 | 株式会社日立製作所 | 仮想計算機システム |
| US5124909A (en) * | 1988-10-31 | 1992-06-23 | Hewlett-Packard Company | Software program for providing cooperative processing between personal computers and a host computer |
| WO1990005338A1 (fr) * | 1988-11-02 | 1990-05-17 | Hitachi, Ltd. | Systeme d'ordinateur virtuel a memoire etendue |
| AU625293B2 (en) * | 1988-12-09 | 1992-07-09 | Tandem Computers Incorporated | Synchronization of fault-tolerant computer system having multiple processors |
| US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
| US5016160A (en) * | 1988-12-15 | 1991-05-14 | International Business Machines Corporation | Computer system having efficient data transfer operations |
| JPH02208740A (ja) * | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
| US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
| US5283868A (en) * | 1989-05-17 | 1994-02-01 | International Business Machines Corp. | Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system |
| US5113522A (en) * | 1989-05-17 | 1992-05-12 | International Business Machines Corporation | Data processing system with system resource management for itself and for an associated alien processor |
| US5144692A (en) * | 1989-05-17 | 1992-09-01 | International Business Machines Corporation | System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system |
| US5369749A (en) * | 1989-05-17 | 1994-11-29 | Ibm Corporation | Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems |
| US5369767A (en) * | 1989-05-17 | 1994-11-29 | International Business Machines Corp. | Servicing interrupt requests in a data processing system without using the services of an operating system |
| US5325517A (en) * | 1989-05-17 | 1994-06-28 | International Business Machines Corporation | Fault tolerant data processing system |
| AU650242B2 (en) * | 1989-11-28 | 1994-06-16 | International Business Machines Corporation | Methods and apparatus for dynamically managing input/output (I/O) connectivity |
| JPH03224037A (ja) * | 1989-11-30 | 1991-10-03 | Digital Equip Corp <Dec> | サーバー拡張用アーキテクチャ |
| US5295258A (en) * | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
| US5203004A (en) * | 1990-01-08 | 1993-04-13 | Tandem Computers Incorporated | Multi-board system having electronic keying and preventing power to improperly connected plug-in board with improperly configured diode connections |
| JPH0474229A (ja) * | 1990-07-17 | 1992-03-09 | Toshiba Corp | 情報処理装置 |
| JPH0496828A (ja) * | 1990-08-15 | 1992-03-30 | Hitachi Ltd | 多重絶対アドレス空間構成方法および装置 |
| DE69113181T2 (de) * | 1990-08-31 | 1996-05-02 | Ibm | Verfahren und Gerät zur Querteilungssteuerung in einer verteilten Verarbeitungsumgebung. |
| US5230069A (en) * | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
| JPH04367963A (ja) * | 1991-06-15 | 1992-12-21 | Hitachi Ltd | 共有記憶通信方法 |
| US5222215A (en) * | 1991-08-29 | 1993-06-22 | International Business Machines Corporation | Cpu expansive gradation of i/o interruption subclass recognition |
| US5423013A (en) * | 1991-09-04 | 1995-06-06 | International Business Machines Corporation | System for addressing a very large memory with real or virtual addresses using address mode registers |
| US5636373A (en) * | 1991-09-04 | 1997-06-03 | International Business Machines Corporation | System for synchronizing logical clock in logical partition of host processor with external time source by combining clock adjustment value with specific value of partition |
| JPH0831041B2 (ja) * | 1991-09-06 | 1996-03-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | プログラム条件処理方法およびコンピュータ・システム |
| CA2061117C (en) * | 1991-12-02 | 1998-09-29 | Neta J. Amit | Apparatus and method for distributed program stack |
| US5600805A (en) * | 1992-06-15 | 1997-02-04 | International Business Machines Corporation | Pass-through for I/O channel subsystem call instructions for accessing shared resources in a computer system having a plurality of operating systems |
| US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
| US5452455A (en) * | 1992-06-15 | 1995-09-19 | International Business Machines Corporation | Asynchronous command support for shared channels for a computer complex having multiple operating systems |
| US5371867A (en) * | 1992-11-10 | 1994-12-06 | International Business Machines Corporation | Method of using small addresses to access any guest zone in a large memory |
| US5377337A (en) * | 1993-06-08 | 1994-12-27 | International Business Machines Corporation | Method and means for enabling virtual addressing control by software users over a hardware page transfer control entity |
| JP2900767B2 (ja) * | 1993-09-20 | 1999-06-02 | 株式会社日立製作所 | 仮想計算機システムの仮想計算機走行時間間隔制御方式 |
| US5515525A (en) * | 1993-09-28 | 1996-05-07 | Bull Hn Information Systems Inc. | Emulating the memory functions of a first system on a second system |
| US5664098A (en) * | 1993-09-28 | 1997-09-02 | Bull Hn Information Systems Inc. | Dual decor capability for a host system which runs emulated application programs to enable direct access to host facilities for executing emulated system operations |
| WO1995013583A1 (en) * | 1993-11-09 | 1995-05-18 | Conner Kenneth H | First come memory accessing without conflict |
| US5907684A (en) * | 1994-06-17 | 1999-05-25 | International Business Machines Corporation | Independent channel coupled to be shared by multiple physical processing nodes with each node characterized as having its own memory, CPU and operating system image |
| 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 |
| US5659756A (en) * | 1995-03-31 | 1997-08-19 | International Business Machines Corporation | Method and system for providing access to logical partition information on a per resource basis |
| US6421679B1 (en) | 1995-10-27 | 2002-07-16 | International Business Machines Corporation | Concurrent patch to logical partition manager of a logically partitioned system |
| US5897658A (en) * | 1996-11-26 | 1999-04-27 | International Business Machines Corporation | Method and apparatus for protecting portions of memory by providing access requests to a communications area for processing by a hidden server |
| US6189145B1 (en) | 1997-05-28 | 2001-02-13 | International Business Machines Corporation | Concurrent patch to logical partition manager of a logically partitioned system |
| US5923890A (en) * | 1997-07-30 | 1999-07-13 | International Business Machines Corporation | Method and apparatus for optimizing the handling of synchronous requests to a coupling facility in a sysplex configuration |
| US6049845A (en) * | 1997-11-05 | 2000-04-11 | Unisys Corporation | System and method for providing speculative arbitration for transferring data |
| US6052760A (en) * | 1997-11-05 | 2000-04-18 | Unisys Corporation | Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks |
| US6014709A (en) * | 1997-11-05 | 2000-01-11 | Unisys Corporation | Message flow protocol for avoiding deadlocks |
| US6625638B1 (en) | 1998-04-30 | 2003-09-23 | International Business Machines Corporation | Management of a logical partition that supports different types of processors |
| US6314501B1 (en) | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
| US7013305B2 (en) | 2001-10-01 | 2006-03-14 | International Business Machines Corporation | Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange |
| US6209106B1 (en) | 1998-09-30 | 2001-03-27 | International Business Machines Corporation | Method and apparatus for synchronizing selected logical partitions of a partitioned information handling system to an external time reference |
| US6453392B1 (en) | 1998-11-10 | 2002-09-17 | International Business Machines Corporation | Method of and apparatus for sharing dedicated devices between virtual machine guests |
| US6665761B1 (en) | 1999-07-28 | 2003-12-16 | Unisys Corporation | Method and apparatus for routing interrupts in a clustered multiprocessor system |
| US6687818B1 (en) | 1999-07-28 | 2004-02-03 | Unisys Corporation | Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system |
| US6651125B2 (en) | 1999-09-28 | 2003-11-18 | International Business Machines Corporation | Processing channel subsystem pending I/O work queues based on priorities |
| US6587938B1 (en) | 1999-09-28 | 2003-07-01 | International Business Machines Corporation | Method, system and program products for managing central processing unit resources of a computing environment |
| US7051188B1 (en) | 1999-09-28 | 2006-05-23 | International Business Machines Corporation | Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment |
| US7568052B1 (en) | 1999-09-28 | 2009-07-28 | International Business Machines Corporation | Method, system and program products for managing I/O configurations of a computing environment |
| US6519660B1 (en) | 1999-09-28 | 2003-02-11 | International Business Machines Corporation | Method, system and program products for determining I/O configuration entropy |
| US6986137B1 (en) * | 1999-09-28 | 2006-01-10 | International Business Machines Corporation | Method, system and program products for managing logical processors of a computing environment |
| US7007276B1 (en) | 1999-09-28 | 2006-02-28 | International Business Machines Corporation | Method, system and program products for managing groups of partitions of a computing environment |
| JP2002202959A (ja) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | 動的な資源分配をする仮想計算機システム |
| US6820207B2 (en) | 2001-03-01 | 2004-11-16 | International Business Machines Corporation | Method for rebooting only a specific logical partition in a data processing system as per a request for reboot |
| US6665759B2 (en) | 2001-03-01 | 2003-12-16 | International Business Machines Corporation | Method and apparatus to implement logical partitioning of PCI I/O slots |
| US6567897B2 (en) | 2001-03-01 | 2003-05-20 | International Business Machines Corporation | Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls |
| US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
| US6792514B2 (en) | 2001-06-14 | 2004-09-14 | International Business Machines Corporation | Method, system and computer program product to stress and test logical partition isolation features |
| US6625704B2 (en) * | 2001-08-08 | 2003-09-23 | Sangate Systems, Inc. | Data backup method and system using snapshot and virtual tape |
| US6971002B2 (en) * | 2001-08-09 | 2005-11-29 | International Business Machines Corporation | Method, system, and product for booting a partition using one of multiple, different firmware images without rebooting other partitions |
| US6883116B2 (en) * | 2001-09-27 | 2005-04-19 | International Business Machines Corporation | Method and apparatus for verifying hardware implementation of a processor architecture in a logically partitioned data processing system |
| US6968473B2 (en) * | 2001-11-15 | 2005-11-22 | International Business Machines Corporation | Method and apparatus for generating a virtual clock in a data processing system |
| US7099814B2 (en) | 2002-03-29 | 2006-08-29 | International Business Machines Corportion | I/O velocity projection for bridge attached channel |
| US7039769B2 (en) * | 2002-05-30 | 2006-05-02 | International Business Machines Corporation | Direct addressed shared compressed memory system |
| US7010596B2 (en) * | 2002-06-28 | 2006-03-07 | International Business Machines Corporation | System and method for the allocation of grid computing to network workstations |
| US8108843B2 (en) | 2002-09-17 | 2012-01-31 | International Business Machines Corporation | Hybrid mechanism for more efficient emulation and method therefor |
| US9043194B2 (en) * | 2002-09-17 | 2015-05-26 | International Business Machines Corporation | Method and system for efficient emulation of multiprocessor memory consistency |
| US7953588B2 (en) * | 2002-09-17 | 2011-05-31 | International Business Machines Corporation | Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host |
| US7496494B2 (en) * | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
| US7146607B2 (en) * | 2002-09-17 | 2006-12-05 | International Business Machines Corporation | Method and system for transparent dynamic optimization in a multiprocessing environment |
| JP4119239B2 (ja) * | 2002-12-20 | 2008-07-16 | 株式会社日立製作所 | 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム |
| US7149821B2 (en) * | 2003-01-29 | 2006-12-12 | International Business Machines Corporation | Predictably defining input/output configurations for environments employing fabrics |
| US7127599B2 (en) * | 2003-05-12 | 2006-10-24 | International Business Machines Corporation | Managing configurations of input/output system images of an input/output subsystem, wherein a configuration is modified without restarting the input/output subsystem to effect a modification |
| US7290070B2 (en) * | 2003-05-12 | 2007-10-30 | International Business Machines Corporation | Multiple logical input/output subsystem facility |
| US7000036B2 (en) * | 2003-05-12 | 2006-02-14 | International Business Machines Corporation | Extended input/output measurement facilities |
| US7174550B2 (en) * | 2003-05-12 | 2007-02-06 | International Business Machines Corporation | Sharing communications adapters across a plurality of input/output subsystem images |
| US7177961B2 (en) * | 2003-05-12 | 2007-02-13 | International Business Machines Corporation | Managing access, by operating system images of a computing environment, of input/output resources of the computing environment |
| US7130949B2 (en) * | 2003-05-12 | 2006-10-31 | International Business Machines Corporation | Managing input/output interruptions in non-dedicated interruption hardware environments |
| US6996638B2 (en) * | 2003-05-12 | 2006-02-07 | International Business Machines Corporation | Method, system and program products for enhancing input/output processing for operating system images of a computing environment |
| US7130938B2 (en) * | 2003-05-12 | 2006-10-31 | International Business Machines Corporation | Method, system and program products for identifying communications adapters of a computing environment |
| US6807579B1 (en) | 2003-05-12 | 2004-10-19 | International Business Machines Corporation | Method, system and program products for assigning an address identifier to a partition of a computing environment |
| US7826386B2 (en) * | 2003-12-08 | 2010-11-02 | International Business Machines Corporation | Facilitating the configuring of communications environments |
| US7277968B2 (en) * | 2004-01-23 | 2007-10-02 | International Business Machines Corporation | Managing sets of input/output communications subadapters of an input/output subsystem |
| US7975270B2 (en) * | 2004-03-10 | 2011-07-05 | International Business Machines Corporation | Facilitating allocation of resources in a heterogeneous computing environment |
| US7707583B2 (en) * | 2004-05-20 | 2010-04-27 | Sap Ag | Robust sharing of runtime systems |
| US8214622B2 (en) | 2004-05-27 | 2012-07-03 | International Business Machines Corporation | Facilitating management of storage of a pageable mode virtual environment absent intervention of a host of the environment |
| US7941799B2 (en) * | 2004-05-27 | 2011-05-10 | International Business Machines Corporation | Interpreting I/O operation requests from pageable guests without host intervention |
| US7610200B2 (en) * | 2004-08-30 | 2009-10-27 | Lsi Corporation | System and method for controlling sound data |
| US9753754B2 (en) * | 2004-12-22 | 2017-09-05 | Microsoft Technology Licensing, Llc | Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine |
| US20060143517A1 (en) * | 2004-12-22 | 2006-06-29 | Microsoft Corporation | Replicated virtual machine |
| US20060212840A1 (en) * | 2005-03-16 | 2006-09-21 | Danny Kumamoto | Method and system for efficient use of secondary threads in a multiple execution path processor |
| US7702789B2 (en) * | 2005-11-03 | 2010-04-20 | International Business Machines Corporation | Apparatus, system, and method for reassigning a client |
| US20070150685A1 (en) * | 2005-12-28 | 2007-06-28 | Gbs Laboratories Llc | Computer architecture for providing physical separation of computing processes |
| US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
| US7500023B2 (en) * | 2006-10-10 | 2009-03-03 | International Business Machines Corporation | Facilitating input/output processing by using transport control words to reduce input/output communications |
| JP5045307B2 (ja) * | 2007-08-27 | 2012-10-10 | トヨタ自動車株式会社 | マルチコアシステム、電子制御ユニット、モータecu、制御システム、命令実行方法 |
| US9052837B2 (en) | 2008-02-14 | 2015-06-09 | International Business Machines Corporation | Processing communication data in a ships passing condition |
| US8478915B2 (en) | 2008-02-14 | 2013-07-02 | International Business Machines Corporation | Determining extended capability of a channel path |
| US7890668B2 (en) | 2008-02-14 | 2011-02-15 | International Business Machines Corporation | Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous |
| US7937507B2 (en) * | 2008-02-14 | 2011-05-03 | International Business Machines Corporation | Extended measurement word determination at a channel subsystem of an I/O processing system |
| US8001298B2 (en) * | 2008-02-14 | 2011-08-16 | International Business Machines Corporation | Providing extended measurement data in an I/O processing system |
| US7941570B2 (en) | 2008-02-14 | 2011-05-10 | International Business Machines Corporation | Bi-directional data transfer within a single I/O operation |
| US8117347B2 (en) | 2008-02-14 | 2012-02-14 | International Business Machines Corporation | Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system |
| US8332542B2 (en) | 2009-11-12 | 2012-12-11 | International Business Machines Corporation | Communication with input/output system devices |
| US9158592B2 (en) | 2011-05-02 | 2015-10-13 | Green Hills Software, Inc. | System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor |
| US8364853B2 (en) | 2011-06-01 | 2013-01-29 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
| US8677027B2 (en) | 2011-06-01 | 2014-03-18 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
| US9021155B2 (en) | 2011-06-01 | 2015-04-28 | International Business Machines Corporation | Fibre channel input/output data routing including discarding of data transfer requests in response to error detection |
| US8583988B2 (en) | 2011-06-01 | 2013-11-12 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
| US8738811B2 (en) | 2011-06-01 | 2014-05-27 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
| US8364854B2 (en) | 2011-06-01 | 2013-01-29 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
| US8346978B1 (en) | 2011-06-30 | 2013-01-01 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
| US8312176B1 (en) | 2011-06-30 | 2012-11-13 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
| US8549185B2 (en) | 2011-06-30 | 2013-10-01 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
| US8473641B2 (en) | 2011-06-30 | 2013-06-25 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
| JP5884578B2 (ja) | 2012-03-16 | 2016-03-15 | 富士通株式会社 | アクセラレータ管理装置、アクセラレータ管理方法および入出力装置 |
| US8918542B2 (en) | 2013-03-15 | 2014-12-23 | International Business Machines Corporation | Facilitating transport mode data transfer between a channel subsystem and input/output devices |
| US8990439B2 (en) | 2013-05-29 | 2015-03-24 | International Business Machines Corporation | Transport mode data transfer between a channel subsystem and input/output devices |
| US20150081400A1 (en) * | 2013-09-19 | 2015-03-19 | Infosys Limited | Watching ARM |
| US9772867B2 (en) * | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
| US9389897B1 (en) | 2014-12-18 | 2016-07-12 | International Business Machines Corporation | Exiting multiple threads of a simulation environment in a computer |
| US12248560B2 (en) | 2016-03-07 | 2025-03-11 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
| US12339979B2 (en) * | 2016-03-07 | 2025-06-24 | Crowdstrike, Inc. | Hypervisor-based interception of memory and register accesses |
| US9715466B1 (en) * | 2016-09-23 | 2017-07-25 | International Business Machines Corporation | Processing input/output operations in a channel using a control block |
| US11334498B2 (en) * | 2019-07-11 | 2022-05-17 | Vmware, Inc. | Zero copy method that can span multiple address spaces for data path applications |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5147350A (ja) * | 1974-10-22 | 1976-04-22 | Nippon Shisutemu Kogyo Kk | Maruchipurosetsusashisutemuniokeru banchizukehoshiki |
| JPS5334442A (en) * | 1976-09-10 | 1978-03-31 | Oki Electric Ind Co Ltd | Multi-processor system |
| US4187538A (en) * | 1977-06-13 | 1980-02-05 | Honeywell Inc. | Read request selection system for redundant storage |
| US4292669A (en) * | 1978-02-28 | 1981-09-29 | Burroughs Corporation | Autonomous data communications subsystem |
| JPS54116847A (en) * | 1978-03-03 | 1979-09-11 | Hitachi Ltd | Memory control system |
| JPS54148346A (en) * | 1978-05-12 | 1979-11-20 | Yokogawa Hokushin Electric Corp | Memory access system for multi-processor system |
| US4456954A (en) * | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
| US4455605A (en) * | 1981-07-23 | 1984-06-19 | International Business Machines Corporation | Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices |
-
1983
- 1983-10-05 US US06/539,762 patent/US4564903A/en not_active Expired - Lifetime
-
1984
- 1984-09-05 JP JP59184742A patent/JPS6083168A/ja active Granted
- 1984-09-11 CA CA000462901A patent/CA1209270A/en not_active Expired
- 1984-09-28 DE DE8484111590T patent/DE3479768D1/de not_active Expired
- 1984-09-28 EP EP84111590A patent/EP0136666B1/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| EP0136666B1 (en) | 1989-09-13 |
| EP0136666A3 (en) | 1987-12-09 |
| EP0136666A2 (en) | 1985-04-10 |
| US4564903A (en) | 1986-01-14 |
| CA1209270A (en) | 1986-08-05 |
| DE3479768D1 (en) | 1989-10-19 |
| JPS6083168A (ja) | 1985-05-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02734B2 (ja) | ||
| EP0150039B1 (en) | I/o execution method for a virtual machine system and system therefor | |
| Case et al. | Architecture of the IBM System/370 | |
| CA1304166C (en) | Software emulation of bank-switched memory using a virtual dos monitorand paged memory management | |
| CA2024444C (en) | Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media | |
| US7490216B1 (en) | Methods for accessing multiple page tables in a computer system | |
| CA1252572A (en) | Computer with virtual machine mode and multiple protection rings | |
| US5499379A (en) | Input/output execution apparatus for a plural-OS run system | |
| US4814975A (en) | Virtual machine system and method for controlling machines of different architectures | |
| US6711605B2 (en) | Multi OS configuration method and computer system | |
| JP2500045B2 (ja) | 入出力チャネル・サブシステム・コ―ル命令制御方法およびcecの解釈実行方法 | |
| JP2559994B2 (ja) | スモール・アドレスを使用するメモリ・アクセス方法およびコンピュータ・システム | |
| US4031517A (en) | Emulation of target system interrupts through the use of counters | |
| JPH0769844B2 (ja) | データ空間への共通アクセス装置及び方法 | |
| JP4668166B2 (ja) | ゲストがメモリ変換されたデバイスにアクセスする方法及び装置 | |
| JPS62165250A (ja) | 仮想記憶方法 | |
| JPS6248258B2 (ja) | ||
| US5392409A (en) | I/O execution method for a virtual machine system and system therefor | |
| US5280592A (en) | Domain interlock | |
| EP0619899B1 (en) | Software control of hardware interruptions | |
| US4991083A (en) | Method and system for extending address space for vector processing | |
| EP0303783B1 (en) | Data processing system with logical processor facitily | |
| JPH0192856A (ja) | アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法 | |
| JPH06332803A (ja) | 仮想計算機システムにおけるtlb制御方法 | |
| JPH0567973B2 (ja) |