JPH0827757B2 - データ・ブロック転送制御方法 - Google Patents

データ・ブロック転送制御方法

Info

Publication number
JPH0827757B2
JPH0827757B2 JP4102877A JP10287792A JPH0827757B2 JP H0827757 B2 JPH0827757 B2 JP H0827757B2 JP 4102877 A JP4102877 A JP 4102877A JP 10287792 A JP10287792 A JP 10287792A JP H0827757 B2 JPH0827757 B2 JP H0827757B2
Authority
JP
Japan
Prior art keywords
instruction
processor
queue
page
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP4102877A
Other languages
English (en)
Other versions
JPH05173961A (ja
Inventor
ドナルド・ウイリアム・マッコリー
リチャード・ジョン・シュマルツ
ロナルド・モートン・スミス、シニア
スーザン・バーバラ・スティルマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05173961A publication Critical patent/JPH05173961A/ja
Publication of JPH0827757B2 publication Critical patent/JPH0827757B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システム内
の2つのメディア間のデータ・ブロック(ページとい
う)の転送に関する。システムのメディアは、アドレシ
ングが異なり、DRAMやSRAMより作られる主記憶
装置、拡張記憶装置等である。
【0002】
【従来の技術】米国特許出願第4476524号明細書
はPAGEIN/PAGEOUT命令を示している。そ
の第1実施例は、システム主記憶装置(MS)と、これ
とは物理的に分けられた拡張記憶装置(ES)との間で
ページの転送を制御する同期手段を示している。第2実
施例では、PAGEIN/PAGEOUTチャネル・コ
マンド・ワード(CCW)を含むI/Oチャネル・プロ
グラムを起動するためにIBM S/360の入出力開
始(SIO)命令が用いられ、主記憶装置と拡張記憶装
置との間の非同期ページ転送が制御される。非同期方式
の実施例は、チャネル・プログラムの実行が終わる時に
I/Oチャネルの終わりで割り込みを用い、各ページ転
送の終わりを通知する。これは、オペレーティング・シ
ステム内でI/O割り込みハンドラ(プログラム)を実
行するために選択されたプロセサ上のプログラムに割り
込みをかけて、I/O割り込みサービスを実行し、各ペ
ージ転送の終了を処理する。割り込みハンドラの実行が
終わると、ハンドラは、割り込みを受けたプロセサに制
御を戻す。その結果、非同期のPAGEINまたはPA
GEOUT命令により割り込みを受けたプロセサは、別
のプログラム(割り込みハンドラ)に向けられることに
よって効率が下がり、その間、プロセサを使用してその
主プログラムを実行することはできない。
【0003】同期ページ転送命令では、それを発するプ
ロセサが、ページ転送の開始から終了までのあらゆる面
を制御する必要があり、他のプロセサは使用されない。
同期ページ転送では、非同期ページ転送とは異なり、そ
のプロセサがページ転送の間に他の命令を実行すること
はできない。同期ページ転送命令には、転送終了割り込
みがなく、それによる割り込みハンドラの介在及びオー
バヘッドがない。PAGEIN/PAGEOUT命令と
ページ移動(MVPG)命令の一般的な実施例では、同
期ページ移動動作しか与えられていない。
【0004】同期PAGEIN/PAGEOUT命令
は、IBM S/370の監視(スーパバイザ)状態命
令であり、記憶装置の絶対アドレシングを用いる。ペー
ジ転送はよくオペレーティング・システム(OS)のソ
フトウェア(問題プログラム状態アプリケーション・プ
ログラムに対して透過な監視状態で動作する)により、
MSでの動作を目的に問題状態プログラムをセットアッ
プするか、または問題(プログラム)状態プログラムの
実行結果をESに格納してしまうために用いられる。
【0005】従来のページ移動(MVPG)命令は、米
国特許出願第424797号明細書(1989年10月
29日出願)“Process Using Virtual Addressing in
aNon-privileged Instruction to Control the Copying
of a Page of Data inor between Multiple Media”
に見られる。MVPG命令はそのプログラムと同期して
動作する。
【0006】欧州特許第0214670号明細書は、各
メディアに専用のオペランドを持つ同期ページ転送命令
を示している。
【0007】
【発明が解決しようとする課題】本発明の目的は、ES
(拡張記憶装置)、MS(主記憶装置)等、異なるメデ
ィア間で非同期ページ転送を行なうシステムの基本的な
効率を改良することにある。
【0008】
【課題を解決するための手段】本発明では、非同期ペー
ジ転送を制御する転送終了プログラムの割り込みが不要
になる。したがって、ページ転送が正常に終了する度に
割り込みハンドラ・プログラムを介在させる必要もなく
なり、開始側プロセサは、ページ転送とオーバラップす
る他のCPU命令を実行することができる。プログラム
の割り込みが無くなると、オペレーティング・システム
のオーバヘッド(コスト高につながる)が無くなる。ペ
ージ転送のサービスを受けるプログラム機能を遅くする
割り込みハンドラの処理が無くなるからである。
【0009】本発明は、従来のどの非同期ページ転送機
構とも異なる。従来の機能では、ページが正常に転送さ
れるごとに割り込み通知と制御プログラムの介在が必要
である。
【0010】本発明は、ページイン開始(SPIN)、
ページアウト開始(SPOUT)、非同期ページング状
態検査(TAPS)と呼ばれる新しい命令を提供する。
SPINまたはSPOUT命令は、これを発するプロセ
サから見て外部のページ転送(PT)プロセサを起動す
ることによって、反対方向にある2つのメディア間の非
同期ページ・コピー(またはページ移動)の開始を制御
する。要求されたページ転送の細かい制御は、PTプロ
セサが行なう。PTプロセサはESコントローラ・ハー
ドウェアの一部であってもよい。
【0011】TAPS命令が実行されると、要求された
ページ転送の終了状態が検査される。TAPS命令は、
ページ転送が終了すると予想された後に、PTを要求し
たプログラムに対して発行・実行される。TAPSは、
発行側プログラムの都合のよい時間に、ページ転送が実
際に終了する時間とは無関係に発行することができる。
TAPSにより、それを発するプログラムが、自身の制
限時間内に、特定位置に転送されたページが使用できる
かどうかをいつ調べるかを自身のために判定する。その
プロセサはその時間までに、他の命令を実行することが
できる。TAPS命令の実行には条件コード(CC)が
与えられ、ページ転送の現在状態が通知される。この
後、要求側プログラムが条件コードを使用して、そのプ
ログラムの次の動作を、他のプログラムの介在がなくて
も制御することができる。
【0012】SPIN、SPOUT、TAPSの何れの
命令も、要求されたページ転送が終了する正確な時間を
認識する必要はない。TAPS命令の最も効率的な用法
は、そのプログラムが、TAPS命令を発する(ページ
が使用できるかどうかを判定するため)前に、要求され
たページ転送の状態を認識する必要があるまで待つこと
である。TAPS命令を実行するプロセサは、TAPS
命令が発行されるまで、他の命令を実行することができ
る。TAPS命令は2タイプあり、各々、使用効率に与
える影響が異なる。1つは、ページ転送の現在状態を調
べるとすぐに実行を終了させる。この検査の結果ページ
転送が終了していることがわかると、プロセサは直ちに
他の命令の実行に戻ることができる。もう1つのTAP
S命令はページ転送の現在状態を連続的に検査する。検
査は、ページ転送が終了するまで継続し、それから命令
の実行が終了する。そこではプロセサは、この待ち時間
の間、TAPSの発行からページ転送まで、他の命令を
実行することができない。この待ち時間制御により、待
ち状態を設けるループをプログラミングする必要がな
い。
【0013】本発明は、ページ転送を要するプログラム
の介在を2つに分けている。1つは、ページ転送を開始
する(SPINまたはSPOUT命令の発行によって)
プログラムが介在し、もう1つはページ転送の終わりに
プログラムが介在する(TAPS命令の発行によっ
て)。これら2つに分けられた部分の間、プロセサは任
意の命令(ページ転送プログラムとの関係は問わない)
を実行することができる。ページ転送は、これら他の命
令の実行と非同期にオーバラップする。ページ転送の詳
細が、PTを要求したプロセサとは異なるプロセサ(ま
たはコントローラ)によって処理されるからである。
【0014】上記の他、本発明の特徴としては目立たな
いが、本発明の例外処理条件を既存のPAGEIN、P
AGEOUT同期命令に委ねることによって、本発明の
命令に関する例外処理をなくすることができる(あるい
は大幅に少なくすることができる)。SPIN/SPO
UT命令に応答して例外(またはエラー)が発生した場
合、本発明は、命令に対するそれ以降の動作を無効にす
る。プログラムが発する後続のTAPS命令は、条件コ
ードを与えて、先のSPIN/SPOUT命令の実行が
失敗したことを示す。次にこれらの命令を持つプログラ
ムは、PAGEIN/PAGEOUT同期命令を起動し
て、失敗したページ転送を実行することができる。そこ
でPAGEIN/PAGEOUT例外処理の制御によ
り、例外(またはエラー)条件が処理される。
【0015】もう1つの利点は、本発明の分割された命
令を、別の中央プロセサ上のプログラムが発行できると
いう点である。つまりプログラムは、あるCPU上でS
PINまたはSPOUT命令を発行し、後に別のCPU
上でTAPS命令を発行できるため、プログラムは、S
PINまたはSPOUT命令を発行するとき、最初のタ
イムスライスであるCPUでディスパッチされ、後に、
TAPS命令を発行するとき、第2のタイムスライスで
別のCPUでディスパッチされる。
【0016】本発明のSPIN、SPOUT、TAPの
命令は、実アドレシングまたは絶対アドレシングを用い
るように構成された時は、監視(スーパバイザ)状態命
令とするのが望ましい。但し、仮想アドレシングを用い
るように構成された場合はプロブレム状態命令とするこ
とができる。
【0017】本発明で、SPIN/SPOUT及びTA
PS命令を発行するプログラムが使用できるリソース
は、複数のオペレーティング・システムによってCPU
などのリソースが共有される環境で動作するプログラム
のオペレーティング・システムに、その時点で割り当て
られるリソースに限られる。
【0018】本発明は、揮発性主メモリと不揮発性記憶
装置の2つの電子記憶メディア間のブロック(ページ)
転送を制御するのにも利用できる。このメディアは、電
子機械的な磁気ディスク装置(バッテリでバックアップ
したDRAMやSRAMによって得られる不揮発性記憶
装置など)が実行する機能に取って代わり、システムの
外部インタフェースともなる。このような場合、ユーザ
のファイル制御指定を実行するプログラムは、SPIN
/SPOUT及びTAPSの分割ページング命令を使用
して、メディア間でファイルのブロック(ページ)の転
送を制御することができる。このような動作により、フ
ァイル制御プログラムの実行が、主メモリと不揮発性記
憶装置との間で何れかの方向に行われるファイル内のブ
ロックの転送とオーバラップし、ファイルの転送を大幅
に高速化することができる。
【0019】
【実施例】本発明は、データ単位(ここでは連続した4
096バイトのブロックまたはページをいう)の転送を
制御する。データ単位の転送は、物理的に独立し、デー
タが転送される物理バスによって接続された2つの記憶
装置間で行なわれる。実施例のデータ単位は4キロバイ
トのページであるが、本発明では任意サイズのデータ単
位が使用できる。実施例の物理記憶装置は、ページの転
送を反対方向に処理する2つのバスで接続された拡張記
憶装置(ES)と主記憶装置(MS)である。
【0020】1回のページ転送は、図1に示した非同期
ページイン(SPIN)命令または図2に示した非同期
ページアウト(SPOUT)命令を実行するプロセサに
よって開始される。図1のSPIN命令は、ES内のペ
ージ・アドレスからMS内のページ・アドレスへの4K
Bのブロックのコピーを開始する。図2のSPOUT命
令は、MS内のページ・アドレスからES内のページ・
アドレスへの4KBブロックのコピーを開始する。
【0021】このようなSPIN、SPOUT命令の形
式を図1、図2に示した。各々、オペランドR1、R2
を含む。R1、R2は各々、IBM S/370または
S/390のアーキテクチャを用いたプロセサの汎用レ
ジスタである。R1は、初期化されてMS内のページ・
アドレスを格納し、R2は、初期化されてES内のペー
ジ・アドレスを格納する。各命令のオペレーション・コ
ード(OPコード)は、命令がSPINかSPOUTか
を判定し、ESとMSとの間のページ移動の方向を制御
する。
【0022】R1、R2に含まれるアドレスの形式は、
実アドレス、絶対アドレス、または仮想アドレスであ
り、システム・アーキテクチャがページをMSとESに
どのようにアドレスするかによって決まる。この実施例
では、これらの命令に絶対アドレシングが用いられるこ
とを前提にしている。但し、先に引いた米国特許出願第
424797号明細書(10/29/89出願)のペー
ジ移動命令について定義された通りに仮想アドレシング
を用いることもできる。仮想アドレシングが用いられる
場合、MSとESでデータ・アクセスが行なわれる前に
アドレス変換が必要である。
【0023】図3は、SPIN、SPOUT命令の変更
例である。追加オペランドNは、ESとMSに連続した
アドレスを持つN個のページの転送を制御するために与
えられる。オペランド・レジスタR1、R2は、N個の
連続ページの最初のページの、各メモリ(ES、MS)
に於けるアドレスを格納する。ここで用いられる連続性
はアドレシングのタイプによって異なる。R1、R2に
絶対アドレシングが用いられるなら、N個のページは、
ES、MS内で連続した絶対アドレスに置かれる。R
1、R2に仮想アドレシングが用いられる場合、N個の
ページは、連続した仮想アドレスに置かれる(仮想アド
レスは、ES、MS内に分散した絶対アドレスに置くこ
ともできる)。
【0024】SPIN/SPOUT命令は、実行される
と、0または2の条件コード(CC)を返す(1、3の
CCは用いられない)。CC=0は、命令によってペー
ジ転送が正常に開始されたことを、CC=2は、ページ
転送が開始されず、CC=0を受け取るまでSPIN/
SPOUT命令を再試行しなければならないことを示
す。ページ転送を制御するプロセサは、SPIN/SP
OUT命令を実行するプロセサに依存せずに動作する。
一方のプロセサは、MSコントローラ(MSC)、ES
コントローラ(ESC)、入出力プロセサ(IOP)、
或いはそれらすべてでもよい。
【0025】SPIN/SPOUT命令の実行によっ
て、ページ転送プロセサを直接的または間接的に始動す
ることができる。直接始動は、システムのプロセサが1
つしかSPIN/SPOUT命令を実行できない場合に
使用できる。その場合、CC=2が返り、ページ転送プ
ロセサが使用中であることが示される。次に、一方のプ
ロセサがSPIN/SPOUT要求を受け入れ、要求さ
れたページ転送を開始したことを示すCC=0が受け取
られるまでSPIN/SPOUT命令を再実行しなけれ
ばならない。
【0026】ページ転送プロセサの間接始動は、複数の
プロセサがシステム内でSPIN/SPOUT命令を実
行できる場合に用いられる。そこでキューが、SPIN
/SPOUT命令を実行する各プロセサからSPIN/
SPOUT要求を受け取り、一時格納する。要求がキュ
ーに置かれた時は、ページ転送プロセサを使用できない
ことがある。各SPIN/SPOUT命令の実行が終了
すると、SPIN/SPOUT要求データがキュー要素
に書き込まれている。このキューは非同期ページング要
求キュー(APRQ)ともいう。
【0027】APRQの要素は1個以上である。APR
Qの要素が2個以上であれば、APRQの動作方式は先
入れ先出し方式(FIFO)または後入れ先出し方式
(LIFO)であり、キューは結果的に、その要求の各
々にサービスを提供し、ページ転送プロセサを始動し
て、要求されたページ転送を実行する。
【0028】実施例の要素APRQは各々、図8のよう
な構成になっている。各要素は、実施例のキューに書き
込まれた時、マイクロ秒の単位まで表わされる時刻(T
OD)を示すトークン・フィールドを含む。トークン
は、各キュー要素を一意に表わす任意の値を取り、キュ
ー要素を生成するSPINまたはSPOUT命令を実行
するプロセサと通信できる。生成されたキュー要素は、
“使用可能”、“プロセス外アクティブ”、“プロセス
内アクティブ”、“終了”の4状態の1つを示す状態フ
ィールドも含む。OPフィールドは、要求された動作、
SPIN(ページイン)、またはSPOUT(ページア
ウト)を示す。MS PFRAフィールドは、要求され
たページ転送のMSページ・フレームの実アドレスを格
納する。ES BNフィールドは、要求されたページ転
送のESブロック数を格納する。最後の2つのフィール
ド(H/GフィールドとLPAR#フィールド)は、S
/370 SIE(解釈実行開始)命令を使用できるV
M(仮想計算機)のホスト/ゲスト・システムでしか用
いられていない。このようなVM環境には、IBMPR
/SM(区分リソース・システム管理)システムがあ
る。リクエスタ・フィールドは、0または1で、リクエ
スタがホスト(0)かゲスト(1)かを示す。LPAR
#フィールドは、ホスト/ゲストを含むPR/SM区分
を識別する番号を格納する。
【0029】実行されているSPIN/SPOUT命令
によって、キュー要素に要求が書き込まれるとすぐ、こ
の命令に条件コード0(CC=0)が与えられる。キュ
ーが一杯(非同期ページング要求を受け取るキュー内に
使用できるエントリがない)の場合、実行中のSPIN
/SPOUT命令にCC=2が与えられる。
【0030】要求側のSPIN/SPOUT命令がキュ
ー要素を使用できる時、キュー管理ソフトウェアが、ア
クセスされたキュー要素及び要求側プロセサ内の所定の
レジスタにTODトークンを書き込み、そのプロセサに
キュー要素を示し、後続のTAPS命令によって使用で
きるようにする。キューのトークンは後で、後続のTA
PS命令によって用いられ、割り当てられたキュー要素
が探索され、要求されたページ転送を制御する別のプロ
セサによって実行された要求の現在状態が検出される。
【0031】キュー・トークンは、実施例では(SPI
NまたはSPOUT命令を実行する)開始側プロセサ内
の汎用レジスタの対、GR0、GR1に返る。GR0、
GR1は、実施例ではSPIN/SPOUT命令の各々
に暗示的第3オペランドを与える。GR0、GR1は、
SPIN/SPOUT命令が実行される時にキュー・ト
ークンを受け取るために使用できなければならない。
【0032】開始側プロセサは、そのGR0、GR1
を、要求側のSPIN/SPOUT命令の後に実行され
る他の命令のために使用する前に、最初に、GR0、G
R1に返されたキュー・トークンの値を(MSまたは他
の箇所に)セーブしなければならない。実施例では、6
4ビットの時刻(TOD)値が、割り当てられたキュー
要素に格納され、開始側プロセサのGR0、GR1に返
る。TOD値はMSにセーブされ、後にこのMSから検
索しうるので、後続のTAPS命令がこのTOD値を使
用できる(TAPS命令に関しては後述する)。
【0033】このようなキュー・バッファリング動作
は、実施例のようにCEC(中央複合電子装置)当たり
1つのキューを設けるなど、様々な設計のキューで実現
できる。ただ本発明では、SPIN/SPOUT命令を
実行する中央プロセサの各々にキューを設ける等、他の
設計のキューを使用しうる。プロセサごとにキューを設
ける形では、ES、MSリソースを使用できる次の要求
の各々を、どのキューが与えるかを判定するために、優
先順位が必要である。
【0034】本発明は、プロセサ、MSエンティティ、
ESエンティティが各々単一であるシステムに利用でき
る。
【0035】本発明はまた、ページ転送(PT)プロセ
サ、ESエンティティ、MSエンティティ、並びにSP
IN/SPOUT命令及びTAPS命令を並行して実行
できる中央プロセサ(CP)が各々複数あるシステムに
も利用できる。この種のシステムについては図9により
後述する。すべてのPTプロセサ及びCPによる並行動
作を実現するには、CP、PTプロセサの各々を、単一
の集中型APRQ(非同期ページ要求キュー)に接続す
ればよい。これにより、すべてのCPがSPIN/SP
OUT要求をキュー要素に書き込め、すべてのPTプロ
セサが、アクティブなキュー要素の制御下、すべてのE
S/MSパス上で何れかの方向にページ転送を実行する
ことができる。
【0036】図4は、TAPS(非同期ページ状態検
査)命令の一例を示す。この命令は、SPINまたはS
POUT命令の後に実行され、要求されたページ転送が
終了したかどうかが判定される。TAPS命令が、(C
C=0値を返すことによって)正常終了状態を指示すれ
ば、SPINまたはSPOUT命令を発行したプログラ
ムは、要求されたページ転送が終了したとの指示を受け
取ってから次の動作に進むことができる。
【0037】図4のTAPS命令は、明示的オペランド
R1と、IBM S/370プロセサの汎用レジスタG
R16個のうちGR0、GR1を用いる暗示的オペラン
ドを持つ。TAPS命令内のオペランドR1は、SPI
NまたはSPOUT命令内のオペランドR1とは動作が
異なる。TAPSのオペランドR1は、値0または1を
持つ機能コード(FC)を格納するように定義される。
この値はTAPS命令の動作方法を制御する。値0は
“検査のみ”のFCを与え、値1は“終了待ちと検査”
のFCを与える。“検査のみ”のFCは、そのTAPS
命令の完全な非同期実行を制御する。“待ち”FCは、
その命令の部分的な非同期実行を制御するために、ペー
ジ転送が、その開始からTAPS命令の実行時まで非同
期に動作するようにし、その後、ページ転送を同期動作
に変えるために、開始側プロセサが、TAPS命令の終
了まで何の命令も実行できないようにする。
【0038】TAPS命令の暗示的オペランドGR0、
GR1は、開始側SPIN/SPOUT命令に対して返
されたキュー・トークンを格納する。実施例のキュー・
トークンは、64ビットの時刻(TOD)値となるよう
にされ、この値はTAPS命令の実行に先立ってGR
0、GR1に置かれる。先のSPIN/SPOUT命令
が実行された後に他の命令がGR0、1を使用している
場合、トークンはMSに格納されており、TAPS命令
の実行前にそこから検索して、GR0、1に復元しなけ
ればならない。
【0039】すなわち、転送を開始したプロセサ(開始
側プロセサ)は、SPINまたはSPOUT命令(実行
は即時に終了)を実行した後、すぐ解除され、他の命令
を実行することができる。他の命令とは、SPIN/S
POUT命令を発行した同じプログラム内の命令、開始
されたページ転送とは無関係のプログラムやルーチン等
である。
【0040】次に開始側プロセサは、そのSPINまた
はSPOUT要求が、ページ転送プロセサによるサービ
スをキューで待つ状態になり、要求されたページ転送が
非同期に実行されている間、他の命令を非同期に実行で
きる。そのため、開始側プロセサは、少なくとも要求側
プログラムがTAPS命令を発行して、要求されたペー
ジ転送の状態を検出するまで(ページ転送がまだ実行中
か終了したか等)、ページ転送プロセスと並行して(同
時に)他の命令を実行できる。
【0041】TAPS命令の実行方法は、そのオペラン
ドR1の機能コード(FC)の設定によって制御され
る。オペランドR1は、“検査のみ”のFCまたは“待
ち”のFCを格納できる。TAPS命令がそのオペラン
ドR1に“検査のみ”のFCを持つ場合、TAPSの実
行は、それが、関連するSPIN/SPOUT要求に割
り当てられたキュー要素の状態を通知するとすぐに終了
する。SPIN/SPOUT要求は、要求されたページ
転送のその時点の実行状態を通知するために、TAPS
命令のCC値をセットして直ちにその実行を終了する。
TAPSプロセサは、CCを受け取るとすぐ、その次の
命令を実行できる。これにより、開始側SPIN/SP
OUTプロセサは、他の命令を、別のプロセサによって
制御されるページ転送プロセスと非同期に実行できる。
【0042】TAPS命令が、そのオペランドR1に
“待ち”FCを持つ場合、TAPS命令の実行は、ペー
ジ転送プロセサからキュー要素へのシグナルを待つ。こ
のシグナルは、TAPS命令の実行終了前にページ転送
が終了したことを示す。ページ転送が終了した時にの
み、CCがTAPSプロセサに返り、TAPS命令の実
行が終了する。そしてTAPSプロセサがその次の命令
を実行することができる。そこで“待ち”のTAPS命
令は、モニタされるページ転送が終了するまで、その発
行から実行状態にとどまる。また、“待ち”のTAPS
命令が、ページ転送終了前に発行された場合、待ち時間
はかなり長くなり、その間、TAPSプロセサは他の命
令を実行できない。その結果、TAPSプロセサは、T
APS命令を実行する前に他の命令の実行を終了しなけ
ればならず、TAPS実行中は他の命令を実行できな
い。それによって“待ち”のTAPS命令がページ転送
と同期して動作する。このような同期待ち動作では、開
始側プログラムに待ちループをプログラミングする必要
がない。
【0043】上記の、“待ち”TAPS命令の遅い同期
動作が起こるのは、この命令が、そのページ転送が終了
する前に発行された場合だけである。但し“待ち”のT
APS命令が、そのページ転送終了後まで発行されない
と、その実行は直ちに終了し、次に“待ち”TAPS命
令の動作は、“検査のみ”のTAPS命令と同じように
高速になる。
【0044】TAPS命令に対してCC=0が受け取ら
れた場合、要求されたページ転送は正常に終了する。次
にSPIN命令を起動する場合、TAPSプロセサは、
MS内の要求されたページを直ちにアクセスするか、ま
たはかかるアクセスを遅らせることができる。そのため
に、例えば他の命令の実行を続けてから、MS内の要求
されたページをアクセスする。何れの場合でも、オペレ
ーティング・システムのサービスに関して、開始側プロ
セサへの割り込みはない。
【0045】SPOUT命令が起動する場合、後続のT
APS命令に対するCC=0は、ページがESに正常に
格納され、開始側プロセサが、オペレーティング・シス
テムのサービスに対する割り込みなく、他の命令の実行
を継続できることを示す。
【0046】TAPS命令に対して返ったCC=2は、
ページ転送がアクティブ(終了していない)であること
をTAPSプロセサに指示する。次に発行側プロセサ
は、転送が正常に終了したかどうかを判定するために、
後でまたTAPS命令を発行しなければならない。
【0047】CC=3という応答は、トークン値に一致
するキュー・エントリがそのGR0、1にないことと、
検査されたページ転送が正常に終了したことををTAP
Sプロセサに知らせる。CC=3応答が与えられるの
は、ページ転送中にエラーまたは異常例外条件が発生し
た場合で、その時、キュー要素は使用可能状態にリセッ
トされる。開始側プログラムは、TAPSのCC=3を
受け取ると、ページ転送を再要求でき、さらに、SPI
N/SPOUT命令を再発行するか、またはPAGEI
N/PAGEOUT、MVPG命令等の同期ページング
命令を発行することができる。実施例の方式はPAGE
IN/PAGEOUTを発行するものである。これは、
実施例では分割(split )ページング命令(SPIN/
SPOUTとTAPS)に対してエラー例外条件が与え
られないためである。次にPAGEIN/PAGEOU
Tに組み込まれたエラー例外条件が適用され、ページ転
送についてエラー等の異常例外条件があったかどうかが
調べられる。
【0048】図5は、キュー要素の4つの状態−“使用
可能(available )”、“プロセス外アクティブ(acti
ve not in process )”、“プロセス内アクティブ(ac
tivein process)”、“正常終了(normal completio
n)”−を示す。どのキュー要素もこれらの状態のうち
1つを持ち、これらの要素が、SPIN/SPOUT、
TAPS命令に対して返るCCを制御する。“使用可
能”状態は、割り当てられていないキュー要素に対して
生じる。この要素は、要求側プロセサが使用でき、その
内容は無効である。コード00は、“使用可能”状態
を、コード01は“プロセス外アクティブ”状態を、コ
ード10は“プロセス内アクティブ”状態を、コード1
1は“正常終了”状態を示す。使用可能状態は他の方法
でも表現できる。例えば、無効フラグ・ビットを無効状
態にセットして“使用可能”状態を表わす、あるいはト
ークン・フィールドをゼロ値にセットする等である。
【0049】“アクティブ”状態は、SPIN/SPO
UT命令が、割り当てられたキュー要素に要求を入れた
時に始まり、要求されたページ転送が終了した時に終わ
る。アクティブ状態には2通りある。1つは“プロセス
外アクティブ”状態で、これは要素がキューに置かれて
はいるが、ページ転送プロセサがまだ取得していない時
に存在する。もう1つは、“プロセス内アクティブ”状
態で、これは、有効要素がページ転送プロセサによって
取得された後に処理されている時に存在する。要求側T
APS命令は、実施例では、実行側TAPSのレジスタ
対GR0、GR1にTODトークン値のあることが検出
されたキュー要素の状態フィールドに“アクティブ”指
示を検出した時に、CC=2応答を受け取る。
【0050】“正常終了”状態は、ページ転送が正常に
終了した時に生じる。その際、キュー要素の状態フィー
ルドには、ページ転送プロセサによって正常終了が指示
される。“正常終了”要素と示された要素を検査する要
求側TAPS命令に、CC=0が送られる。
【0051】ページ転送にエラーまたは異常終了が生じ
ると、要素の状態フィールドは“プロセス内アクティ
ブ”状態から“使用可能”状態に変わる。実施例では、
実行側TAPSのレジスタ対GR0、GR1のTODト
ークン値とQEが一致しない時、または“使用可能”状
態であるQEの一致が検出された時に、要求側TAPS
命令はCC=3応答(実行失敗を示す)を受け取る。
【0052】図6、図7は、従来の同期ページング方式
に対する、本発明の非同期分割ページングの、オーバラ
ップ・プログラミング上のメリットを示す。図6の同期
ページングは、PAGEIN、MovePage等の同
期命令に必要なページング時間がすべて、開始側プロセ
サに用いられ、1ページの転送が制御されることを示
す。これにより、同期ページ転送プロセス中は、他の命
令を実行できなくなる。これに対して同じく図6に示し
たのが、わずかなページ転送時間にのみ実行される分割
ページング命令(TAPSとこれに先行するSPINま
たはSPOUT)である。これにより、ページ転送時間
のほとんどを、開始側プロセサが、他の命令をページ転
送プロセスと非同期に(同プロセスから独立して)実行
することができる。
【0053】オーバラップ可能性(他の命令をページ転
送プロセスとオーバラップできる時間)を左右する実行
要因は多いが、一般にはページ転送時間の50%以上に
なる。図7は50%のオーバラップ可能時間を想定して
いる。この時間の間、セットアップ・ソフトウェアが実
行され、転送する次のページを準備するのに必要なセッ
トアップ命令が実行される。ページ転送1のセットアッ
プは、ページ転送(PT)1を開始するSPIN(S)
命令の発行で終わる。
【0054】(PT2に対応する)次のセットアップ2
は、PT1に対するSとTの命令の間にPT1をオーバ
ラップする。セットアップ2は、PT2に備えるために
開始側プロセサによって発行される命令より成る。図7
の残りのPTとそれらの準備セットアップも同様のオー
バラップ特性を持つ。こうして高速化(図7)されるこ
とは、オーバラップの例が、図の例の5ページの転送
を、オーバラップしない場合の時間の約60%の時間で
終了することから明らかである。
【0055】図9は、複数の中央プロセサCPOないし
CPnを持つ中央複合電子装置(CEC)を示す。CE
Cはこのほか、各々、主記憶装置MSaないしMSmを
伴う複数のシステム・コントローラSCaないしSCm
と、MSコントローラMSCaないしMSCmを持つ。
MSaないしMSmの絶対アドレスは連続しており、C
Pは、MSのどこででも、任意のバイト位置をアドレス
できる。CECはさらに、各々SCaないしSCmに接
続された複数のESコントローラESCaないしESC
zを含む。ESaないしESzは各々、ESCaないし
ESCzに接続される。ES内のアドレスは32ビット
のページ・ブロック番号であり、連続している。そのた
めCPは、ESのどこででも、任意のページ位置をアド
レスできる。よってMSaないしMSmは各々、絶対ア
ドレス範囲が異なり、ESaないしESzは各々、ペー
ジ・ブロック・アドレス範囲が異なる。
【0056】図9のCECは、図8のAPRQキューと
ともに動作し、このキューは、実施例ではマイクロコー
ドしか使用できないMS内のエリアに位置する。ARP
Qはキュー要素QE−0ないしQE−kより成る。AR
PQには、所定のCPアクセス可能位置11があり、こ
こでキュー・マネジャ・ソフトウェア(マイクロコー
ド)が、その次の“使用可能”状態のキュー要素のアド
レスを置く。SPINまたはSPOUT命令を実行する
CPは、位置11のアドレスを取り、そのSPINまた
はSPOUT要求を直接、この自己割当キュー要素に書
き込む。これは割当が、位置11から取られたアドレス
に書き込むCPによるものである。CPのコンテンショ
ンを処理するために位置11にアクセスするCP間で
は、従来のようなロッキング・プロトコルが用いられ
る。CPがその要求を、所定のCPアドレスで識別され
る要素に書き込むと即、キュー・マネジャが、キューの
次の要素のアドレスを格納するか、またはその時点で使
用できるキュー要素がない場合は、キューが一杯である
ことをその中に指示する。
【0057】またAPRQでは、別の所定位置12を、
ESCaないしESCz内のすべてのページ転送(P
T)プロセサがアクセスできる。キュー・マネジャは、
その次の“プロセス外アクティブ”状態のキュー要素の
アドレスを位置12に置く。PTプロセサは、非ビジー
状態になるとすぐ、位置12にアクセスしてその次のペ
ージ転送ワークを取得する。競合を処理するために位置
12にアクセスするPTプロセサ間では、従来のような
ロッキング・プロトコルが用いられる。PTプロセサは
次に、位置12から得られたアドレスにあるキュー要素
のページ転送要求を実行する。PTプロセサが位置12
のアドレスを取るとすぐ、キュー・マネジャは直ちにキ
ューの次の“プロセス外アクティブ”状態のキュー要素
のアドレスをそこに格納するか、またはその時点で使用
できる“プロセス外アクティブ”状態のキュー要素がな
い場合は、キューが空きであることをその中に示す。
【0058】SPINまたはSPOUT命令を実行する
ための各CPのマイクロコードには、位置11の所定ア
ドレスがあり、これは、APRQの次に使用可能なCP
アクセス可能アドレス、またはキューが一杯という指示
を格納する。詳細は図10により述べられている。
【0059】各PTプロセサのマイクロコードは、位置
12のアドレスを持ち、これはAPRQの次のPTアク
セス可能アドレス、またはキュー空きの指示を格納す
る。PTプロセサは、ビジーでなければ即、次のPTア
クセス可能アドレスの位置12を位置を調べ、次に実行
するページ転送ワークを取得する。こうしてすべてのP
Tプロセサが、並行してページ転送を実行するビジー状
態に保たれる。但し、これはAPRQにアクティブな
“プロセス外アクティブ”状態のキュー要素がある場合
に限られる。詳細は図11により述べる。
【0060】よってCPは、SPIN/SPOUT要求
を位置12を介してAPRQに置き、PTプロセサは、
位置12を介してAPRQ内のアクティブ要素を処理す
る。APRQ内の“正常終了”状態の要素は、TAPS
命令がその要素にアクセスし、CC=0応答を返すまで
は“使用可能”状態にセットされない。CC=0応答
は、要求側CPに、それが要求したページ転送が終了
し、ページが使用できることを示す。
【0061】複数のオペレーティング・システム下の動
仮想計算機(VM)ソフトウェアはハイパーバイザ・オ
ペレーティング・システムを提供する。このシステムで
は、ゲストの仮想CPが、S/370 SI命令を使用
してホストのオペレーティング・システム下で動作する
ことができる。SIE命令下では、複数のオペレーティ
ング・システムが、IBM3090コンピュータ・シス
テム等、同じCEC内で同時に動作する。同時オペレー
ティング・システムとしては、CECのリソースのサブ
セットを使用する複数のMVS(多重仮想空間)等があ
る。これには、異なるオペレーティング・システムによ
るCPUリソースの時分割使用も含まれる。オペレーテ
ィング・システムはホストといい、仮想CPはゲストで
ある。広く用いられているハイパーバイザとしてはIB
M PR/SMシステムがある。(これはすべて従来か
らもある−米国特許出願第4843541号明細書参
照。)
【0062】図8のAPRQ要素は各々、ホスト/ゲス
トを各キュー要素の現在の所有者と認識するリクエスタ
・タイプ(H/G)を含む。LPAR#フィールドは、
PR/SMシステム内のホスト/ゲストの区分番号を含
む。
【0063】ゲスト/ホスト環境では、TAPS命令に
よるAPRQの探索は、トークン・フィールドの探索だ
けでなく、H/G、LPAR#フィールドの探索も毎回
行なわれている。これにより、ホスト/ゲストのアクセ
スは、ホストまたはゲストの区分に関連するキュー要素
のみのアクセスに限られる。一致しない場合、CC=3
がTAPS命令のCPに返される。
【0064】本発明は、VM環境(PR/SM CEC
に複数のSIE命令がある場合等)で用いられることを
想定して特別の注意を払っている。これは、タイムスラ
イスの終わりでCPUの区分を切り替えることが可能で
ある。タイムスライスの終わりは、非同期ページ転送が
終了する前の時間であり得る。集中型APRQは、区分
が同じ物理CPまたは異なる物理CPで再指定されるか
どうかに関係なく、TAPS命令の正常動作を保証す
る。
【0065】CP、PTプロセサの独立動作 SPIN、SPOUT、TAPS命令は、図9のCPの
何れによっても実行され、その際、ページ転送は(SP
INまたはSPOUT命令によって開始される)、図9
のその何れのESC内の何れのPTプロセサによっても
制御される。CPはN個、図9のPTプロセサはZ個、
MSはM個である。MS当たりMSCとSCが各々1個
ある。ほとんどの場合、PTプロセサ数はCPよりもか
なり少ない。
【0066】CP、PTプロセサは互いに非同期に動作
する。実施例では1個のキュー(APRQ)が、CP、
PTプロセサ間の独立動作を維持する。また1個のキュ
ー要素が、要求されたページ転送を実行する任意のC
P、任意のPTプロセサによって実行されたSPIN/
SPOUT命令間にバッファを提供する。
【0067】作業項目は、SPIN/SPOUT要求
が、CPによって実行されたSPIN/SPOUT命令
によって、使用可能なキュー要素に書き込まれる時に、
キューに置かれる。また作業項目は、CPによって実行
されたTAPS命令が、要求されたページ転送の終了状
態がその要求側キュー要素によって示されることを検出
した時に、キューから除外される。ページ転送を実行し
たPTプロセサを、その要求側CPに対して識別させる
必要はない。
【0068】実施例では、すべてのCPが図8の1つの
キュー・インタフェース位置11にアクセスして、各ペ
ージ転送要求の作業項目をAPRQに入力する。またす
べてのPTプロセサは、1つのキュー・インタフェース
位置12にアクセスして、次のページ転送の作業項目を
APRQから取得する。
【0069】各々のインタフェース位置11または12
は、CPまたはPTプロセサによってアドレスについて
アクセスされている間に、一時的にロックされる。イン
タフェース位置は、CPまたはPTプロセサによって更
新されるとすぐにアンロックされる。
【0070】さらに位置11が中央プロセサによってロ
ックされている時、位置12はアンロックでき、どのP
Tプロセサもこれにアクセスできる。また位置12がP
Tプロセサによってロックされている時は、どの中央プ
ロセサも位置11にアクセスできる。インタフェース位
置11か12の何れかがロックされていれば、それをア
ドレスするキュー要素(QE)は、他のどのプロセサに
よってもアドレスされていない。
【0071】このようにして、すべてのPTプロセサ、
すべてのCPの間で独立動作が維持される。
【0072】TAPS命令は、(APRQが一杯の時を
除き)位置11をロックしないため、1つのCPで実行
されるSPINまたはSPOUT命令と、別のCPで実
行されるTAPS命令との間のロックの競合は最少であ
る。
【0073】SPIN/SPOUT命令の動作(図1
0) 図10は、図9のシステム内の各CPのハードウェア/
マイクロコードの動作(SPINまたはSPOUT命令
を実行)を示す。システムのCPは互いに独立して動作
し、どのCPも、いつでも任意の命令を実行することが
できる。
【0074】CPインタフェース位置11は、ステップ
51AでSPINまたはSPOUT命令の実行開始時
に、要求側CPによってロックされる。次に、要求側C
Pだけは、位置11を更新すれば、命令処理時にエラー
の原因となる更新の間に他のCPとのキューの競合を防
ぐことができる。要求側CPは、要求時点で位置11が
ロックされているのを検出した場合、位置11のロック
が解除されているのを検出するまで、要求を続けなけれ
ばならない。
【0075】次のステップ51は、現時点でロックされ
ているCPインタフェース位置11のアドレスにアクセ
スし、そのアドレスを使用してキュー要素(QE)にア
クセスし、現在のSPIN/SPOUT命令が使用でき
るようにする。
【0076】ステップ52は、位置11の内容を調べ、
“キュー一杯”の指示ではなくアドレスがあるかどうか
を判定する。“キュー一杯”の指示が検出された場合、
位置11をアンロックするステップ53AへのNOパス
が取られ、ステップ53がCC=2を、現在のCPの条
件コード・レジスタにセットして、SPIN/SPOU
T命令の動作を終了させる。QEアドレスが位置11で
検出された場合、ステップ54へのYESパスが取られ
る。その場合、CPが情報をQEのフィールドのどれか
に書き込む(SPINまたはSPOUTでは各々OPフ
ィールドの0または1、ページのMSアドレス、ページ
のESアドレス、あるいはホストまたはゲストを示す0
または1がH/Gフィールドへ、またCPの現在の論理
区分番号がLPAR#フィールドへ)。
【0077】ステップ55は、時刻(TOD)をトーク
ン・フィールドに64ビット値としてコピーすることに
よってトークンを生成する。このトークンはまた、現在
のCPのGR0、GR1の対にコピーされ、後続のTA
PS命令によって用いられる。
【0078】ステップ56は、状態フィールドを01と
示す(“プロセス外アクティブ”状態)。他の状態は
“使用可能”状態の00、“プロセス内アクティブ”状
態の10、及び“正常終了”状態の11である。
【0079】ステップ54、55、または56は、ロッ
クされたQEへの書き込みを目的に、順序通りにあるい
は同時に実行することができる。次にステップ57がC
C=0をセットする。
【0080】ステップ58は、キュー・マネジャ1(図
13のQM1)を呼び出して実行する。QM1は、実行
を終えると、これを呼び出したSPIN/SPOUTプ
ロセスに返り、SPIN/SPOUT命令がその処理を
終える(EOP)。キュー・マネジャ1による処理は、
APRQで、“使用可能”状態の別のQEを探索し、シ
ステム内のCPからの次のSPIN/SPOUT要求に
備えて、そのアドレスを位置11に置く。このようにし
て、使用可能なQEを検出するためにキューの探索が事
前に行なわれるようになり、SPIN/SPOUTの実
行が遅くなることはない。
【0081】PTプロセサの動作(図11) 図11は、図9のシステムの各PT(ページ転送)プロ
セサが備えるハードウェア/マイクロコードの動作を示
す。図9のシステムのPTプロセサは、互いに、またC
Pから独立して動作する。ここで示すAPRQは、すべ
てのPTプロセサが互いに連続して動作するようにす
る。PTプロセサは、ページ転送を終えるとすぐ、PT
インタフェース位置12に戻り、別のページ転送作業項
目を取得する。この作業項目はAPRQ内のQEの“プ
ロセス外アクティブ”状態によって示される。APRQ
内で“プロセス外アクティブ”状態にあるQEがある限
り、アイドルになるPTプロセサはない。
【0082】図9のシステムのPTプロセサは、ページ
転送を終えると、図11のステップ60に入り、PTイ
ンタフェース位置12のロック(ステップ61A)を実
行することによって、次の作業項目を取得しようとす
る。次にステップ61は位置12のアドレスを使用し
て、“プロセス外アクティブ”状態のキュー要素(Q
E)にアクセスする。但し、位置12に“キュー空き”
の指示があれば(かかるQEがAPRQに存在しない)
その限りではない。ステップ62は位置12の内容を調
べる。“キュー空き”指示が検出されると、NOパスが
取られてステップ61が戻り、PTプロセサがステップ
61にループ・バックする(後続のSPIN/SPOU
T命令の実行によって“プロセス外アクティブ”QEが
キューに置かれ、図14のキュー・マネジャ2がQEア
ドレスを位置12に置くまで)。
【0083】ステップ62が位置12にQEアドレスを
検出した場合は、YESパスを通してステップ63が取
られる。ステップ63では、QEの状態フィールドが変
更される。これは“プロセス内アクティブ”状態を表わ
す状態コード10のQEへの書き込みによる。
【0084】次に図14のキュー・マネジャ2(QM
2)がステップ64によって呼び出される。ステップ6
4は実行されて、図11のプロセスの、呼び出し命令に
続く命令に戻る。QM2プロセスは位置12のアドレス
を、“プロセス外アクティブ”状態を持つか、または
“キュー空き”指示のある別のQEのアドレスに置き換
える。
【0085】次にPTプロセサがステップ65を実行し
て、取得されたQEによって要求されたページ転送を開
始する。ステップ66はページ転送の終了を制御する。
ステップ65、66は普通、図11の他のステップの実
行に比べてかなりの時間がかかる。
【0086】次のステップ67はエラーが生じたかどう
かを調べる。エラーがなければステップ68へのNOパ
スが取られ、ステップ68がQEの状態フィールドを変
更するために、それを“正常終了”状態(11)とす
る。この状態は後続のTAPS命令によって調べられ
る。ステップ68を実行して他のプロセサとの競合を防
ぐために、コンペア・スワップ式の命令が用いられる。
【0087】次にステップ68がPTプロセスの先頭に
ループし、再び位置12で別の作業項目を調べるため
に、そこから別の“プロセス外アクティブ”のQEアド
レスを取得する。
【0088】ステップ67がエラー条件を検出した場合
(ページ転送動作の異常終了の原因となる条件を含
む)、ステップ71AへのYESパスが取られ、位置1
1がロックされる。次にステップ71がQEを無効にす
るために、その状態フィールドを変更する。これは“使
用可能”状態コード00(QEの内容が無効であること
を示す)による。ステップ71を実行して他のプロセサ
との競合を防ぐために、コンペア・スワップ式の命令が
用いられる。
【0089】次にステップ72は、位置11に“キュー
一杯”の指示があるかどうかを調べる。なければページ
転送処理が終了し、ステップ72が位置11をアンロッ
クし、図11のプロセスの先頭に戻る。これでPTプロ
セサがその次の作業項目を取得できる。
【0090】しかしステップ72が“キュー一杯”の指
示を検出した場合は、ステップ73へのYESパスが取
られ、図13のQM1が呼び出されて、インタフェース
位置11にある“キュー一杯”の指示が別のQEと置き
換えられる。このQEは、ステップ71で使用可能にな
ったQEであり得る。QM1プロセスは、終了後、ステ
ップ73で出された呼び出しに続くPTプロセスの命令
に戻り、PTプロセスはその先頭60(図11)にルー
プ・バックして、その次の作業項目を取得するために、
位置12から別の“プロセス外アクティブ”のQEアド
レスを得る。
【0091】TAPS命令の動作(図12) 図12は、図9のシステム内の各CPのハードウェア/
マイクロコードの、TAPS(非同期ページング状態検
査)を実行する動作を示す。システムのCPは互いに独
立に動作し、どのCPも、いつでも任意のTAPS命令
を実行することができる。システム内のCPは、ステッ
プ74によって、そのGR0、1のトークンにアクセス
してTAPS命令を開始する。トークンはその前のSP
IN/SPOUT命令の実行によってGR0、1に置か
れたものである。トークンがGR0、1から除外されて
いた場合、TAPS命令の実行前にセーブされた位置か
らそのトークンを復元しなければならない。
【0092】次のステップ75は、図8のAPRQを調
べて、トークン・フィールドがGR0、1内のそのトー
クンに一致するキュー要素を見つける。また、システム
がSIE命令環境で動作している場合は、H/GとLP
AR#フィールドも、TAPSを実行するCP上の現在
のプログラムのそれらのパラメータと一致しなければな
らない。
【0093】ステップ76はAPRQに一致があるかど
うかを検出する。なければステップ77へのNOパスが
取られ、TAPS命令についてCC=3がセットされ、
プロセスの終わり(EOP)になり、TAPS命令の実
行が終了する。
【0094】ステップ76がAPRQに一致を検出する
と、ステップ78AへのYESパスが取られ、ステップ
78Aが、一致したQEの状態フィールドが状態コード
00(“使用可能”状態)かどうかをチェックする。
【0095】検出されたQEが使用可能状態なら、ステ
ップ77へのYESパスが取られ、TAPS命令につい
てCC=3がセットされ、プロセスの終わり(EOP)
になる。
【0096】ステップ78Aが、QEが“使用可能”状
態にないことを検出すると、ステップ78BへのNOパ
スが取られ、ステップ78Bは、一致したQEの状態フ
ィールドに状態コード11(“正常終了”状態)がある
かどうかを調べる。
【0097】検出されたQEが終了状態であれば、ステ
ップ79へのYESパスが取られ、現在のCPの条件コ
ード・レジスタにCC=0が書き込まれる。ステップ8
0Aは位置11をロックする。次にステップ80は、Q
Eの状態フィールドに値00を書き込むことによって、
QEを使用可能と示す。
【0098】これによりTAPS命令の実行が有効に終
了する。次にステップ81は、位置11に“キュー一
杯”の指示があるかどうかをチェックする。なければス
テップ86Aが位置11をアンロックし、TAPS命令
の処理の終わり(EOP)86になる。ステップ81が
“キュー一杯”の指示を検出した場合、ステップ82が
取られて図13のQM1が呼び出され、インタフェース
位置にある“キュー一杯”の指示が別のQEと置き換え
られる。このQEは、ステップ80で使用可能になった
QEであり得る。QM1のプロセスはTAPS EOP
86に戻る。
【0099】終了状態がステップ78Bで検出されなか
った場合、QEはなお“アクティブ”状態にあり、ステ
ップ78Bからステップ83へのNOパスが取られ、ス
テップ83が、一致したQEの機能コード(FC)フィ
ールドを調べる。FCフィールドの値は0または1で、
上述のように、“検査TAPS”または“待ちTAP
S”という命令の形式を表わす。
【0100】FC=0なら、TAPS検査パスからステ
ップ84へのパスが取られ、TAPS命令に対してCC
=2がセットされて、一致したQEがまだ“アクティ
ブ”状態(“プロセス外アクティブ”または“プロセス
内アクティブ”)にあることが示される。TAPS命令
は後に再発行し、ページ転送が“終了”状態になったか
どうかを判定しなければならない。
【0101】FC=1の場合、TAPS待ちパスからス
テップ87へのパスが取られ、処理は、使用可能状態ま
たは終了状態の発生を再検査するプロセス内のステップ
78Aにループ・バックする。ループの処理は、“待
ち”TAPS命令に対して同期方式の実行を続ける。こ
の命令の待ち時間は、そのページ転送の終了が指示され
るまで引き伸ばされる。
【0102】キュー・マネジャ1の動作(図13) 図13は、CPインタフェース位置11の使用可能なQ
Eのアドレスを維持しておくための、図9のシステムの
ハードウェア/マイクロコードの動作を示す。システム
内のすべてのCPは、使用可能なQEのアドレスを位置
11で連続的に使用できるため、SPIN/SPOUT
命令の実行から低速の探索プロセスをなくすことによっ
て、それらの命令の実行速度を上げることができる。す
なわち探索は、キュー・マネジャが実行することによっ
てSPIN/SPOUT要求ごとに進む。
【0103】そこで、SPIN/SPOUTまたはTA
PS命令からの呼び出しによって、キュー・マネジャの
ステップ90が取られる。この時、ステップ91はAP
RQの“使用可能”状態にあるQEを探索する。
【0104】探索で、状態フィールド内の“使用可能”
値00を持つ最初のQEが検出される。次にステップ9
3が取られ、検出されたQEのアドレスが位置11に書
き込まれる。(APRQ内のQEの順序は任意であり、
APRQで使用するQEの個数も任意である。但し、シ
ステム内の作業項目の流れを間断なく維持するためには
最小個数にする必要がある。)
【0105】ステップ93からステップ93Aが取ら
れ、位置11がアンロックされ、キュー・マネジャ1の
プロセスがEOPステップで終了する。
【0106】しかし探索で、“使用可能”状態にあるQ
Eが検出されなかった場合、ステップ91からステップ
92へ“QE未検出”パスが取られ、ステップ92が
“キュー一杯”の指示を位置11に書き込む。“キュー
一杯”の指示は、現時点で使用可能なQEがAPRQに
存在しないことを示す。これはすべてのQEが他の動作
状態(ビジー)にあり、この状態がほとんどの場合、2
つの“アクティブ”状態を含むからである。但し、“正
常終了”状態も加えることができる(この状態は、TA
PS命令の実行を待って“使用可能”状態に変更され
る)。次にステップ92からステップ93Aが取られて
位置11がアンロックされる。
【0107】最後にQM1は、図10、図11、または
図12で命令を呼び出したプロセスのその命令に戻って
終了する。
【0108】キュー・マネジャ2の動作(図14) 図14は、PTプロセサ・インタフェース位置12内の
“プロセス外アクティブ”QEのアドレスを間断なく維
持するための、図9のシステムのハードウェア/マイク
ロコードの動作を示す。
【0109】システムのすべてのPTプロセサは、位置
12の使用可能なQEを連続的に使用できるため、実行
するページ転送の回数を増やすことができる。キュー・
マネジャ2により、PTプロセサが、実行する作業のた
めのAPRQを探索する必要はなくなる。これは、先に
実行された探索の結果によって、位置12の使用可能な
QEのアドレスを要求側PTプロセサに示すことによ
る。
【0110】ステップ95で、システムのPTプロセサ
のうち何れもキュー・マネジャ2を起動できる。ステッ
プ96は、APRQで、“プロセス外アクティブ”状態
にあるQEを探索する。
【0111】探索で、状態フィールドに“プロセス外ア
クティブ”コード01を持つ最初のQEが検出される。
次にステップ98が取られ、検出されたQEのアドレス
が位置12に書き込まれる。
【0112】ステップ98からステップ98Aが取ら
れ、位置12がアンロックされる。ステップ99では、
キュー・マネジャ2のプロセスが、QM2を呼び出した
命令の後の命令に戻る。
【0113】しかしステップ96の検索で、“プロセス
外アクティブ”状態を持つQEが検出されなかった場
合、ステップ96からステップ97へ“QE未検出”パ
スが取られ、ステップ97が“キュー空き”の指示を位
置12に書き込む。“キュー空き”の指示は、要求され
た状態を持つ使用可能なQEが現時点でAPRQに存在
しないことを示す。次にステップ97から98Aが取ら
れて位置12がアンロックされる。
【0114】最後にステップ99がQM2プロセスを終
えるため、図12の処理のなかでこれを呼び出したルー
チンに戻る。
【0115】複数の非同期ページ転送 上述のSPIN/SPOUT命令処理は1命令で1ペー
ジを転送する。したがってページを転送するごとに別の
SPINまたはSPOUT命令が必要である。ループ・
プログラムが1つあれば、複数のSPIN/SPOUT
命令を制御してN個のページを転送することができる。
【0116】図3は、複数のSPIN、SPOUT命令
を示す(MSPIN、MSPOUTと略記)。MSPI
N、MSPOUT命令は各々、MS、ES内の連続した
ページ・アドレスに置かれたN個のページの転送を示す
フィールドNを含む。MSPIN/MSPOUT命令は
また、MS内の連続したページのうち最初のページのア
ドレスが置かれるオペランドR1と、ES内の連続した
ページのうち最初のページのアドレスが置かれるオペラ
ンドR2を持つ。
【0117】MSPIN、MSPOUT命令の動作を制
御するために、図8のAPRQと図10ないし図14の
プロセスに変更を加える場合、図8のAPRQのQEに
フィールドNが追加される。
【0118】SPIN/SPOUT命令を実行する図1
0のプロセスは、わずかな変更でMSPIN/MSPO
UT命令にも適用できる。命令オペランドからの値N
を、アクセスされたQE内に追加されたフィールドNに
も書き込むためにはステップ54を変更することによっ
て可能である。
【0119】PTプロセスのための図11のプロセス
は、ステップ65、66で、1ページではなくN個のペ
ージを転送する。PTプロセスは、N個のページがすべ
て転送されるまでは“終了”状態にならない。
【0120】TAPSプロセスのための図11のプロセ
スは変更なしに用いられる。但し、オーバラップ可能性
が変わり、TAPS命令は、複数のページの転送が予測
される頃に発行するのが望ましい。これにより連続オー
バラップ可能性(時間)が最大になる。このオーバラッ
プ時間の間、次の複数のページの転送をセットアップす
る命令を含めて、どの命令も実行することができる。
【0121】図13、図14のキュー・マネジャのプロ
セスも変更なしに使用できる。
【0122】その他 SPIN/SPOUT、TAPS命令の動作をサポート
するために特殊命令を与えることもできる。例えば、キ
ュー・クリア命令を与えれば、どのキュー要素でも状態
フィールドを使用可能状態(00)にセットし、PTプ
ロセサのプロセスの動作をリセットすることで、図8の
キューをリセット(クリア)することができる。
【0123】さらにまた、SPIN、SPOUT、また
はTAPS命令の実行開始時に、タイムアウトを開始す
ることもできる。これは、タイムアウトが発生する場合
は、キュー要素をすべて使用可能状態にリセット(クリ
ア)することによる。これにより、実行プロセスの間
に、キューが一杯になって次のSPIN/SPOUT命
令を処理できない等、何らかの障害が発生した場合、あ
るいは実行等に影響を与えるハードウェア障害がシステ
ム内に発生した場合に、システムの回復を保証できる。
【0124】
【発明の効果】本発明の非同期ページ転送機構を用いる
ことによって、非同期ページ転送を制御するためのプロ
グラムの割込みが不要となるため、ページ転送と他のC
PU命令の実行をオーバラップさせることができる。
【図面の簡単な説明】
【図1】ページイン開始(SPIN)命令とその一般動
作を表わす図である。
【図2】ページアウト開始(SPOUT)命令とその一
般動作を表わす図である。
【図3】アドレスの連続したN個のページ(実アドレス
または仮想アドレス)を転送するSPIN/SPOUT
命令を表わす図である。
【図4】非同期ページング状態検査(TAPS)命令を
表わす図である。
【図5】本発明の分割ページング例の動作に用いられる
4つの状態を示す図である。
【図6】従来の同期ページング動作と本発明の非同期分
割ページング動作を比較したタイミングチャートであ
る。
【図7】従来の直列同期ページング動作と本発明のオー
バラップ非同期ページング動作を比較したタイミングチ
ャートである。
【図8】実施例に用いられる非同期ページング要求キュ
ー(APRQ)を表わす図である。
【図9】複数の中央プロセサ(CP)、主記憶アレイ
(MS)と主記憶コントローラを備えるシステム・コン
トローラ(SC)、及び拡張記憶アレイ(ES)を備え
る拡張記憶コントローラ(ESC)を含む中央複合電子
装置(CEC)を表わす図である。
【図10】図9に示したCPによるSPINとSPOU
Tの命令の実行例をステップごとに示した流れ図であ
る。
【図11】図9のESとMSとの間のページの転送を制
御するために、図9のESCに置かれたページ転送(P
T)プロセサに用いられる実施例をステップごとに示し
た流れ図である。
【図12】図9に示したCPによるTAPS命令の実行
例をステップごとに示した流れ図である。
【図13】図9に示したSPIN/SPOUTの実施例
に用いられる第1キュー・マネジャの動作ステップを示
した流れ図である。
【図14】図9に示したPTプロセサの実施例に用いら
れる第2キュー・マネジャの動作ステップを示した流れ
図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・ジョン・シュマルツ アメリカ合衆国ニューヨーク州、ワッピン ガーズ・フォールズ、エッジ・ヒル・ドラ イブ 7番地 (72)発明者 ロナルド・モートン・スミス、シニア アメリカ合衆国ニューヨーク州、ワッピン ガーズ・フォールズ、シダー・ミル・ルー プ 15番地 (72)発明者 スーザン・バーバラ・スティルマン アメリカ合衆国ニューヨーク州、ポキプ シ、スタウト・コート 3−11番地 (56)参考文献 特開 平2−291039(JP,A) 特開 平2−85941(JP,A) 特開 平3−40158(JP,A) 特公 平2−41055(JP,B2)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムによって用いられ
    る2つの異なる電子メディア間で、データの各ブロック
    (ページ)の非同期転送を実現しようとする際に、プロ
    グラムの介在を分割する方法であって、 ページ転送を要求するために、(複数の中央プロセサの
    うち)任意の中央プロセサ上のプログラムによって開始
    命令(SPIN/SPOUT)を実行する第1の実行ス
    テップと、 前記開始命令からの情報を、使用可能なキュー要素に格
    納し、該キュー要素の状態をプロセス外アクティブ状態
    に変えるステップと、 第1メディアと第2メディアとの間で、何れかの方向に
    データのブロックを転送するために、ページ転送(P
    T)プロセサによってプロセス外アクティブ状態にある
    キュー要素にアクセスするステップと、 関連するキュー要素にアクセスするために、使用可能な
    中央プロセサ上のプログラムによって検査命令(TAP
    S)を実行し、トークンを取得している先に実行された
    検査命令に関連したキュー要素を検出するために、複数
    のキュー要素内のトークン・フィールドを探索する、第
    2の実行ステップと、 前記関連するキュー要素に示されたブロック転送の状態
    を、前記検査命令を実行する中央プロセサに通知するス
    テップとを含む、 方法。
  2. 【請求項2】データの各ブロック(ページ)の非同期転
    送を実現する際にプログラムの介在を分割する請求項1
    記載の方法であって、 複数のPTプロセサを備えるステップと、 第1メディアと第2メディアとの間で、各PTプロセサ
    がブロックを何れかの方向に転送するために、各PTプ
    ロセサによってプロセス外アクティブ状態にあるキュー
    要素にアクセスするステップと、 前記PTプロセサの1つによってブロック転送が終了し
    た時に、関連するキュー要素の終了状態を指示するステ
    ップとを含む、 方法。
  3. 【請求項3】コンピュータ・システムによって用いられ
    る2つの異なる電子メディア間で、データの各ブロック
    (ページ)の非同期転送を実現しようとする際に、プロ
    グラムの介在を分割する方法であって、 ページ転送を要求するために、(複数の中央プロセサの
    うち)任意の中央プロセサ上のプログラムによって開始
    命令(SPIN/SPOUT)を実行する第1の実行ス
    テップと、 前記開始命令からの情報を、使用可能なキュー要素に格
    納し、該キュー要素の状態をプロセス外アクティブ状態
    に変えるステップと、 第1メディアと第2メディアとの間で、何れかの方向に
    データのブロックを転送するために、ページ転送(P
    T)プロセサによってプロセス外アクティブ状態にある
    キュー要素にアクセスするステップと、 関連するキュー要素にアクセスするために、使用可能な
    中央プロセサ上のプログラムによって検査命令(TAP
    S)を実行する第2の実行ステップと、 前記関連するキュー要素に示されたブロック転送の状態
    を、前記検査命令を実行する中央プロセサに通知するス
    テップと、 ページ転送要求の情報を格納するのに使用できるキュー
    要素のアドレスを取得するために、すべての中央プロセ
    サ(CP)にアクセスできるCPインタフェース位置
    と、ページ転送(PT)プロセサに作業要求を与えるた
    めに、ページ転送の情報を含むキュー要素のアドレスが
    与えられるように、該PTプロセサにアクセスできるP
    Tプロセサ・インタフェース位置とを提供するステップ
    と、 使用可能なキュー要素を検出し、そのアドレスを、前記
    CPインタフェース位置がCPによってアクセスされた
    後に該位置に書き込むために、第1キュー・マネジャを
    実行し、プロセス外アクティブ状態にあるキュー要素を
    検出するために第2キュー・マネジャを実行するステッ
    プと、 前記PTプロセサ・インタフェース位置が前記PTプロ
    セサによってアクセスされた後に、前記キュー要素のア
    ドレスを該位置に書き込むステップとを含む、 方法。
JP4102877A 1991-05-23 1992-04-22 データ・ブロック転送制御方法 Expired - Lifetime JPH0827757B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/704,559 US5386560A (en) 1991-05-23 1991-05-23 Execution of page data transfer by PT processors and issuing of split start and test instructions by CPUs coordinated by queued tokens
US704559 1991-05-23

Publications (2)

Publication Number Publication Date
JPH05173961A JPH05173961A (ja) 1993-07-13
JPH0827757B2 true JPH0827757B2 (ja) 1996-03-21

Family

ID=24830004

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4102877A Expired - Lifetime JPH0827757B2 (ja) 1991-05-23 1992-04-22 データ・ブロック転送制御方法

Country Status (4)

Country Link
US (1) US5386560A (ja)
EP (1) EP0514697A3 (ja)
JP (1) JPH0827757B2 (ja)
CA (1) CA2062135A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0549924A1 (en) * 1992-01-03 1993-07-07 International Business Machines Corporation Asynchronous co-processor data mover method and means
US5724565A (en) * 1995-02-03 1998-03-03 International Business Machines Corporation Method and system for processing first and second sets of instructions by first and second types of processing systems
US5812811A (en) * 1995-02-03 1998-09-22 International Business Machines Corporation Executing speculative parallel instructions threads with forking and inter-thread communication
US6247093B1 (en) * 1995-09-01 2001-06-12 Hitachi, Ltd. Data processing apparatus for executing synchronous instructions prior to executing asynchronous instructions
JPH1091443A (ja) * 1996-05-22 1998-04-10 Seiko Epson Corp 情報処理回路、マイクロコンピュータ及び電子機器
US6182177B1 (en) * 1997-06-13 2001-01-30 Intel Corporation Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues
DE10040974A1 (de) * 2000-08-22 2002-03-14 Giesecke & Devrient Gmbh Verfahren zur virtuellen Vergrößerung des Stacks eines tragbaren Datenträgers
US7454585B2 (en) * 2005-12-22 2008-11-18 International Business Machines Corporation Efficient and flexible memory copy operation
KR20140007990A (ko) 2012-07-09 2014-01-21 삼성전자주식회사 불휘발성 램을 포함하는 사용자 장치 및 그것의 데이터 관리 방법
US10467113B2 (en) * 2017-06-09 2019-11-05 Hewlett Packard Enterprise Development Lp Executing programs through a shared NVM pool

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623022A (en) * 1969-12-29 1971-11-23 Ibm Multiplexing system for interleaving operations of a processing unit
US3725864A (en) * 1971-03-03 1973-04-03 Ibm Input/output control
FR2253420A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4177513A (en) * 1977-07-08 1979-12-04 International Business Machines Corporation Task handling apparatus for a computer system
JPS5455132A (en) * 1977-10-12 1979-05-02 Toshiba Corp Input-output control system
US4224667A (en) * 1978-10-23 1980-09-23 International Business Machines Corporation Command queuing for I/O adapters
US4400773A (en) * 1980-12-31 1983-08-23 International Business Machines Corp. Independent handling of I/O interrupt requests and associated status information transfers
US4476524A (en) * 1981-07-02 1984-10-09 International Business Machines Corporation Page storage control methods and means
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US4888691A (en) * 1988-03-09 1989-12-19 Prime Computer, Inc. Method for disk I/O transfer
US4956771A (en) * 1988-05-24 1990-09-11 Prime Computer, Inc. Method for inter-processor data transfer
KR920006617B1 (ko) * 1988-06-07 1992-08-10 가부시기가이샤 히다찌세이사꾸쇼 멀티프로세서시스템
JPH0241055A (ja) * 1988-08-01 1990-02-09 Canon Inc 通信装置
JP3005626B2 (ja) * 1988-09-21 2000-01-31 株式会社日立製作所 データ処理システムおよびデータ転送方法
JP3110024B2 (ja) * 1989-04-05 2000-11-20 日本電気株式会社 メモリ制御システム
JP2527038B2 (ja) * 1989-07-07 1996-08-21 日本電気株式会社 拡張記憶転送制御方式

Also Published As

Publication number Publication date
US5386560A (en) 1995-01-31
JPH05173961A (ja) 1993-07-13
EP0514697A2 (en) 1992-11-25
CA2062135A1 (en) 1992-11-24
EP0514697A3 (en) 1994-07-20

Similar Documents

Publication Publication Date Title
US6996698B2 (en) Blocking processing restrictions based on addresses
JP3546678B2 (ja) マルチos構成方法
US8572624B2 (en) Providing multiple quiesce state machines in a computing environment
US8234642B2 (en) Filtering processor requests based on identifiers
US8032716B2 (en) System, method and computer program product for providing a new quiesce state
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
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
US8140834B2 (en) System, method and computer program product for providing a programmable quiesce filtering register
EP0955583A2 (en) Context switching technique for processors with large register files
US20060036824A1 (en) Managing the updating of storage keys
JPH03201130A (ja) データ処理システム
EP0372201B1 (en) Method for fetching potentially dirty data in multiprocessor systems
JPH02163835A (ja) 待ち行列又はスタックから要素を除去する方法
JPH03223945A (ja) 仮想記憶管理方法
JP2557199B2 (ja) インターフェース・システムおよび方法
US6668314B1 (en) Virtual memory translation control by TLB purge monitoring
US5893159A (en) Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system
JPH0827757B2 (ja) データ・ブロック転送制御方法
US20090172212A1 (en) System and method for managing input/output requests in data processing systems
US7360213B1 (en) Method for promotion and demotion between system calls and fast kernel calls
JPH1173365A (ja) データ移動操作を最適化する方法
JPH0519179B2 (ja)
JP2022107229A (ja) 情報処理装置、制御方法及び制御プログラム
JPH06295265A (ja) 仮想記憶制御における命令中断情報格納制御方法
JP4780327B2 (ja) パーティション・コンテキスト制御装置及び方法、並びにコンピュータ