JPH0731624B2 - 非同期コプロセッサによるデータ移動方法および装置 - Google Patents

非同期コプロセッサによるデータ移動方法および装置

Info

Publication number
JPH0731624B2
JPH0731624B2 JP4329282A JP32928292A JPH0731624B2 JP H0731624 B2 JPH0731624 B2 JP H0731624B2 JP 4329282 A JP4329282 A JP 4329282A JP 32928292 A JP32928292 A JP 32928292A JP H0731624 B2 JPH0731624 B2 JP H0731624B2
Authority
JP
Japan
Prior art keywords
page
coprocessor
msb
source
ccw
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
JP4329282A
Other languages
English (en)
Other versions
JPH06168179A (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 JPH06168179A publication Critical patent/JPH06168179A/ja
Publication of JPH0731624B2 publication Critical patent/JPH0731624B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想アドレス指定が可
能なページの移動を要求したプロセッサによる命令の実
行と同時に、コプロセッサによって複数のページを移動
する方法および装置に関する。
【0002】
【従来の技術】米国特許第4,476,524号(P0
9−80−009)は、主記憶装置(main sto
rage−MS)とページ記憶装置(page sto
re−PS)に置かれているページを実アドレスで指定
し(実アドレス指定方式)、チャネル・プロセッサの制
御の下でMSとPS間でデータ・ページを非同期にコピ
ーしている。CP(中央プロセッサ)は、チャネル制御
ワード(CCW)で構成されたチャネル・プログラムを
開始するSIO(入出力開始)命令を実行することによ
ってページ転送を開始する。この米国特許第4,47
6,524号では、ページ移動に仮想アドレスを使用で
きないので、仮想アドレス指定方式をその動作方法に無
理に取り入れても、非同期にすることができない。本発
明は、CCWの中のどの実アドレスも使用しないでペー
ジのアドレスを指定している。
【0003】米国特許第4,476,524号では、ペ
ージごとに使用される2個のCCWの一方に入っている
実アドレスを使用して、ページのアドレスを指定してい
る。この特許によれば、最初のCCWはPPI(ページ
・イン準備)かPPO(ページ・アウト準備)のどちら
かであり、2番目のCCWはSIO命令によって開始さ
れる可変長のCCW連鎖の中のページ・コピーCCWで
ある。CPは、チャネル・プログラムが可変数のページ
をPSとMS間でページ転送するのを制御していると
き、その制御と同時に他の命令を実行することが可能で
ある。米国特許第4,476,524号には、CCWプ
ログラムの中で仮想アドレス指定を可能にするために本
発明によって開発された移動仕様ブロック(Move
Specification Block − MS
B)が開示されていない。
【0004】ヨーロッパ特許出願第0 214 870
号(出願人:富士通、優先権主張1985年12月9
日)は、システムの中央プロセッサ上で実行される同期
移動命令を開示し、クレームに記載している。この命令
は、オペランド媒体に依存している。つまり、MSオペ
ランドとESオペランドをもっている。これに対し、本
発明は本発明が目的とする媒体間で媒体依存になってい
ない。上記ヨーロッパ特許出願は、CCWプログラムの
中で仮想アドレス指定を可能にするために本発明によっ
て開発されたMSBを開示していない。
【0005】1989年10月20日出願の米国特許出
願第07/424,797号(PO9−89−018)
は、ページ移動MVPG同期命令を開示しているが、こ
の命令は単一のページを移動するものであり、中央プロ
セッサはページ移動が完了するまで、他のどの命令も実
行することができない。この米国特許出願は、CCWプ
ログラムの中で仮想アドレス指定を可能にするために本
発明によって開発されたMSBを開示していないで、一
度に1つのページだけを移動するものである。
【0006】
【発明が解決しようとする課題】上述したように、どの
従来技術にも、CCW(チャネル制御ワード)プログラ
ムの中で仮想アドレス指定を可能にするためのMSB
(移動仕様記載ブロック)が採用されていない。
【0007】そこで本発明は、コプロセッサが主記憶装
置(MS)と拡張記憶装置(ES)のような、同一また
は異なる媒体の異なるロケーション間で、仮想アドレス
指定方式によってデータを複数ページ単位で非同期に移
動することを可能にすることを目的とする。
【0008】
【課題を解決するための手段】このような目的を達成す
るために、本発明は、サービスを要求したプロセッサと
コプロセッサによるそのサービスの実行との間の非同期
インタフェースとなるコプロセッサを提供する。
【0009】本発明は、アプリケーション・プログラム
(マルチプロセッサ・システム内の任意の中央プロセッ
サ上で実行される)とそのプログラムから要求されたサ
ービスのコプロセッサによる実行との間のインタフェー
スとなるコプロセッサを提供する。
【0010】本発明は、ある組のページの移動を要求し
たプロセッサによる実行の継続と同時並行して、当該組
のページの移動を非同期に制御するコプロセッサを提供
する。
【0011】本発明は、ある組のページの移動を要求し
たプロセッサによる実行の継続と同時並行して、同一媒
体内で、あるいは異種媒体間で当該組のページの移動を
非同期に制御するコプロセッサを提供する。
【0012】本発明は、サービスを要求したプロセッサ
と、所定の仮想アドレスを使用したコプロセッサによる
そのサービスの実行との間のインタフェースとなる非同
期コプロセッサを提供する。
【0013】本発明は、サービスを要求したプロセッサ
と、独特のデータ構造の中の所定の仮想アドレスを使用
したコプロセッサによるそのサービスの実行との間のイ
ンタフェースとなる非同期コプロセッサを提供する。
【0014】本発明は、サービスを要求したプロセッサ
と、実アドレス指定方式を使用する入出力チャネル・プ
ログラムを介してアクセスされる独特のデータ構造の中
の所定の仮想アドレスを使用したコプロセッサによるそ
のサービスの実行との間で、インタフェースとなる非同
期コプロセッサを提供する。
【0015】請求項1に記載の発明は、データ処理シス
テムにおける非同期データ移動装置であって、(a)少
なくとも1つの中央プロセッサ(CP)、システム・メ
モリ(MS)、および入出力(I/O)システムと、
(b)非同期コプロセッサに対する作業要素を生成する
ためにデータ移動命令を実行し、そのあとで他の命令を
実行するためのCP実行手段と、(c)作業要素を取り
出して、移動仕様ブロック(MSB)へのアドレスを指
定したコプロセッサ・プログラムを開始するためのコプ
ロセッサ手段と、(d)コプロセッサ内にあって、1つ
または2つ以上のデータ・ページをソース・ロケーショ
ンからシンク・ロケーションへ移動することを制御する
手段とを備え、前記MSBは、移動すべき1つまたは2
つ以上のページが置かれているソース・ロケーションを
指定したソース仕様とソース・ページが移動される宛先
のシンク・ロケーションを指定したシンク仕様とを有
し、前記CPはコプロセッサが1つまたは2つ以上のペ
ージを移動している間に他の命令を実行する機能を有す
ることを特徴とする。
【0016】請求項2に記載の発明は、請求項1に記載
したデータ処理システムにおける非同期データ移動装置
において、さらに、(a)2つ以上の媒体から構成さ
れ、各媒体は独立してアドレス指定が可能であるシステ
ム・メモリと、(b)MSBの中にソース媒体とシンク
媒体を指定し、ソース・ページとシンク・ページが、媒
体内に置かれているロケーションを指定するためのMS
B初期設定手段とを備えたことを特徴とする。
【0017】請求項3に記載の発明は、請求項1に記載
したデータ処理システムにおける非同期データ移動装置
において、さらに、前記媒体の少なくとも1つに置かれ
ているページのロケーションを仮想アドレスで指定する
ことを可能にするMSB初期設定手段を備えたことを特
徴とする。
【0018】請求項1に記載したデータ処理システムに
おける非同期データ移動装置において、さらに、MSB
の中のフラグ・フィールドを解釈して、各ソース・ペー
ジと各シンク・ページが置かれている媒体を選択するた
めの手段をコプロセッサに設けてもよい。
【0019】請求項1に記載したデータ処理システムに
おける非同期データ移動装置において、さらに、各ソー
ス・ページと各シンク・ページに対してMSBの中に実
アドレスまたは仮想アドレスを指定するためのMSB初
期設定手段を備えてもよい。
【0020】請求項1に記載したデータ処理システムに
おける非同期データ移動装置において、さらに、MSB
の中のフラグ・フィールドを解釈して、ソース・ロケー
ションに置かれた1つまたは2つ以上のページをシンク
・ロケーションに複写する回数を指定するための手段を
コプロセッサに設けてもよい。
【0021】請求項1に記載したデータ処理システムに
おける非同期データ移動装置において、さらに、同じ媒
体であるソース媒体とシンク媒体とを備えてもよい。
【0022】請求項4に記載の発明は、請求項1に記載
したデータ処理システムにおける非同期データ移動装置
において、さらに、異なる媒体であるソース媒体とシン
ク媒体を備えたことを特徴とする。
【0023】請求項5に記載の発明は、少なくとも1つ
の中央プロセッサおよびシステム・メモリを備えたデー
タ処理システムにおける非同期データ移動装置であっ
て、(a)作業待ち行列に置かれる作業要素を生成し、
作業要素が作業待ち行列上に存在することをコプロセッ
サに通知するためにデータ移動命令を実行するプロセッ
サ実行手段と、(b)通知したプロセッサによって開始
されて、少なくとも1つの移動仕様ブロック(MSB)
をもつコプロセッサ・ページ転送プログラムのロケーシ
ョンを突き止めるために作業待ち行列をアクセスして、
作業要素を取り出す制御プログラムをもつ非同期コプロ
セッサ手段と、(c)コプロセッサに置かれていて、M
SBに含まれる仮想アドレスを、要求されたソース・ア
ドレスおよびシンク・アドレスがシステム・メモリに置
かれているロケーションと直接アドレス指定関係をもつ
アドレスに変換するための手段とを備え、前記MSB
は、転送すべきソース・ページのロケーションを指定し
たソース仕様およびソース・ページが転送される宛先の
シンク・ページのロケーションと移動すべきページのカ
ウントを指定したシンク仕様およびページ転送の特性を
制御するためのフラグ・フィールドを有することを特徴
とする。
【0024】請求項6に記載の発明は、請求項5に記載
した非同期データ移動装置において、さらに、ソース・
ロケーションとシンク・ロケーションの第1媒体または
第2媒体またはその両媒体を指定するための標識をもつ
フラグ・フィールドを備えたことを特徴とする。
【0025】請求項7に記載の発明は、請求項5に記載
した非同期データ移動装置において、さらに、フラグ・
フィールドによって第1媒体として指定される主記憶機
構(MS)と第2媒体として指定される拡張記憶機構
(ES)とを備えたことを特徴とする。
【0026】請求項5に記載した非同期データ移動装置
において、さらに、ソース・ロケーションまたはシンク
・ロケーションは実アドレスを含んでいるか、仮想アド
レスを含んでいるかを指定するための標識をもつフラグ
・フィールドを備えてもよい。
【0027】請求項5に記載した非同期データ移動装置
において、さらに、関連のソース・ロケーションまたは
シンク・ロケーションが置かれている仮想アドレス空間
を指定するためのフィールドを各MSB仕様に設けても
よい。
【0028】請求項5に記載した非同期データ移動装置
において、さらに、関連のソース・ロケーションまたは
シンク・ロケーションが置かれている仮想アドレス空間
を指定するためのセグメント・テーブル記述子(ST
D)フィールドを各MSB仕様に設けてもよい。
【0029】請求項5に記載した非同期データ移動装置
において、さらに、MSBソース仕様またはシンク仕様
またはその両方に指定されている仮想アドレスを変換す
るための変換テーブルのアドレスが入っているMSBを
備えてもよい。
【0030】請求項5に記載した非同期データ移動装置
において、さらに、転送すべきデータ・ページのロケー
ションを指定した1つまたは2つ以上のMSBを含んで
いるコプロセッサ・プログラムへのアドレスを得るため
に作業待ち行列をアクセスするようにコプロセッサを非
同期に制御するためのデータ移動命令を備えてもよい。
【0031】請求項5に記載した非同期データ移動装置
において、さらに、仮想アドレスで指定したソース・ペ
ージまたはシンク・ページのためのものであって、オペ
ランドがストアされていて、ページ・テーブル項目に入
っているアドレスが適用される媒体を指定しているペー
ジ・テーブル項目フィールドを備えてもよい。
【0032】請求項5に記載した非同期データ移動装置
において、さらに、ソース・ロケーションからどのペー
ジも転送することなく、シンク・アドレスに置かれたペ
ージに埋込み文字を重ね書きするかどうかを指定するた
めのフラグ・フィールドを各MSBに設けてもよい。
【0033】請求項8に記載の発明は、少なくとも1つ
の中央プロセッサおよびシステム・メモリを装備したデ
ータ処理システムにおける非同期データ移動装置であっ
て、(a)作業待ち行列に置かれる作業要素を生成し、
作業要素が作業待ち行列上に存在することをコプロセッ
サに通知するためにデータ移動命令を実行するプロセッ
サ実行手段と、(b)通知したプロセッサによって開始
されて、少なくとも1つの移動仕様ブロック(MSB)
をもつコプロセッサ・ページ転送プログラムのロケーシ
ョンを突き止めるために作業待ち行列をアクセスして、
作業要素を取り出す制御プログラムをもつ非同期コプロ
セッサ手段と、(c)MSBのロケーションを指定した
少なくとも1つのチャネル制御ワード(CCW)を有
し、システム内の仮想アドレスまたは実アドレス・ロケ
ーションに置かれた1つまたは2つ以上のデータ・ペー
ジをシステム内で転送することを制御するコプロセッサ
・ページ転送プログラムとを備え、前記MSBは、転送
すべきソース・ページのロケーションと移動すべきペー
ジ・カウントを指定したソース仕様およびソース・ペー
ジが転送される宛先のシンク・ページのロケーションを
指定したシンク仕様およびページ転送の特性を制御する
ためのフラグ・フィールドを有することを特徴とする。
【0034】請求項9に記載の発明は、請求項8に記載
した非同期データ移動装置において、さらに、MSBの
ソース仕様域とシンク仕様域に置かれていて、それぞれ
の域の中のアドレスがシステム内の主記憶機構(MS)
にあるか、拡張機構(ES)にあるかを指定するための
フラグ・フィールドを備えたことを特徴とする。
【0035】請求項10の記載の発明は、少なくとも1
つの中央プロセッサ(CP)、システム・メモリ(M
S)、および入出力(I/O)システムをデータ処理シ
ステムに用意するデータ処理システム用の、非同期デー
タ移動方法であって、(a)CPプログラムの中の非同
期データ移動命令を実行して、待ち行列上に置かれる作
業要素を生成するステップと、(b)要素が待ち行列に
追加されることをCPからコプロセッサに通知するステ
ップと、(c)コプロセッサによって待ち行列からアク
セスされる各待ち行列要素ごとに、ページ移動操作をコ
プロセッサに実行させるステップと、(d)各要求が完
了または中止したときに、コプロセッサからCPに通知
するステップと、(e)待ち行列に作業要素が残ってい
ないときに、コプロセッサを待ち状態にするステップ
と、(f)作業要素が待ち行列に置かれることを示す信
号がCPから送られたときに、コプロセッサを待ち状態
から解除するステップと、(g)チャネル制御ワード
(CCW)をもつコプロセッサ・プログラムを開始し、
一部のCCWは少なくとも1つの移動仕様ブロック(M
SB)へのアドレスを指定しており、各MSBは転送す
べきページが置かれているシステム内のソース・ロケー
ションと該ソース・ページが転送される宛先のシンク・
ロケーションを指定しており、1つまたは2つ以上の作
業要素が待ち行列に置かれているとき1つまたは2つ以
上のページ移動を制御するステップと、(h)コプロセ
ッサからメモリ・コントローラに対してページ・フェッ
チ・コマンドとページ・ストア・コマンドが出される
と、それを受けて少なくとも1つのメモリ・コントロー
ラにメモリ・フェッチとメモリ・ストアを制御させるス
テップと、(i)コプロセッサの制御の下でページ転送
プログラムが完了したときCPに信号を出して、ページ
転送が行われたCPプログラムに完了通知するステップ
と、(j)現在または最後の操作の現在状態の情報を要
求した別のCCWタイプに応答するために、アドレス、
カウント、およびエラー通知を収めている内部コプロセ
ッサ・レジスタの内容を与えるステップと、(k)コプ
ロセッサのタイプ、モデルおよび機能に関する情報を要
求した別のCCWタイプに応答するステップとを備えた
ことを特徴とする。
【0036】請求項11に記載の発明は、請求項10に
記載したデータ処理システム用の非同期データ移動方法
において、コプロセッサは、さらに、前記コプロセッサ
・プログラムの中の最後のCCWを通してロケーション
が指定されたMSBがリストの中の最後のMSBである
ことを示しているとき、該コプロセッサ・プログラムの
中の次のCCWをフェッチすることを特徴とする。
【0037】請求項11に記載したデータ処理システム
用の非同期データ移動方法において、コプロセッサは、
さらに、MSBの中の連鎖フィールドのオフ状態を検出
して、MSBが現MSBリストの中の最後のMSBであ
ることの通知を受け取るステップとを備えてもよい。
【0038】請求項11に記載したデータ処理システム
用の非同期データ移動方法において、コプロセッサは、
さらに、現CCWの中の連鎖フィールドのオフ状態を検
出して、CCWが現コプロセッサ・プログラムの中の最
後のCCWであることの通知を受け取るステップと、C
CWの中のアドレスをインクリメントまたは転送してコ
プロセッサ・プログラムの次のCCWをアクセスするス
テップとを備えてもよい。
【0039】
【作用】本発明は、ESとMS内、両方がES内、ある
いは両方がMS内の異なるロケーション(記憶場所)間
で、複数ページ単位のデータの移動を非同期に制御する
ために、コプロセッサが仮想アドレス指定方式を使用す
ることを可能にしている。コプロセッサは、ページ移動
を要求した中央プロセッサによる実行の継続と並行し
て、非同期ページ移動を制御するために使用される。こ
の結果、CPで他の命令が実行されているとき、それと
同時に、1つのCP命令で非常に多数のページを効率よ
く移動することが可能である。さらに、コプロセッサに
よるページ移動は、同一コンピュータ・システム内の異
種媒体間で行うことが可能である。
【0040】移動すべき各ページのソース(取出し元)
とシンク(宛先)ロケーションの仮想または絶対アドレ
スは、MSB(移動仕様ブロック)によって指定され
る。本発明の1実施例によれば、コプロセッサは「非同
期データ・ムーバ(Asynchronous Dat
a Mover − ADM)」と呼ばれ、ページの移
動をMSBによって制御する。1組のMSBは特殊タイ
プのチャネル制御ワード(CCW)によってアドレス指
定され、1つまたは2つ以上のCCWからなるチャネル
・プログラムは1つまたは2つ以上の組のMSB(CC
Wごとに1組)をアドレス指定して、任意の数のページ
の移動を制御する。CCWは実アドレス指定方式(仮想
アドレス指定方式ではない)を使用して各組のMSBの
アドレスを指定する。特殊なADMサブチャネル(SC
H)に対する開始サブコマンド(SSCH)命令は、A
DMコプロセッサを開始するためにCPによって実行さ
れ、1つまたは2つ以上の組のMSBによって制御され
たページ転送を開始する。SSCH命令は、ADMサブ
チャネルと、MSB CCWプログラム(そのプログラ
ムの最初のCCWのロケーション)を指しているORB
(操作要求ブロック)とを指定する。例えば、CPの汎
用レジスタ(GR)1は関係するサブチャネルのIDを
格納しており、他方、SSCH命令の中のアドレス(D
2、B2)は操作要求ブロック(ORB)のアドレスを
指定している。ORBはチャネル・プログラムのアドレ
スを収めている。
【0041】標準のESA/390の入出力操作と同様
に、SCH(サブチャネル)は、呼出し側プログラム
(この例では、制御プログラム)と未処理のまま残って
いる特定の非同期要求とを論理リンクで結ぶ働きをす
る。従って、要求をコプロセッサに伝えるためにN個の
特殊ADM SCHが割り振られている場合には、操作
完了割込みは操作開始のために使用されたSCHを識別
することによって、どの操作が完了したかを、その割込
みと一緒に提供された情報の一部として示している。制
御プログラムはどの非同期操作が各ADM SCHに割
り当てられたかを記録にとっている。SCHで一度に未
処理のまま残しておける操作は1つだけである。従来技
術によれば、ADM SCHに対するSSCH命令によ
って開始されたCCW連鎖によるMSBの実アドレス指
定の制御の下でページの仮想アドレス指定を行うため
に、MSBを使用することが教示されていない。
【0042】MSB命令で可能な仮想アドレス指定は、
米国特許出願第07/424,797号(PO9−89
−018)に記載されている公知ページ移動MVPG命
令とは異なるものである。この米国特許出願では、ペー
ジ移動を中央プロセッサ(CP)の動作と同期して行う
ことが必要である。つまり、CPは、CPが要求したペ
ージ移動を実行している間は、他の命令を実行できない
ようになっている。これに対して、MSBコプロセッサ
は、ページ移動を要求したプロセッサが他の命令を実行
している間に、任意の数のページの移動を非同期に制御
する。ページのアドレス指定は仮想または絶対アドレス
指定が可能である。
【0043】MSB内のソース仕様とシンク仕様におけ
るフラグ・フィールドは、複数のフラグ・ビットから構
成され、これらのビットは次のことを定義する。つま
り、関連のソース媒体またはシンク媒体、指定されたア
ドレスを仮想アドレスとして変換するか、絶対アドレス
として取り扱うかどうか、ソース・ページの複写をシン
ク・ロケーションで行うかどうか、シンク・ページを所
定の文字、例えば、全部ゼロ・データをそこに書くこと
によって消去させるかどうか、などである。
【0044】MSBのフラグ・フィールドに仮想アドレ
ス指定方式が指定されたときは、MSBのソースまたは
シンク部分(または両方)には、関連のソースまたはシ
ンク・ページが置かれている仮想アドレス空間を指定し
たセグメント・テーブル記述子(STD)が入ってい
る。各MSBのオフセット・フィールドには、指定され
たアドレス空間内の仮想アドレスが入っているか、ある
いはMSBのフラグ・フィールドに実アドレスが指定さ
れていれば、実アドレスが入っている。実アドレス指定
方式がMSBのフラグ・フィールドに指定されたとき
は、STDフィールドは無視される。
【0045】以上に説明したように、MSBは、指定さ
れた同一の内部媒体内で(例えば、ソースとシンクが共
にMSかESに置かれている場合)または異種媒体間で
(例えば、ソースはMSかESに置かれ、シンクは別の
媒体に置かれている場合)移動すべきページのソース・
ロケーションとシンク・ロケーションを指定するために
使用されるのが一般的である。
【0046】さらに、本発明によれば、非同期インタフ
ェースとなるコプロセッサを介してプロセッサは、エレ
クロトニック記憶階層内の任意の場所に置かれたページ
・フレーム群を、要求側のプロセッサが正常の実行を続
けている間にゼロにリセットすること(クリアするこ
と)を要求することができる。
【0047】ゼロ化・リセット制御ビット(Z)がMS
Bのソース仕様内のフラグ・フィールドとして与えられ
ているときは、移動操作は、ソース・ページをアクセス
することを禁止し、シンク・ページだけをアクセスする
ように変更されて、シンク・ページの内容全体にゼロな
どの所定の埋込み文字を書き込むことを制御する。シン
ク・ページのZビットは意味をもっていない。
【0048】さらに、本発明が提供する非同期インタフ
ェースにより、プロセッサは特定のページ(または特定
の組のページ)をエレクトロニック記憶階層内の任意の
場所に置かれているページ・フレーム群に複写すること
を要求し、一方で要求側のプロセッサは正常の実行を続
けることができる。シンク・ロケーションに複写を行う
には、特定のソース・ページを一度だけフェッチ(取り
出す)する必要があり、フェッチされたソース・ページ
は複写すべきシンク・ロケーションに何度もコピーされ
る。複写機能(R)が指定されたときは、ソース・ペー
ジは各シンク・ページに複写される。MSB内のページ
・カウントは、複写されるソース・ページの数を制御す
る。シンク仕様中の複写カウント・フィールドは、この
複写が行われる回数を制御する。
【0049】MSB命令における仮想アドレス指定は、
米国特許出願第07/424,797(PO9−89−
018)に記載されている公知ページ移動MVPG命令
とは異なるものである。この米国特許出願によれば、ペ
ージ移動は中央プロセッサ(CP)の動作と同期して制
御されている。つまり、CPは、CPが要求したページ
移動が行われている間、どの処理も行うことができない
ようになっている。これに対して、MSBコプロセッサ
は、他の処理を要求側CPが実行している間に、仮想ア
ドレス指定された任意の数のページ移動を非同期に制御
することが可能である。非同期ページ転送に対するCP
要求は、任意のCPアプリケーション・プログラムがシ
ステム制御プログラムにサブチャネル開始(SSCH)
命令(ESA/390 Principles of
Operations、資料番号SA22−7201−
00(IBM社発行)に記載のESA/390アーキテ
クチャに定義されている)を実行するように要求するこ
とによって行われる。
【0050】
【実施例】以下、図面参照して本発明の実施例を詳細に
説明する。
【0051】ADMコプロセッサ環境 図1はコンピュータ・電子的複合(CEC−Compu
ter Electronic Complex)を示
した概略図であり、CECは、エレクトロニック記憶階
層を共用する複数の中央プロセッサ(CP)1〜Nによ
って実行されるプログラムにおける非同期ページ移動要
求にサービスするADMコプロセッサ20を装備してい
る。SCEは従来技術の公知IBM ES/9000シ
ステムの一部分であり、記憶装置へのアクセスを制御す
る。SCEはCEC内のすべての要素に通知するための
シグナル機構を備える。SCEは、本発明の好適実施例
にとって重要な次のような機能を行う。
【0052】1.ワード境界上で主記憶機構(MS)を
記憶アクセス(フェッチとストア)する。
【0053】2.ページ境界で拡張記憶機構(ES)を
記憶アクセス(フェッチとストア)して、1回のアクセ
スで1ページのデータを転送する。
【0054】3.MSからCPキャッシュの外に置かれ
たMSまたはESへの、またはESからCPキャッシュ
の外に置かれたMSまたはESへのページ転送を制御す
る。(各CPは1つまたは2つ以上の私用キャッシュお
よび他のCPと共用されるキャッシュをもつことができ
る。) 4.記憶要求の中のZビットの制御の下で、記憶域に置
かれた別のページから文字“ゼロ”のデータのページを
転送することなく、あるいはどのCPキャッシュにも影
響を与えないで、MSまたはESのページをゼロにす
る。
【0055】5.任意の要素がSCEバスを経由してC
EC内の他の要素に通知することを可能にするシグナル
機構。
【0056】CEC内の各CPはアプリケーション・プ
ログラムを実行すると共に、CECシステムのハードウ
ェア資源とソフトウェア資源を管理するシステム制御プ
ログラムを実行する。特定のCPのための特定のプログ
ラムを構成する命令は、そのプログラムが必要とする特
定のデータと共に、MSからCPキャッシュにロードさ
れる。CPは代表的なマルチ処理方式で動作し、データ
の干渉はSCEによって制御される。
【0057】アプリケーション・プログラムとサブシス
テム・プログラムは、必要とする大量のデータを一時的
にストアしておくためにESを使用する。このデータは
プログラムが使用できるようにするには、MSに移して
おかなければならない。システム制御プログラムもES
をページング記憶装置として使用し、他のプログラムと
そのプログラムが使用するデータにMSを割り振る必要
が起こったとき、データ/プログラムのページをESと
MS間で移動してMSを解放する。プログラムは、次の
2目的のいずれかのためにESを使用するのが一般的で
ある。プログラム制御を受けるデータのキャッシュとし
ての使用と、中間作業ファイルとしての使用である。E
Sからページを取り出すときのアクセス時間と従来のチ
ャネル上のDASD装置(直接アクセス記憶装置)から
ページをアクセスする時間には、非常に大きな不均り合
いがあるので、アクセスしようとするデータが特定のデ
ータ・オブジェクトまたは目的のために割り振られたM
Sに収まらないような場合に、ESを効率的な記憶媒体
として使用することとできる。プログラミング・プロセ
スでの一時作業ファイルがMS内にその作業ファイルの
ために割り振ることができるサイズを越えるが、通常は
もっと大きなESには収まるような場合には、ESを記
憶装置として使用すると、プロセスの実行時間が大幅に
短縮される。データ転送がCECのCPに対し(ページ
移動(MVPG)命令を使用した場合などのように)同
期して行われるのではなく、非同期に行われる場合に
は、実行時間が短縮すると共に、プロセッサ使用時間が
大幅に減少する。MVPGのシナリオでは、プロセッサ
は、各データ・ページが移動している間待たされること
になるが、ADM非同期のシナリオでは、プロセッサは
データ移動と同時に他の命令を実行する。これは、ペー
ジ移動がコプロセッサの制御下に置かれているためであ
る。
【0058】プログラムのいくつかのコンポーネントが
同じデータを処理する必要があるが保全性や安全保護、
アルゴリズムの理由から、同じデータのコピーを別々に
とって、保管しておかなければならないとき、アプリケ
ーション・プログラムは、あるMSバッファから別のM
Sバッファへの非常に多数のデータ・ページのコピーを
よく行う。従って、アプリケーションやプログラミング
・サブシステム、制御プログラムなどは、CEC内のA
DM機能を使用すれば、CP使用時間のオーバヘッドを
低く抑えて、MS内、ES内、またはESとMS間でデ
ータ・ページを移動することができる。
【0059】命令とデータを処理するため、およびシス
テムの他の部分と通信するために、CPはデータと信号
からなる記憶コマンドを、SCEにつながりCPとSC
Eとを結ぶバス上に送出する。データと命令は、任意の
プロセッサが記憶域フェッチ・コマンドをSCEに送る
と、MSからフェッチされる。同様に、データは、記憶
域ストア・コマンドをデータと一緒にSCEに送ると、
MSにストアされる。CEC内の要素間の通知は、プロ
セッサが受信側要素のIDと一緒にシグナル・コマンド
をSCEに送ることによって行われ、SCEシグナル制
御ロジックはこのシグナルを正しい受信側要素に転送す
る。
【0060】図1において、MS 23はデータおよび
システムによって実行可能なプログラムの格納部であ
る。データ・ラインはMS内でCPによってSCE機能
を通してアクセスされる。CPは、アクセスされたデー
タ・ライン内の任意のバイト、ワード、またはワード群
をアクセスすることができる。複数のCPはMS内の割
振り域を同時並行にフェッチまたはストアすることがで
き、これらのCPによるアクセスは、公知技術で説明さ
れているSCE一貫性制御機能によって管理される。
【0061】ハードウェア記憶域(HWA)26は物理
的にはMSの一部であるが、HWAはマイクロコードあ
るいはハードウェアの制御の下でのみアクセス可能であ
る(任意のCP上で実行されるアプリケーション・プロ
グラムや制御プログラムがアクセスすることはできな
い)。HWAには、システム構成制御ブロック、作業待
ち行列、割込み待ち行列、サブチャネル制御ブロック、
その他CP、チャネルおよびADM機能のための連絡域
が置かれている。
【0062】ES 24はページ単位でのみアクセス可
能なデータをページ単位でストアしている。ESはMS
よりも何倍ものデータをストアすることができ、CPに
よる実行のためにMS内で即時に必要としないデータを
保管しておく格納部である。ESは例えば、バックアッ
プ・バッファ、ページング記憶装置、および一時データ
記憶装置として使用される。SCEはMSおよびESの
ためのコントローラを備える。さらに、SCEはMSバ
スとESバス、およびSCEとMSまたはES間のデー
タ移動とMSとES間のページのデータ移動を制御する
ためのロジックも備える。他のページ・サイズも可能で
あるが、本発明の好適実施例では、ページ単位は4キロ
バイト(KB)になっている。SCEとMSおよびES
とを結ぶバスは、概念的には、1ページ中の全ビットを
並列に扱うのに十分な幅になっているが、現在のMSバ
スとESバスはハードウェアとコストの制約から1ペー
ジのビット数より小さくなっている。現在のバス構築で
は、コスト・パフォーマンスの評価を基準にして、記憶
装置との間で受け渡しされる1回の転送の幅がライン・
サイズとして選択される。ESとの間の転送のために選
択されたライン・サイズは、MSとの間の転送のために
選択されたライン・サイズと異なる場合があるが、実際
に異なる場合には、一般的には、例えば、2倍、4倍と
いったように、ESライン・サイズをMSライン・サイ
ズの倍数にすることが好ましい。バス構築に関係なく、
プログラムはESとの間のフル・ページ転送だけを指定
できるのに対し、MSは該当する命令でバイト・レベル
でアドレスを指定することが可能である。SCEならび
にMSおよびESコントローラは、MSとESをCP、
コプロセッサ、入出力プロセッサ、および入出力チャネ
ルがアクセスできるようにする。
【0063】入出力チャネル・サブシステム22は、M
Sと、入出力制御装置および入出力装置間との間のデー
タ転送を制御するチャネル・プログラム(これはMSに
置かれているCCWの集まりである)を実行することに
よって、システムの入出力機能を提供する。
【0064】ADM CCWリスト−図2 図2は、MSB(移動仕様ブロック)のリストがADM
SSCH(非同期データムーバ 開始サブコマンド)
命令の実行を通してどのようにアクセスされるかを示し
たものである。ADM SSCH命令は間接的にADM
20を呼び出し、非同期実行のためにADM CCW
(チャネル制御ワード)リスト31とアドレス指定した
MSBをADM 20に引き渡すことによって、ページ
移動操作を実行させるものである。この命令の使用は、
例えば、制御プログラムのような特権プログラムに制限
されている。図3は、特有のADM MSB(移動仕様
ブロック)の好適実施例を示している。
【0065】図2に示すように、ADM CCW(チャ
ネル制御ワード)リスト31と、1つまたは2つ以上の
関連MSBリスト32は、その正しい実行のためにこれ
らを必要とするADM SSCH命令の実行に先立っ
て、MS(主記憶機構)にストアされる。このストア
は、ADMコプロセッサが要求されたページ移動操作を
実行するために最終的にこれらのリストを要求した時点
で、ADM SSCH(開始コマンド)命令を要求した
プログラムの要求を受けて行われる。
【0066】ADM CCWリスト31は、例えば、A
DM CCW 1〜ADM CCWKといったように、
任意の個数のMSBを含んでもよく、および、リスト3
1は1個だけのADM CCWを含んでもよい。各AD
M CCW 31は、1つのMSBリスト32のアドレ
スを指定している(つまり、リストを指している)。
【0067】各MSBリスト32は、例えば、MSB
1〜MSB eといったように、任意の個数のMSBを
含んでもよく、および、どのMSBリストも、MSBを
1個だけ含んでもよい。1つのリスト32の中のMSB
はMSの連続するロケーションに置かれている。しか
し、異なるMSBリスト32は、リスト31内のそれぞ
れのADM CCWによってアドレス指定された非連続
のMSロケーションに置かれている。MSBリストは、
1つのADM CCW(これは、それぞれのMSBリス
トを指す)によって制御されるページ移動のすべてを指
定する。CCWプログラムには2つの以上のADM M
OVE CCWを、従って2つ以上のMSBリストを、
含めることが可能である。
【0068】どのMSBリストの場合も、そこに含まれ
る各MSBは、ソース・ロケーション(ソース仕様によ
って定義されている)からシンク・ロケーション(シン
ク仕様によって定義されている)へ1または2以上のペ
ージをコピーすることを制御する。各ソース・ロケーシ
ョンまたはシンク・ロケーションはES(拡張記憶機
構)またはMS(主記憶機構)に置かれている場合もあ
れば、両方がMSにまたはESに置かれている場合もあ
る。これらのロケーションは絶対アドレスとして指定す
ることも、仮想アドレスとして指定することも可能であ
る。
【0069】MSB構造−図3 図3はMSB(移動仕様記載ブロック)の好適実施例を
示したもので、MSBは2つの部分からなり、各部分
は、それぞれの仕様によって表されたページ転送のため
のソース・ロケーションとシンク・ロケーションのアド
レスを指定する。
【0070】仕様のソース部分はワード0−1とワード
2−3で示される。仕様のシンク部分はワード4−5と
ワード6−7で示される。
【0071】ワード0−1はフラグ・フィールド、ペー
ジ・カウント・フィールド、およびSTDフィールドを
持つ。ワード2−3はオフセット・フィールドを持つ。
ワード4−5はフラグ・フィールド、複写カウント・フ
ィールド、およびSTDフィールドを持つ。ワード6−
7はオフセット・フィールドを持つ。
【0072】MSBのソース仕様とシンク仕様の両方で
使用される各種フィールドの意味について、以下で説明
する。
【0073】ページ・カウント(CNT)フィールド
は、ページ群の中でこのMSBによって移動するように
指定された連続ページの数を収める。ページ移動操作の
ときは、このフィールドはソース仕様とシンク仕様の両
方に適用される。しかし、複写のときは、ページ・カウ
ントはソース仕様によってアドレス指定されたページ数
であり、これが複写の単位となる。行うべき複写回数
は、シンク仕様の中の複写カウント・フィールドに指定
されている。従って、オーバライト(重ね書き)される
シンク・ページの総数はページ・カウントと複写カウン
トの積である。例えば、同一のページを50回複写する
場合は、ページ・カウント・フィールドは値が1とな
り、複写カウント値は50となる。他方、8ページのデ
ータ構造を10回複写する場合は、ページ・カウント・
フィールドは値が8となり、複写カウントは10とな
る。この場合は、シンク・ロケーションに置かれている
30ページがオーバライトされる。ソースのZフラグが
1の場合は、ソース・カウント・フィールドは、シンク
・ページのすべてのバイトにゼロを書く、シンク・ロケ
ーションの連続ページの数を指定している。
【0074】フラグ・フィールドのオペランドが仮想ア
ドレス指定方式を指定している場合には、STDフィー
ルドは、この仕様の中の各ページの仮想アドレスを変換
するために使用されるセグメント・テーブル記述子を収
めている。STDは、ESA/390 Princip
les of Operation(IBM資料)には
セグメント・テーブル起点(STO)とセグメント・テ
ーブル長が入るものとして定義されている。STOは仮
想ページ・アドレスのアドレス変換で使用されるアドレ
ス空間を定義するセグメント・テーブルの実アドレスで
ある。
【0075】オフセット・フィールドは、MSBの中の
この仕様によって移動されるページ群の最初のページの
アドレスを収めている。オフセット・フィールドがもつ
意味は、V、M、およびEフラグ・ビット(またはその
いずれか)の設定状態によって決まる。すなわち、次の
通りである。
【0076】V=1ならば、オフセット・フィールド
は、STDフィールドにSTDで定義された仮想空間内
の仮想アドレスになっている。この場合には、Mビット
とEビットは無視される。媒体とその媒体内のアドレス
は、米国特許出願第07/424,797号に定義され
ているようにページ・テーブル項目に指定されている。
【0077】V=0およびM=1ならば、オフセット・
フィールドは絶対MSアドレスになっている。
【0078】V=0およびM=1ならば、オフセット・
フィールドはESブロック番号が入っており、これは実
アドレスである。
【0079】フラグ・フィールドには次のようなフラグ
・ビットが入っている。つまり、C、Z、V、M、E、
およびRである。各フラグ・ビットはそれぞれがフラグ
機能をもち、その意味については、以下で説明する。
【0080】Cは最終MSBフィールドである。C=0
ならば、このMSBは現CCWのセットの中の最終MS
Bである。C=1ならば、このMSBは現CCWのセッ
トの中の最終MSBではなく、次のMSBがこのMSB
のあとに続くMS内の次の連続バイトに置かれている。
Cは、ソース・フラグ仕様中でのみ指定され、シンク・
フラグ仕様中では無視される。
【0081】Zはゼロ書込み制御フラグ・ビットであ
る。Z=1ならば、このMSBによって指定されたソー
ス・ページは無視され(コピーされない)、ゼロ・ビッ
トが指定されたシンク・ページに書き込まれる。Zはソ
ース・フラグ仕様の中でのみ指定され、シンク・フラグ
では無視される。
【0082】Vは仮想フラグ・ビットである。V=1な
らば、フラグ・ビットMとEは無視され、およびオフセ
ット・フィールドは、STDフィールドで定義された空
間内でこのMSBによってアクセスされるページの仮想
アドレスが入っている。V=0ならば、フラグ・ビット
MまたはEがテストされ、1ならば、オフセット・フィ
ールドには、このMSB仕様で表されたページの絶対M
Sアドレスまたは実ESアドレスが入っている。
【0083】MはMS絶対アドレス・フラグである。M
=1ならば、関連のオフセット・フィールドにはMS絶
対アドレスが入っている。M=0ならば、関連のオフセ
ット・フィールドにはMSアドレスが入っていない。
【0084】EはES実アドレス・フラグである。E=
1ならば、関連のオフセット・フィールドにはESBN
(ESブロック番号)が入っており、これはES絶対ア
ドレスである。E=0ならば、関連のオフセット・フィ
ールドにはESアドレスが入っていない。
【0085】RはMSBソース・フラグの中の複写フラ
グである。これは、ソース・ロケーションに置かれてい
る1または2以上の連続ページの内容をシンク・ロケー
ションに複写することを指定している。R=1ならばペ
ージ・カウントは、シンク・ロケーションに繰り返しコ
ピーされるソース・オペランドの、ページの範囲を表
す。複写カウントは、ソース複写ページがシンク・ロケ
ーションにコピーされる回数を指定している。オーバラ
イトされるシンク・ページの数は、ページ・カウントと
複写カウントの積である。ソース・ロケーションとシン
ク・ロケーションの媒体は、V、MおよびEフラグの設
定状態によって判断される。Rフラグはシンク・オペラ
ンド・フラグでは定義されない。
【0086】ADMサブチャネル開始(SSCH)命令
実行−図4 ADM SCH(ADMサブチャネル)に対するSSC
H(サブチャネル開始)の実行は2つの部分からなって
いる。同期部分と非同期部分である。本実施例では、A
DMサブチャネルがGR(汎用レジスタ)1によってア
ドレス指定されたことは、CPのSSCHマイクロコー
ト・プログラムによって認識される。そのためには、要
求がADM作業待ち行列に置かれてたことと、作業要求
が待ち行列に置かれたことをADMが通知したことが必
要である。これにより、SSCH命令の同期部分は完了
し、CPはSSCHのあとに置かれた次の命令の実行に
進む。ADMコプロセッサは、指定されたページを非同
期に移動して、ADM SSCH命令の非同期部分を実
行する。一方、要求側CPは他の命令の処理を続ける。
【0087】ステップ41Aではオペランドをテスト
し、CPマイクロコードは、無効なサブチャネルやアド
レス指定例外といった例外条件が起こっていないかを調
べ、例外条件が起こっていなければ、ステップ41Bへ
進む。起こっていれば、ステップ42Aへ進んでプログ
ラム例外を引き起こす。
【0088】ステップ41Bでは、CPマイクロコード
は操作要求ブロック(ORB)フィールドをテストし
て、フラグが有効かどうかを調べる。フィールドが無効
ならば、プログラム例外を引き起こす。有効ならばステ
ップ41Cへ進む。
【0089】ステップ41Cにおいて、サブチャネルが
すでに保留状況にあれば、42Bへ進んで条件コード=
1(保留状況を意味する)をセットし、操作を終了させ
る。そうでなければ、ステップ41Dへ進む。
【0090】ステップ41Dにおいて、START、H
ALTまたはCLEARがサブチャネルですでに進行中
であれば、ステップ42Cへ進んで条件コード=2(使
用中を意味する)をセットし、操作を終了させる。そう
でなければ、ステップ41Eへ進む。
【0091】ステップ41Eにおいて、サブチャネルが
動作状態になければ、ステップ42Dへ進んで条件コー
ド=3(無効なサブチャネルを意味する)をセットし、
操作を終了させる。
【0092】ステップ41Fでは、ORBの内容を作業
待ち行列要素にコピーする。
【0093】ステップ41Gでは、アドレス指定された
SCHがADMタイプであるかどうかをテストする。A
DMタイプならば、ステップ41Jへ進む。ADMタイ
プでなければ、他のSCHタイプの場合の従来処理へ進
む。
【0094】ステップ41Hでは、作業待ち行列要素を
ADM作業待ち行列の最後に置く。この作業待ち行列要
素は特定のサブチャネルを指している。
【0095】ステップ41Jでは、CPUは作業待ち行
列要素がADM作業待ち行列に置かれたことをSCEを
通してADMコプロセッサに通知する。
【0096】ステップ41Kにおいて、SSCHの同期
CPU部分は完了し、SSCH命令は条件コード=0を
セットして完了する。
【0097】CPUは次の順番にある命令へ進んでその
実行を行う。
【0098】ADM作業待ち行列 ADM SSCH命令によるADM WQの各要素に入
れられた情報の取り出しは、次のように行う。命令を出
したサブチャネルのIDはSSCH命令によってCP汎
用レジスタに格納されており、このサブチャネルIDは
ADM WQ要素に入れられる。ORB内容のコピーが
ADM WQ要素に入れられる。この情報は最初のCC
Wアドレスを含んでいる。ORB(操作要求ブロック)
は、実行されるADM SSCH命令のオペランドによ
ってアドレス指定されている。
【0099】ADMコプロセッサはWQ作業要素をFI
FO(先入れ先出し)順にアクセスし、先頭の要素を取
り出して、その要素で表されたページ移動操作を実行す
る。最終的には、各作業要素はWQの最後から先頭へと
進む。ADMコプロセッサは、WQの要素を実行してい
る間は使用中の状態にある。従って、コプロセッサがW
Qから取り出した前の作業要求処理のために使用中であ
るときは、新たに要求された作業はWQの最後に置かれ
る。
【0100】ADMコプロセッサは、図2に示すよう
に、それぞれのWQ要素に入っている最初のCCWアド
レスで指定されたアドレスのADM CCWリスト31
を実行する。これらのCCWは、TIC CCWが実行
されて、MS内の非連続ロケーションに置かれているリ
スト31から次のADM CCWを探すときを除き、M
S内に連続している。リスト31の最初のCCWは、一
般に、以前にMSにストアされたMSBリスト32内の
最初のMSBをアドレス指定しているMSB CCWで
ある。
【0101】ADM WQの各要素は最終的には、AD
MがWQ上の各作業要素を順番に実行するとき、実行ユ
ニットハードウェアを使用してADMマイクロコード・
プログラムによって実行される。
【0102】割込み待ち行列 ADMがWQのすべての作業要素を完了すると、ADM
マイクロコード・プログラムはCEC入出力割込み待ち
行列(IQ)の最後に要素を追加し、完了報告がIQに
追加されたことをすべてのCPに通知する。最終的に
は、これらのCPの1つがその割込みを受け付けて、E
SA/390アーキテクチャに定義されている方法でそ
れを制御プログラムに中継する。ESA/390アーキ
テクチャの予め定められた条件によって、どのCPが割
込みを引き受けるかが制御される。つまり、制御プログ
ラムはそのCPを入出力割込み可能にし、そのCPが特
定のSCHに定義されているサブクラスの割込みを引き
受けるのを禁止している。この割込みは、それによって
ADM操作がADM COPに引き渡され、それを通し
てADM COPが完了を報告する。
【0103】システム制御プログラムによって入出力割
込みが可能にされるCEC内の最初のCPは、IQに置
かれている先頭の要素を取り出し、その要素を調べ、割
込みコードを生成する。この割込みコードは、その要素
を処理するために制御プログラムによって選択されたC
PのMS内の予め定めた領域(プレフィックス保管域)
PSAに入れられる。
【0104】このCPはそのCPに入出力割込みPSW
をロードして、実行を制御プログラムにリダイレクトす
る。これを受けて、制御プログラムは割込みサブチャネ
ル状況を調べて、ページ移動が正しく完了して、それに
よって移動したデータ・ページが使用可能であるかどう
かを判断する。(各IQ要素の中の命令を出したサブチ
ャネルのIDは、制御プログラム・テーブル内の要求側
プログラムを示し、そのプログラムを通知されたページ
移動完了と関連づけている。)ADM制御プロセス−図5 ADM制御プロセス全体を実行するための好適実施例に
おけるステップは図5の流れ図に示す通りであるが、こ
の流れ図は、図1、図2、および図3を参照してこれま
でに説明してきたプロセスを実行するステップを示して
いる。このプロセスは上述のように定められた各MSB
に含まれる仕様に従って各MSBを実行する。
【0105】ステップ46Aは、SSCH命令が実行さ
れて、ADMが図4のステップ41JからCP信号を受
けたとき実行される。このCPUからの信号がSCEを
経由してADMコプロセッサに送られると、ADMコプ
ロセッサ20Aは前の要求を処理していなければ、待ち
状態から解放され、図5のステップ46Bからプログラ
ムの実行を開始する。ステップ46Aでは、作業要素は
このADM SSCHによって要求されたページ移動作
業を定義する。図4のステップ41Jにおいて、CPU
はSIGW信号を使用して、ADM機構に信号を送るよ
うにSCEに通知しており、この信号は、CPUがHW
A記憶域内のADM作業待ち行列に要素を置いたことを
示す。
【0106】ADMはCPUから独立して動作する。A
DMは、作業待ち行列に置かれた最も古い要素である待
ち行列の先頭の要素を取り出し、および実行する。従っ
てADMは、新しい要素が作業待ち行列に置かれると
き、作業待ち行列から取り出した別の要素を実行中であ
る場合がある。その場合には、待ち行列からの各要素の
処理が終了したとき、WQを調べて作業が残っているか
どうかを確かめるので、CPUからのSIGW信号は無
視されることがある。新しい要素がその作業待ち行列に
置かれるとの通知を受けたとき、待ち行列が空であるこ
ともあり、ADMが遊休状態にあることもある(これ
は、ADMが待ち状態にあることによって示される)。
その場合は、ADMは直ちに新しい要素をアクセスし
て、その実行を開始することができる。
【0107】ADMは、ADM WQ上の次の作業要素
を実行可能な状態にあり、および待ち行列に、処理すべ
き要素が置かれていると、ステップ46Bに入る。ステ
ップ46Bでは、ADMは先頭の要素をADM待ち行列
から取り出し、ステップ46Cでは、ADMはその“C
CWLOOP”マイクロプログラム・ルーチンを呼び出
して、取り出した要素の処理を開始する。取り出した要
素の内容は必要とするADM CCWプログラム(MS
に置かれている)の中の最初のCCWを指しており、こ
のCCWは要求されたページ移動を指定しているMSB
セットのアドレスを指定している。
【0108】CCWLOOPルーチンが正しく完了する
と、制御をADM制御ルーチンに返却し、ADM制御ル
ーチンはステップ46Dを実行する。ステップ46Dは
サブチャネルの完了状況条件をセットする。
【0109】次に、ステップ46Eでは、ADMは関連
のADM SSCHの割込み保留状態信号を出して、そ
のサブチャネルで要求された操作で、ADMの作業が完
了したことを通知する。システムの入出力割込み機能を
用いてCEC内のすべてのCPUに信号が送られ、作業
が完了したことと、その完了状況を通知する。その割込
みを最初に引き受けたCPUは、システム内のすべての
CPU側から見た割込みをクリアする。割込みを引き受
けたCPUは、入出力割込みPSWに示されたアドレス
の命令から制御プログラムの実行を再開する。
【0110】ADM機構がSCEを介してCPに信号を
送って、サブチャネルの割込み保留状態を通知すると、
ADM機構は作業要求が残っているかどうかを調べるた
めにADM作業待ち行列をチェックする。ADM作業待
ち行列は、空である場合と、1つ以上の作業指示要素を
有し空でない場合とがある。ステップ46Fで、待ち行
列の空状態がテストされる。待ち行列が空ならば、ステ
ップ46Gに入って、ADM機構が「待ち」状態に置か
れ、その場合には、使用可能ならば、非専用コプロセッ
サが非ADM作業を行う。しかし、ADM機構が専用コ
プロセッサに置かれているときは、待ち行列に作業要素
が置かれたとの通知があるまで、待ちに置かれることに
なる。
【0111】しかるに、ADM作業待ち行列が空でなけ
れば、プロセスはブランチしてステップ46Bに戻り、
現在待ち行列の先頭に置かれている次の要素を待ち行列
から取り出し、前述したようにプロセスが続く。
【0112】MSB CCWLOOPプロセス−図6 図6はCCWLOOPプロセスを示す。このプロセス
は、図5に示したMSB制御プロセスにおけるステップ
43を拡張したものである。CCWLOOPはADM
CCWリスト31中の各CCWをアクセスし、その実行
を制御する。
【0113】ADM CCWリストに入っている最初の
CCWの絶対MSアドレスは、ORB(操作要求ブロッ
ク)に入っている。ORBは、現在のADM SSCH
命令の実行に先立ってオペレーティング・システムによ
って初期設定される。
【0114】最初にステップ51は、このCCWアドレ
スをADM WQ要素(ここには、ORBからコピーし
たものが入っている)からMSB機能内の割り当てられ
たローカルGPR(CCW.ADDR.REGと呼ぶ)
にロードする。
【0115】次に、ステップ52は、次に実行すべきC
CWをCCW.ADDR.REGを使用してCCWリス
トからフェッチして、それをMSB機能内の次のGPR
(CCW.REGと呼ぶ)に入れて、そこからCCWが
実行される。初期状態では、CCW.REGには、AD
M CCWリスト31に入っている最初のCCWとして
CCW.ADDR.REGによってアドレス指定された
ADM CCWが入っている。このプログラム・ループ
が繰り返されるたびに、CCWリスト31の中のCCW
が次々とステップ52によってCCW.REGにロード
される。CCW.ADDR.REGは、各CCWのアク
セス後にインクリメントされ、リスト内を進む。
【0116】次のステップ53はCCWEXEマイクロ
コード・ルーチンを呼び出して割り込みを発生させ、C
CW.REGに入っている現CCWを解釈して実行す
る。
【0117】次にステップ54は、ステップ53で実行
されたCCWEXEルーチンから返された戻りコード
(RC)をチェックする。CCWEXEルーチンが失敗
したこと(エラー条件または例外条件を示して)を、戻
りコードが示していれば、ステップ54を“NO”の出
口から出て、ステップ57へ進んで、CCWLOOPの
実行を中止して、例外戻りコードをADM制御マイクロ
プログラム内のステップ44へ返送する。そこで次のス
テップ45は、CPU割込み信号によってシステムのC
PUにエラー条件を通知し、その割込みを処理する最初
の適格なCPUに処理させる。
【0118】ステップ54において、CCWEXEマイ
クロプログラムからのCCW実行戻りコードが操作完了
を示していれば、ステップ54はYES出口から出てス
テップ55へ進む。
【0119】ステップ55は現CCWのコマンド連鎖フ
ラグを調べて、次のCCWを取り出して実行すべきかど
うかを判断する。コマンド連鎖フラグがオフならば、現
在実行されているCCWは現CCWリスト31の最後の
CCWであり、その実行はすでに完了しているので、ス
テップ55を“NO”の出口から出てステップ57へ進
み、現CCWが正しく実行されたことを示す戻りコード
(RC)がADM制御マイクロプログラムに返される。
【0120】しかるに、ステップ55でコマンド連鎖フ
ラグがオンであると判断されると、現CCWは最後のC
CWでないので、“YES”の出口から出てステップ5
6へ進み、CCWリスト31の次のCCWアドレスを指
すように現CCWアドレスがイクリメントされ(これは
CCW.ADDR.REGの内容をインクリメントする
ことによって行われる)、プロセスはステップ52へ移
り、次のCCWに対してCCWEXEプロセスの実行を
繰り返す。この繰返しは、現ADM操作要求が終わるま
で続けられる。
【0121】MSB CCWEXEプロセス−図7 図7はCCWEXEプロセスを示しており、このプロセ
スは図6に示したCCWLOOP制御プロセス中のステ
ップ53を拡張したものである。CCWEXEはCCW
LOOPルーチンから与えられた現CCWを実行する。
CCWEXEは現CCWの中の命令コードを解釈し、現
CCWの実行完了に必要な該当サブルーチンを呼び出
す。
【0122】現CCWには、数種類の命令コードの1つ
が指定されている。命令コードにはMOVE、NOO
P、SENSE、SENSEID、TIC戻りコードが
ある。これらの命令コード・タイプはいずれも、任意の
数のページを移動するために、1つのADM CCWリ
ストの中の複数のCCWに指定されている。CCWEX
Eルーチンは、これらの5種類のCCW命令コードの各
々について現CCWの命令コードをテストする。これら
の命令コードに一致するものが見つかると、テスト・ス
テップを“YES”の出口から出て対応するルーチンを
呼び出す。この対応するルーチンが完了すると、戻りコ
ードがCCWLOOPルーチンの中のステップ54に送
り返される。比較によって一致するものが見つからない
と、“NO”の出口から出てCCWEXEルーチンの中
の次の命令コード比較ステップへ進む。
【0123】CCWEXEルーチンで行われた比較のい
ずれでも一致するものが見つからなかったときは、現C
CWは必要とする命令コードのどれもがADM CCW
リストにないので、例外戻りコードがステップ66から
CCWLOOPステップ54へ返却される。そのあと、
CCWリストの実行は中止され、異常終了割込み状況保
留がSCEを経由してCPに通知される。その割込みを
引き受ける適格性をもつCPがその通知を受けると、制
御プログラムに割込みをかけて、割込みを処理させる。
【0124】従って、CCWEXEルーチンの最初のス
テップ61はMOVE命令コードの有無をテストする。
もしあれば、ステップ61Aは図7に示すMOVEマイ
クロプログラムを呼び出して、現CCWでアドレス指定
されたMSBが指定している移動を実行する。MOVE
命令コードがステップ61で見つからないと、ステップ
61を“NO”の出口から出てステップ62へ進み、そ
こでNOOP(ノーオペレーション・コード)が現CC
Wにあるかどうかをテストする。NOOP条件が見つか
ると、“YES”出口から出てステップ62Aへ進み、
そこからゼロのRCがステップ54に返される。NOO
Pコードがなければ、“NO”出口から出てステップ6
3へ進み、SENSE命令コードが現CCWにあるかど
うかを判断する。
【0125】SENSE命令コードがあれば、“YE
S”出口から出てステップ63Aへ進み、そこでSEN
SE CCW実行マイクロプログラムが呼び出され、ス
テップ63Bで戻りコードがステップ54に返される。
“YES”出口から出てステップ64Aへ進み、そこで
SENSE CCWを実行するマイクロプログラム・ル
ーチンが呼び出され、ステップ63Bから戻りコードが
出される。SENSECCWからは、MSBマイクロプ
ログラムが直前に実行した命令の実行状況を示したエラ
ー情報が返される。
【0126】SENSE命令コードがステップ63で見
つからなかったときは、ステップ64に入って、SEN
SEID命令コードに対応する別のタイプのセンス・コ
マンドの有無をテストする。SENSEID CCWが
実行されると、そのCCWを実行したコプロセッサのタ
イプを示したIDが返される。例えば、それがページ移
動機能専用のコプロセッサ・タイプであるかどうかを示
している。CCWがテストされて、それがSENSEI
D CCWでないと、“NO”出口から出てステップ6
5へ進む。
【0127】ステップ65では、CCW命令コードがテ
ストされ、現CCWコマンドがTIC(チャネル内飛越
し)、つまり、ブランチCCWであるかどうかが判定さ
れる。TIC CCWならば、“YES”出口から出て
ステップ67へ進み、現CCWからブランチ・アドレス
が取り出され、ADMコプロセッサ内のローカルGPR
(CCW.ADDR.REG)にロードされる。そのあ
と、ステップ68でCCW.ADDR.REG内のブラ
ンチ・アドレスからCCWをフェッチし、それをCC
W.REGローカル・レジスタにロードし、そこからC
CWが実行される。
【0128】ステップ65でTIC CCWが見つから
なければ、“NO”出口から出てステップ66へ進み、
図6に示すCCWLOOPマイクロプログラムのステッ
プに無効戻りコードを返す。この戻りコードは現ぺージ
移動操作を要求したプログラムに無効コマンド例外条件
を起こすことを示している。
【0129】MSB MOVEマイクロプログラム・プ
ロセス−図8,図9 MOVEマイクロプログラムは現MOVE CCWでア
クセスされた移動仕様ブロック(MSB)リストに指定
されている移動操作を実行する。1つのSSCH要求移
動命令には複数のCCWが含まれている場合があるの
で、現MOVECCWは、現在実行中のSSCH命令の
中の多数のCCWの1つである場合がある。CCWでア
ドレス指定されたリスト内のMSBは、MS記憶域の連
続するロケーションに置かれており、リスト中の最後の
MSBは、その最後のMSBビットをオフにセットする
ことで示され、リスト中の他のMSBは、最後のMSB
ビットがオンにセットされている。各MOVE CCW
のデータ・アドレス・フィールドはMSBの関連リスト
のMSアドレスを収めている。MOVEマイクロプログ
ラムに一度入るだけで、1つのMOVE CCWでアド
レス指定された1つのリスト内のすべてのMSBが実行
される。
【0130】現CCWはCCW.REGと名付けたロー
カルGPRに入っており、このMOVE CCWのデー
タ・アドレス・フィールドには、MSBリストの最初の
MSBのアドレスが入っている。ステップ7Aでは、ロ
ーカルCCW.REGに入っている現CCWからMS
B.ADDR.REGレジスタと名付けた別のローカル
GPRにMSアドレスをコピーする。
【0131】ステップ7B1はMSB.ADDR.RE
Gレジスタに入っているMSBアドレスを使用して、主
記憶域からMSBをフェッチし、それをMSBコプロセ
ッサのローカル記憶域20Bに入れる。
【0132】ステップ7B2はプロセッサ20B内のR
EPL.COUNTローカル・レジスタに入っている複
写カウントを、後のテストに備えてゼロに初期設定す
る。
【0133】ステップ7B3はMSBソース・フラグの
Rフィールドをテストして、複写が要求されたかどうか
を判断する。複写の指定がなければ、制御はステップ7
E1に渡される。
【0134】複写が要求されていれば、ステップ7B4
が実行される。このステップでは、ソース・ページを1
つだけ複写するのかどうかがテストされ、その場合に
は、制御はステップ7D1に渡される。このテストが行
われるのは、ハードウェア実行機構がソース・ページを
1つしか複写しないからである。2つ以上のソース・ペ
ージをシンク・ロケーションに複写する場合は、MOV
Eルーチンによって複数ソース・ページが1つひとつ複
写されるたびに、実行機構が呼び出される。
【0135】ステップ7B5は複数回の実行機構呼出し
の準備を行うために、ページ・カウント(複写ページ・
セットの長さ)、ソース・アドレス(各複写ページ・セ
ットの先頭)、および複写カウントをローカル・レジス
タにセーブする。これらはローカル記憶域のMSBコピ
ーから得る。
【0136】実行機構は複数ソース・ページ複写を行わ
ないので、ステップ7B6はローカルMSBコピーに入
っているソース・オペランド複写フラグをゼロにセット
する。
【0137】ステップ7B7は複写カウントから1を引
いて、ステップ7E1へ進む。
【0138】ステップ7C1、7C2および7C3は複
数ページ複写を行うために、実行機構の2回目とそれ以
降の呼出しの前だけで実行される。ステップ7C1は、
ソース・オフセットを格納しているローカル・レジスタ
からの実行機構ソース・オフセット・レジスタをセット
し、そのソース・オフセットを複写ページ・セットの先
頭に戻すようにリセットする。ステップ7C2は、ロー
カル・ページ・カウント・レジスタからの実行機構ペー
ジ・カウントを、複数ページ複写を1回で行うようにセ
ットする。ステップ7C3は、複写カウントを格納して
いる(ステップ7B5でセーブされたもの)ローカル・
レジスタからの複写カウントから1を引いて、後で行わ
れる完了テストに備える。制御は、次の実行機構呼出し
のためにステップ7F1に渡される。
【0139】ステップ7D1は、複写カウントをMSB
のローカル・コピーのページ・カウント・フィールドに
移動する。これは単一ページ複写の場合のためであり、
実行機構はページ・カウント・レジスタに指定される回
数(これはローカルMSBのページ・カウント・フィー
ルドからロードされる)だけ、単一ソース・ページを複
写することによって、全体の複写を実行する。
【0140】ステップ7E1は、MSBのローカル・コ
ピーからの必要な実行機構レジスタをセットし、MSB
を処理するために実行機構の最初の呼出しを行う。
【0141】ステップ7F1は、MSB実行機構の内部
レジスタ(ステップ7E1、および部分的にステップ7
C1と7C2でセットされたもの)に指定されているペ
ージ移動を実行するようにMSB実行機構に通知する。
【0142】ステップ7F2と7F3は、実行機構が指
定されたページ移動操作を完了するまで繰返し実行され
る。ステップ7F2はHALTまたはCLEAR機能が
ホストCPUから要求されたかどうかをテストする。要
求されていれば、実行機構のHALT/CLEARレジ
スタは1にセットされており、進行中の操作を中止す
る。ステップ7F3は、完了信号の有無を調べ、完了信
号を受け取るまでステップ7F2に制御を戻す。
【0143】ステップ7F4は、ローカル・レジスタに
入っている複写カウントをテストして、複数ページ複写
がまだ残っているかどうかを調べる。残っていれば、制
御がステップ7C1に渡され、MSB実行機構の次の複
数ページ複写呼出しの準備を行う。
【0144】ステップ7F5では、単一のMSBの処理
が完了する。最後のMSBフラグがテストされる。これ
がリスト中の最後のMSBであれば、制御が図6に示す
CCWLOOPのステップ54に戻される。他にもMS
Bがあれば、次のMSBのアドレスを指すようにMS
B.ADDR.REGをインクリメントし、制御をステ
ップ7B1に渡してそのMSBを処理する。
【0145】ADM SENSEマイクロプログラム・
プロセス−図10 図10は、ADM機構におけるSENSE CCWの実
行を示したものである。ADMの場合のSENSE C
CWの働きは、IBM ESA/390 Princi
ples of Operationおよびそれ以前の
IBM S/370 Principles of O
perationに定義されているI/OSENSE
CCWと非常によく似ている。SENSE CCWから
は、ADM機構内の割り当てられたローカル・レジスタ
(CCW.ADDR.REG、MSB.ADDR.RE
G、PAGE.CNT.REG、SOURCE.OFF
SET.REG、SINK.OFFSET.REG、S
OURCE.STD.REG、SINK.STD.RE
Gなど)にセーブされた最後のCCWに関するエラー情
報と現在のADM実行のエラー情報が得られる。
【0146】ステップ81では、これらのADMレジス
タからのこの情報がSENSEに指定されたMSアドレ
スに送られる。次に、ステップ82に入ってCCWLO
OPプロセスに戻り、戻りコードが図6の前のステップ
54に返され、CCWリストの実行を続ける。
【0147】ADM SENSEIDマイクロプログラ
ム・プロセス−図11 図11は、ADM機構におけるSENSEID CCW
の実行を示したものである。ADMの場合のSENSE
ID CCWの働きは、IBM ESA/390 Pr
inciples of Operationおよびそ
れ以前のIBMS/370 Principles o
f Operationに定義されているI/O SE
NSEID CCWと非常によく似ている。このCCW
からは、モデル番号といった、ADMコプロセッサのタ
イプに関する識別情報が得られる。ステップ91は対応
するADMレジスタからこの情報を読み取る。この情報
がCCWデータ・アドレスにストアされると、ステップ
92に入って、ADMプロセスに戻り、戻りコードが図
6の前のステップ54に返され、CCWリストの実行を
続ける。
【0148】専用非同期データ移動コプロセッサ手段 ADM制御プロセスは、システムの実施形式に応じて、
いろいろな実行方法が可能である。例えば、入出力プロ
セッサの機能を共用する形でADMを実現することが可
能であり、あるいはその機能を実行する専用化されたプ
ロセッサを使用することも可能である。ADM機構をど
のような形体で実現するかは、システム・パフォーマン
ス効率が最大になるように計画する際に、システムにお
ける他のワークロード(作業負荷)と対比して、予想さ
れるADMのワークロードによって決まる。
【0149】図1に示すように、専用化されたADMコ
プロセッサ20は、SCEを経由して任意のCPUから
信号を受信する手段と、SCEを経由して任意のCPU
に信号を送信する手段とを備えている。この信号は、受
信側プロセッサで現在行われている処理の割込みを要求
する。
【0150】ADMコプロセッサ・メモリ20Bはバイ
ト単位でアドレス可能なランダム・アクセス・メモリで
あり、コプロセッサのコマンドおよびデータ(CMD&
DATA)バスを通してアクセスされる。ADMコプロ
セッサ20は、そのローカル・メモリに入っているデー
タ、制御コードおよびコマンドをフェッチしたり、そこ
にストアしたりすることができる。コプロセッサは主記
憶域(MS)に入っているデータ、制御コードおよびコ
マンドをフェッチしたり、そこにストアしたりすること
ができ、また拡張記憶域(ES)に入っているデータを
フェッチしたり、そこにストアしたりすることができ
る。また、コプロセッサはデータ、制御コード、および
待ち行列情報をHWA(26)からフェッチし、ストア
することができる。
【0151】MSB実行機構20Cはハードウェアのス
テート・マシンであり、コプロセッサ20上で動作し
て、呼出しごとに1つのMSB(メッセージ仕様ブロッ
ク)のページ移動を実行する。実行機構20CはSCE
ES/MSバス・ロジック・ハードウェア21Aに対
して各コプロセッサ記憶コマンドを実行して、実行中の
現MSBに指定されたページ移動を行うと共に、ソース
とシンク仮想アドレスの動的アドレス変換のために使用
されるテーブルをフェッチする。
【0152】非同期データ・ムーバ(ADM)の好適実
施例は図12に示すコプロセッサ・ハードウェアから構
成されている。ADMは汎用レジスタ(GPR)を備え
た汎用プロセッサであり、ADMコプロセッサ20内部
に示したROSもしくはROM(読取専用記憶機構)ま
たはRAM(ランダムアクセスメモリ)内のマイクロコ
ードを使用して、その命令の実行を制御する。このコプ
ロセッサ内の実行を制御するためのマイクロコードは、
図4〜図11に示した流れ図を参照して説明されてい
る。このプロセッサ20Aはハードウェア実行機構20
Cを呼び出して、ページの実際の移動を行う。この実行
機構20Cは図10に示す実行機構制御回路133を使
用して実行される。動的アドレス変換(DAT)処理ス
テップ104と109は図13と図14にその詳細が示
されている。DAT処理は実行機構20Cの移動プロセ
スの一部として行われる。
【0153】図12に図示のMSB実行機構ハードウェ
アの説明 ADMアダプタ20Dは、図1に示すようにADM 2
0とSCE 21との間の記憶アクセス機能を備えてい
る。SCEは、システム内の主記憶機構23および拡張
記憶機構24との間でデータ・ページをフェッチし、ス
トアするためにプロセッサ20AとMSB実行機構20
Cによって使用される。SCEのページ移動機能は、M
SまたはES内のあるロケーションからMSまたはES
内の別のロケーションへページを移動するためにMSB
実行機構20Cによって使用される。ページ移動は、A
DMアダプタ20Dを通してMSB実行機構から与えら
れたページ・アドレスと制御情報を受けて、MS/ES
バス・ロジック21Aを使用してSCEによって内部で
行われる。
【0154】MSB実行機構20CをMSBを実行する
とき、SCEコマンド(ページ移動コマンド)が記憶レ
ジスタ131内で組み立てられ、このコマンドはADM
バス100を通ってADMアダプタ20Dに転送され、
ADMアダプタは、SCEに実行させるために、このコ
マンドをSCEバス上に送出する。
【0155】SCE記憶コマンドは次のようなフィール
ドを有し、これらは記憶レジスタ131に入っている。
【0156】ソースの絶対アドレス ソースの保護キー ソースのメモリ・タイプ(MS、ES、またはMSBの
Zビットがオンなら「ゼロ」のいずれか) シンクの絶対アドレス シンクの保護キー シンクのメモリ・タイプ(MSかESのいずれか) ADMプロセッサは以下のように、動作サイクルを順次
に実行する。プロセッサはMSB CCWによって現在
アドレス指定されているMS内のMSBの対応するフィ
ールドから読み取ったフラグとアドレスを受け取って、
レジスタ101−103、106−108、111、1
21および128にロードする。レジスタ101−10
3はロジック回路104への入力となり、このロジック
回路は従来のDAT(動的アドレス変換)操作を行い、
レジスタ123にソース絶対(実)アドレスを生成し、
ソース・ページが置かれている媒体のタイプをソース・
フラグ・フィールドから判断する。このタイプはレジス
タ122に格納される。レジスタ106−108はDA
Tロジック回路109への出力となり、このロジック回
路は従来のDAT(動的アドレス変換)操作を行い、レ
ジスタ126にシンク絶対(実)アドレスを生成し、シ
ンク・ロケーションが置かれている媒体のタイプをフラ
グ・フィールドの状態から判断すると、このタイプはレ
ジスタ127に格納される。
【0157】DAT制御回路104の最初の繰返しで
は、仮想アドレスがレジスタ101内のフラグ・フィー
ルドに示されていれば、STD INレジスタ103が
使用される。ソース実アドレスがフラグ・ビットに示さ
れているときは、STDはアクセスされない。その場合
は、ソース・オフセット・レジスタ102に入っている
アドレスが仮想または実アドレスとして使用されて、D
AT制御回路の出力をソース絶対(実)アドレス・レジ
スタ123に、ソース・メモリ・タイプをレジスタ12
2に入力し、レジスタ122から最初のソース・アドレ
スが記憶レジスタ131に入力される。
【0158】シンクDAT109と共に動作するレジス
タ106−108の内容に対して同じプロセスが使用さ
れて、レジスタ126に格納してから記憶レジスタ13
1に出力される最初のシンク・アドレスが生成される。
そのとき、記憶レジスタ131の内容は、最初のソース
およびシンクのページ・アドレス、ソースおよびとシン
クのキー、ならびにソースおよびシンクのメモリ・タイ
プを有する(メモリ・タイプ・フィールドのZビットが
ソース・アドレスは有効でないことを示している場合が
ある)。記憶レジスタ131内のソース・フラグがペー
ジをゼロにすることを示していれば、SCEページ移動
機能はゼロからなるソース・ページを内部で用意する。
この内容は、ページ移動記憶コマンドの一部としてSC
Eに渡される。本実施例によれば、その結果のSCEペ
ージ移動コマンドを構成する部分を並列に(同時に)生
成することができる。つまり、ソースとシンクのオペラ
ンド仕様を、図12に示す構造が示すように、異なるハ
ードウェアによって同時並行に記憶レジスタ131に生
成することが可能である。
【0159】レジスタ111内のページCNTフィール
ドはデクリメンタ112により1ずつデクリメントさ
れ、ページ・カウントがゼロでなければ、別のセットの
ページ・アドレス生成サイクルが少なくともシンク・ペ
ージに対して実行される。フラグ・レジスタ101がR
=1またはZ=1であれば、ソース・ページのアドレス
生成はそれ以上行われない。
【0160】以上のようにして、レジスタ111内のペ
ージ・カウントがゼロになるまで次のシンク・アドレス
および該当する場合は、ソース・アドレスが生成され
る。
【0161】HALTまたはCLEAR信号が受信され
て、レジスタ116に格納されると、MSB実行プロセ
スは制御回路133によって中止され、CLEARコマ
ンドの場合には、レジスタがすべてリセットされる。H
ALTの場合には、情報はレジスタに残っているので、
SENSE CCWを用いて得ることができる。
【0162】図4〜図11に記述されているマイクロプ
ログラムは、MSBローカル記憶機構20Bにストアさ
れている。MSB実行機構とそのバス100は、MSB
プロセッサ20Aで動作するマイクロプログラムによっ
て制御される。
【0163】ADM MSB実行機構(図12)は初期
MSBフィールド値をプロセッサ20Aから受け取る
(図9のステップ7E1参照)。レジスタには、プロセ
ッサ20Aから与えられた情報が次のようにロードされ
る。
【0164】MSBバスからソース・フラグ・レジスタ
101にゲートする。
【0165】MSBバスからソース・オフセット・レジ
スタ102にゲートする。
【0166】MSBバスからソースSTDレジスタ10
3にゲートする。
【0167】MSBバスからソース・キー・レジスタ1
21にゲートする。
【0168】MSBバスからシンク・フラグ・レジスタ
106にゲートする。
【0169】MSBバスからシンク・オフセット・レジ
スタ107にゲートする。
【0170】MSBバスからシンクSTDレジスタ10
8にゲートする。
【0171】これは、ハードウェア実行機構制御回路1
33との連絡によって行われる。この制御回路は、単一
のMSBによって要求されたすべてのページ移動を実行
するときMSB実行機構の動作全体を制御するが、前述
したように、複数ページ複写の場合は、単一のMSBが
MSB実行機構の呼出しを繰り返し行う。
【0172】プロセッサ20Aから受信した実行開始コ
マンド(図9のステップ7F1) サイクル1 ページCNT=0ならば、ページ移動
は完了しているので、実行制御回路133は、MSBの
処理が完了したことをプロセッサ20Aに通知して、図
9のステップ7F2に戻る。
【0173】サイクル2 ソース・フラグ、オフセ
ット、STDをゲートにかけてソースDATに入れる。
同時に、シンク・フラグ、オフセット、STDをゲート
にかけてシンクDATに入れる。
【0174】Nサイクル ソース・ページとシンク
・ページのDAT操作。DATはDATテーブルをMS
から取り出すのにどれだけ時間がかかるかによって左右
される。
【0175】ソースおよびシンクDATからのアドレス
が有効になるのを待ってから、次のサイクルを実行して
DATからのデータをゲートにかけて、レジスタ122
−123および126−127に入れる。
【0176】サイクルN+1 ソースMTをゲートにか
けてソース・メモリ・タイプ・レジスタ122に入れ
る。
【0177】サイクルN+2 ソースABS REGか
らソースABS ADDRレジスタ123にゲートす
る。
【0178】サイクルN+3 シンクMTをゲートにか
けてシンク・メモリ・タイプ・レジスタ127に入れ
る。
【0179】サイクルN+4 シンクABS REGか
らシンクABS ADDRレジスタ126にゲートす
る。
【0180】サイクルN+5 ソースとシンク・キー、
アドレスおよびメモリ・タイプ・レジスタをゲートにか
けて記憶レジスタ131に入れる。
【0181】サイクルN+6 記憶レジスタ131か
ら、コマンドおよびデータ・バスを経てADMアダアプ
タ20Dにゲートし、SCEバスを経てSCEにゲート
する。
【0182】Mサイクル SCEからの応答を待
つ。失敗した場合は、完了へ進む。
【0183】サイクルM+1 デクリメントしたページ
CNTをゲートにかけてページCNTレジスタ111に
入れる。
【0184】ソース・フラグ=複写でなければ、インク
リメンタ105からのインクメントしたソース・オフセ
ットをゲートにかけてソース・オフセット・レジスタ1
02に入れる。
【0185】インクリメンタ110からのインクリメン
トしたシンク・オフセットをゲートにかけてシンク・オ
フセット・レジスタ107に入れる。
【0186】 サイクルM+2 HALT/CLEARレジスタがセットされていれば、完了へ 進み、HALT/CLEARレジスタがセットされていなけれ ば、 サイクルM+3 サイクル1へ移ってページCNT=0かどうかをテストする。 完了: MSB実行機構が完了したことをAD
Mプロセッサ20Aに通知する。戻りコードを返却す
る。
【0187】プロセッサ20AがHALT/CLEAR
レジスタに「1」をセットしていれば、実行機構制御回
路は現ページ移動が完了すると、MSB実行機構の動作
を終了させる。
【0188】従って、記憶コマンドはサイクルN+5時
に記憶レジスタ131に格納され、その後コマンドは、
本実施例によれば、ゲートされてMSBバス100上に
送出され、ADMアダプタ20Dに送られる。その後、
MSB実行機構はADMアダプタ20DがコマンドをS
CEに送るのを待ってから(数Mサイクルの間)、ペー
ジがSCEによって移動され、そのあとSCEは完了応
答をADMアダプタに送り、その後この応答は実行機構
制御回路133に返送される。サイクルM+1時に、完
了応答は分析され、移動すべきページがまだ残っていれ
ば、次のページを移動するために実行が続けられる。
【0189】ADMコプロセッサによるソースDAT操
作−図13 ADMコプロセッサのDAT回路104は下述するよう
に、動作サイクルを順次に進めていく。ソースDATは
レジスタ101−103からソース・フラグと情報を受
け取り、ソースSTEとPTEアドレスを生成し、ソー
ス仮想アドレス変換のためにMS内のソースSTEとP
TEをアクセスし、ソース記憶媒体のタイプを指示し、
「アドレス有効」または「例外」を通知し、有効なら
ば、変換されたソース絶対アドレス、ソース・キー、お
よびメモリ・タイプが記憶レジスタ131にロードされ
る。これらは、あとで、それぞれのソース仕様を得るた
めに移動操作でソースをアクセスするときに、ページ移
動コマンドの一部としてSCEに送られる。
【0190】サイクル0 ソース・フラグをゲートにか
けてDAT制御回路に送り、ソース・オフセットをゲー
トにかけてDAT ADDRレジスタに入れ、ソースS
TDをゲートにかけてSTD REGに入れる。
【0191】ソース・フラグがゼロ・シンク・フラグを
示している場合: サイクル1 ZS(ゼロ・シンク)をゲートにかけてM
Tレジスタに入れる。
【0192】ソース・アドレス有効信号をゲートにかけ
てMSB実行機構制御ロジック133に送る。
【0193】ソース・フラグがゼロ・シンク・フラグを
示している場合: サイクル1 ZS(ゼロ・シンク)をゲートにかけてM
Tレジスタに入れる。
【0194】ソース・アドレス有効信号をゲートにかけ
てMSB実行機構制御ロジック133に送る。
【0195】ソースFLAGがMS REALアドレス
を示している場合: サイクル1 DAT ADDRレジスタからDAT A
BS ADDRレジスタにゲートする。
【0196】MS媒体標識をゲートにかけてDAT M
Tレジスタに入れる。
【0197】ソース・アドレス有効信号をゲートにかけ
てMSB実行機構制御ロジック133に送る。
【0198】ソースFLAGがESBN 実アドレスを
示している場合: サイクル1 DAT アドレスレジスタからAbs R
egにゲートする。
【0199】ESをゲートにかけてDAT MTレジス
タに入れる。
【0200】アドレス有効信号をMSB実行機構制御ロ
ジック133にゲートする。
【0201】ソースFLAGが仮想アドレスを示してい
る場合: サイクル1 DAT ADDRレジスタ(SX)+ST
Dレジスタ(STO)をゲートにかけて、生成されたS
TEアドレスとしてSTAレジスタに入れる(ESA/
390 Principles of Operati
onおよび米国特許出願第07/424,797号に記
載されている通り)。
【0202】DAT ADDRレジスタ1−7をSTD
REG(STL)と比較テストする。STLより大で
あれば、例外を引き起こし、MBS操作完了を通知す
る。
【0203】2 STAレジスタからFETCHレジス
タにゲートする。
【0204】3 FETCHレジスタからMSB BU
S上にゲートしMS内のSTEをアクセスする。
【0205】4 MS STEデータをゲートにかけて
MSB BUS上に送出しSTEレジスタに入れる。D
AT ADDRレジスタ・ビット1−7をSTE(PT
L)と比較テストする。PTLより大であれば、例外を
引き起こし、MSB操作完了を通知する。
【0206】5 DAT ADDRレジスタ(PX)+
STEレジスタ(PTO)のゲートにかけて、生成され
たPTEアドレスとしてPTAに入れる(ESA/39
0 Principles of Operation
および米国特許出願第07/424,797号に記載さ
れている通り)。
【0207】6 PTAレジスタからFETCHレジス
タにゲートする。
【0208】7 FETCHレジスタからMSB BU
S上にゲートして、MS内のPTEをアクセスする。
【0209】8 MSからのPTEデータをゲートにか
けて、MSB BUS上に送出してPTE REGに入
れる。
【0210】9 PTE(PERA)をゲートにかけ
て、変換されたソース実アドレスとしてABS ADD
Rレジスタに入れる(ESA/390 Princip
les of Operationおよび米国特許出願
第07/424,797号に記載されている通り)。
【0211】PTEフラグ=MSならば、MSをゲート
にかけてMT REGに入れる。PTEフラグ=ESな
らば、ESをゲートにかけてMTレジスタに入れる。P
TEフラグが無効ならば、ページ不在例外を示し、操作
完了を通知する。
【0212】10 ソース・アドレス有効信号をゲート
にかけてMSB実行機構制御ロジックに送る。
【0213】MSBコプロセッサによるシンクDAT操
作−図12および図13 MSBコプロセッサのDAT回路109は下述するよう
に、動作サイクルを順次に進めていく。シンクDAT1
09はレジスタ106−108からシンク・フラグと情
報を受け取り、シンクSTEとPTEアドレスを生成
し、シンク仮想アドレス変換のためにMS内のシンクS
TEとPTEをアクセスし、シンク記憶媒体タイプを示
し、「アドレス有効」または「例外」を通知し、有効な
らば、変換されたシンク絶対アドレスを記憶レジスタ1
31に送る。このアドレスはページ移動記憶コマンドと
なって、それぞれのシンク仕様を得るために移動操作で
シンク・ページをアクセスするときにSCEに送られ
る。
【0214】サイクル0 シンク・フラグをゲートにか
けてDAT制御回路におくる。
【0215】シンク・オフセットをゲートにかけてDA
T ADDRレジスタに入れる。シンクSTDをゲート
にかけてSTDレジスタに入れる。 シンクFLAGがMS REALアドレスを示している
場合: サイクル1 DAT ADDRレジスタからDAT A
BS ADDRレジスタにゲートする。
【0216】MS媒体標識をゲートにかけてDAT M
Tレジスタに入れる。
【0217】シンク・アドレス有効信号をゲートにかけ
てMSB実行機構制御ロジック133に送る。
【0218】シンクFLAGがESBN実アドレスを示
している場合: サイクル1 アドレス・レジスタをゲートにかけてAB
Sレジスタに送る。
【0219】ESをゲートにかけてMT REGに入れ
る。
【0220】シンク・アドレス有効信号をゲートにかけ
てMSB実行気候制御ロジック133に送る。
【0221】シンクFLAGが仮想アドレスを示してい
る場合: サイクル1 DAT ADDRレジスタ(SX)+ST
Dレジスタ(STO)のゲートにかけて、生成されたシ
ンクSTEアドレスとしてSTAレジスタに入れる(E
SA/390 Principles ofOpera
tionおよび米国特許出願第07/424,797号
に記載されているとおり)。
【0222】DAT ADDRレジスタ1−7をSTD
REG(STL)と比較テストする。STLより大な
らば、例外を引き起こし、MSB操作完了を通知する。
【0223】2 STAレジスタをゲートにかけてFE
TCHレジスタに入れる。
【0224】3 FETCHレジスタをゲートにかけて
MSB BUS上に送出しMS内のSTEをアクセスす
る。
【0225】4 MS STEデータをゲートにかけて
MSB BUS上に送出しSTEレジスタに入れる。
【0226】DAT ADDRレジスタ・ビット1−7
をSTD REG(PTL)と比較テストする。
【0227】5 DAT ADDRレジスタ(PX)+
STEレジスタ(PTO)をゲートにかけて、生成され
たシンクPTEアドレスとしてPTAレジスタに入れる
(ESA/390 Principles ofOpe
rationおよび米国特許出願第07/424,79
7号に記載されているとおり)。
【0228】6 PTAレジスタからFETCHレジス
タにゲートする。
【0229】7 FETCHレジスタからMSB BU
S上にゲートしMS内のPTEをアクセスする。
【0230】8 MSからのPTEデータをゲートにか
けてMSB BUS上に送出しPTE REGに入れ
る。
【0231】9 PTE(PFRA)をゲートにかけ
て、変換されたシンク実アドレスとしてABS ADD
Rレジスタに入れる(ESA/390 Princip
les of Operationおよび米国特許出願
第07/424,797号に記載されている通り)。
【0232】PTEフラグ=MSならば、MSをゲート
にかけてMT REGに入れる。
【0233】PTEフラグ=ESならば、ESをゲート
にかけてMT REGに入れる。
【0234】PTEフラグが無効を示していれば、ペー
ジ不在例外を示し、操作完了を通知する。
【0235】10 シンク・アドレス有効信号をゲート
にかけてMSB実行機構制御ロジック133に送る。
【0236】いくつかの実施例を示して本発明を説明し
てきたが、本発明の精神と範囲を逸脱することなく、態
様および細部の変更が可能であることは当業者に明らか
である。
【0237】
【発明の効果】以上から明らかなように、本発明非同期
プロセッサによるデータ移動方法および装置によれば、
コプロセッサが主記憶装置(MS)と拡張記憶装置(E
S)のような、同一または異なる媒体の異なるロケーシ
ョン間で、仮想アドレス指定方式によってデータを複数
ページ単位で非同期に移動することが可能となる。
【図面の簡単な説明】
【図1】コンピュータ・エレクトロニック・コンプレッ
クス(CEC)とCEC内にコプロセッサとして設けら
れた非同期データ・ムーバ(ADM)ハードウェアを示
す概要図である。
【図2】移動仕様ブロック(MSB)を使用してADM
プログラム内でADMを呼び出し、実行するためのアド
レス指定構造を示す図である。
【図3】移動仕様ブロック(MSB)の実施例を示す図
である。
【図4】ADMチャネル開始(SSCH)命令の操作を
示すフローチャートである。
【図5】作業待ち行列から作業要素を取り出して処理す
るためのADMコプロセッサの動作を示す全体フローチ
ャートである。
【図6】図4,図5に示したフローチャートで使用され
ているCCWLOOPマイクロコード・ルーチンの動作
を示すフローチャートである。
【図7】図6に示したフローチャートで使用されている
CCWEXEマイクロコード・ルーチンの動作を示すフ
ローチャートである。
【図8】図7に示したフローチャートで使用されている
MOVEマイクロコード・ルーチンの動作を示すフロー
チャートである。
【図9】図7に示したフローチャートで使用されている
MOVEマイクロコード・ルーチンの動作を示すフロー
チャートである。
【図10】図7に示したフローチャートで使用されてい
るSENSEマイクロコード・ルーチンの動作を示すフ
ローチャートである。
【図11】図7に示したフローチャートで使用されてい
るSENSE IDマイクロコード・ルーチンの動作を
示すフローチャートである。
【図12】図1に示したADMコプロセッサのMSB実
行機構データ・フロー・ロジックを示す詳細図である。
【図13】図12に示すようにADMコプロセッサ内に
設けられ、ソースの動的アドレス変換(DAT)操作を
行うためのデータ・フロー・ロジック・ハードウェア回
路を示す図である。
【図14】図10に示すようにADMコプロセッサ内に
設けられ、シンクの動的アドレス変換(DAT)操作を
行うためのデータ・フロー・ロジック・ハードウェア回
路を示す図である。
【符号の説明】
1〜N 中央プロセッサ(CP) 20 ADM(非同期データムーバ)コプロセッサ 20A ADMコプロセッサ 20B ローカル記憶域 20C MSB(移動仕様記載ブロック)実行機構 20D ADMアダプタ 21A SCE ES/MSバス・ハードウェア 22 入出力チャネル・サブシステム 23 主記憶機構(MS,システムメモリ) 24 拡張記憶機構(ES) 26 ハードウェア記憶域(HWA) 31 ADM CCW(チャネル制御ワード)リスト 32 MSBリスト 100 ADMバス 133 MSB実行機構制御回路 101〜103 レジスタ 104 ロジック回路 106〜108 レジスタ 109 ロジック回路 111 レジスタ 112 デクリメンタ 121 レジスタ 122 レジスタ 123 レジスタ 126 レジスタ 127 レジスタ 128 レジスタ 131 記憶レジスタ 133 制御回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トーマス ジェイ. デュケット アメリカ合衆国 12580 ニューヨーク州 スタッツバーグ ブラウンズ パウンド ロード 364ビー (72)発明者 デイヴィッド ブルース リンドクィスト アメリカ合衆国 27613 ノース カロラ イナ州 ラーレイ レイク スプリングス コート 4001 (72)発明者 キャスパー アンソニー スカルツィ アメリカ合衆国 12601 ニューヨーク州 パウキープシィ アカデミー ストリート 160 (56)参考文献 特開 昭58−9276(JP,A) 特開 平3−46045(JP,A)

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システムにおける非同期デー
    タ移動装置であって、 (a)少なくとも1つの中央プロセッサ(CP)、シス
    テム・メモリ(MS)、および入出力(I/O)システ
    ムと、 (b)非同期コプロセッサに対する作業要素を生成する
    ためにデータ移動命令を実行し、そのあとで他の命令を
    実行するためのCP実行手段と、 (c)作業要素を取り出して、移動仕様ブロック(MS
    B)へのアドレスを指定したコプロセッサ・プログラム
    を開始するためのコプロセッサ手段と、 (d)コプロセッサ内にあって、1つまたは2つ以上の
    データ・ページをソース・ロケーションからシンク・ロ
    ケーションへ移動することを制御する手段とを備え、 前記MSBは、移動すべき1つまたは2つ以上のページ
    が置かれているソース・ロケーションを指定したソース
    仕様とソース・ページが移動される宛先のシンク・ロケ
    ーションを指定したシンク仕様とを有し、前記CPはコ
    プロセッサが1つまたは2つ以上のページを移動してい
    る間に他の命令を実行する機能を有することを特徴とす
    る非同期データ移動装置。
  2. 【請求項2】 請求項1に記載したデータ処理システム
    における非同期データ移動装置において、さらに、 (a)2つ以上の媒体から構成され、各媒体は独立して
    アドレス指定が可能であるシステム・メモリと、 (b)MSBの中にソース媒体とシンク媒体を指定し、
    ソース・ページとシンク・ページが、媒体内に置かれて
    いるロケーションを指定するためのMSB初期設定手段
    とを備えたことを特徴とする非同期データ移動装置。
  3. 【請求項3】 請求項1に記載したデータ処理システム
    における非同期データ移動装置において、さらに、 前記媒体の少なくとも1つに置かれているページのロケ
    ーションを仮想アドレスで指定することを可能にするM
    SB初期設定手段を備えたことを特徴とする非同期デー
    タ移動装置。
  4. 【請求項4】 請求項1に記載したデータ処理システム
    における非同期データ移動装置において、さらに、 異なる媒体であるソース媒体とシンク媒体を備えたこと
    を特徴とする非同期データ移動装置。
  5. 【請求項5】 少なくとも1つの中央プロセッサおよび
    システム・メモリを備えるデータ処理システムにおける
    非同期データ移動装置であって、 (a)作業待ち行列に置かれる作業要素を生成し、作業
    要素が作業待ち行列上に存在することをコプロセッサに
    通知するためにデータ移動命令を実行するプロセッサ実
    行手段と、 (b)通知したプロセッサによって開始されて、少なく
    とも1つの移動仕様ブロック(MSB)をもつコプロセ
    ッサ・ページ転送プログラムのロケーションを突き止め
    るために作業待ち行列をアクセスして、作業要素を取り
    出す制御プログラムをもつ非同期コプロセッサ手段と、 (c)コプロセッサに置かれていて、MSBに含まれる
    仮想アドレスを、要求されたソース・アドレスおよびシ
    ンク・アドレスがシステム・メモリに置かれているロケ
    ーションと直接アドレス指定関係をもつアドレスに変換
    するための手段とを備え、 前記MSBは、転送すべきソース・ページのロケーショ
    ンを指定したソース仕様およびソース・ページが転送さ
    れる宛先のシンク・ページのロケーションと移動すべき
    ページのカウントを指定したシンク仕様およびページ転
    送の特性を制御するためのフラグ・フィールドを有する
    ことを特徴とする非同期データ移動装置。
  6. 【請求項6】 請求項5に記載した非同期データ移動装
    置において、さらに、 ソース・ロケーションとシンク・ロケーションの第1媒
    体または第2媒体またはその両媒体を指定するための標
    識をもつフラグ・フィールドを備えたことを特徴とする
    非同期データ移動装置。
  7. 【請求項7】 請求項5に記載した非同期データ移動装
    置において、さらに、 フラグ・フィールドによって第1媒体として指定される
    主記憶機構(MS)と第2媒体として指定される拡張記
    憶機構(ES)とを備えたことを特徴とする非同期デー
    タ移動装置。
  8. 【請求項8】 少なくとも1つの中央プロセッサおよび
    システム・メモリ備えるデータ処理システムにおける非
    同期データ移動装置であって、 (a)作業待ち行列に置かれる作業要素を生成し、作業
    要素が作業待ち行列上に存在することをコプロセッサに
    通知するためにデータ移動命令を実行するプロセッサ実
    行手段と、 (b)通知したプロセッサによって開始されて、少なく
    とも1つの移動仕様ブロック(MSB)をもつコプロセ
    ッサ・ページ転送プログラムのロケーションを突き止め
    るために作業待ち行列をアクセスして、作業要素を取り
    出す制御プログラムをもつ非同期コプロセッサ手段と、 (c)MSBのロケーションを指定した少なくとも1つ
    のチャネル制御ワード(CCW)を有し、システム内の
    仮想アドレスまたは実アドレス・ロケーションに置かれ
    た1つまたは2つ以上のデータ・ページをシステム内で
    転送することを制御するコプロセッサ・ページ転送プロ
    グラムとを備え、 前記MSBは、転送すべきソース・ページのロケーショ
    ンと移動すべきページ・カウントを指定したソース仕様
    およびソース・ページが転送される宛先のシンク・ペー
    ジのロケーションを指定したシンク仕様およびページ転
    送の特性を制御するためのフラグ・フィールドを有する
    ことを特徴とする非同期データ移動装置。
  9. 【請求項9】 請求項8に記載した非同期データ移動装
    置において、さらに、 MSBのソース仕様域とシンク仕様域に置かれていて、
    それぞれの域の中のアドレスがシステム内の主記憶機構
    (MS)にあるか、拡張機構(ES)にあるかを指定す
    るためのフラグ・フィールドを備えたことを特徴とする
    非同期データ移動装置。
  10. 【請求項10】 少なくとも1つの中央プロセッサ(C
    P)、システム・メモリ(MS)、および入出力(I/
    O)システムをデータ処理システムに用意するデータ処
    理システム用の、非同期データ移動方法であって、 (a)CPプログラムの中の非同期データ移動命令を実
    行して、待ち行列上に置かれる作業要素を生成するステ
    ップと、 (b)要素が待ち行列に追加されることをCPからコプ
    ロセッサに通知するステップと、 (c)コプロセッサによって待ち行列からアクセスされ
    る各待ち行列要素ごとに、ページ移動操作をコプロセッ
    サに実行させるステップと、 (d)各要求が完了または中止したときに、コプロセッ
    サからCPに通知するステップと、 (e)待ち行列に作業要素が残っていないときに、コプ
    ロセッサを待ち状態にするステップと、 (f)作業要素が待ち行列に置かれることを示す信号が
    CPから送られたときに、コプロセッサを待ち状態から
    解除するステップと、 (g)チャネル制御ワード(CCW)をもつコプロセッ
    サ・プログラムを開始し、一部のCCWは少なくとも1
    つの移動仕様ブロック(MSB)へのアドレスを指定し
    ており、各MSBは転送すべきページが置かれているシ
    ステム内のソース・ロケーションと該ソース・ページが
    転送される宛先のシンク・ロケーションを指定してお
    り、1つまたは2つ以上の作業要素が待ち行列に置かれ
    ているとき1つまたは2つ以上のページ移動を制御する
    ステップと、 (h)コプロセッサからメモリ・コントローラに対して
    ページ・フェッチ・コマンドとページ・ストア・コマン
    ドが出されると、それを受けて少なくとも1つのメモリ
    ・コントローラにメモリ・フェッチとメモリ・ストアを
    制御させるステップと、 (i)コプロセッサの制御の下でページ転送プログラム
    が完了したときCPに信号を出して、ページ転送が行わ
    れたCPプログラムに完了通知するステップと、 (j)現在または最後の操作の現在状態の情報を要求し
    た別のCCWタイプに応答するために、アドレス、カウ
    ント、およびエラー通知を収めている内部コプロセッサ
    ・レジスタの内容を与えるステップと、 (k)コプロセッサのタイプ、モデルおよび機能に関す
    る情報を要求した別のCCWタイプに応答するステップ
    とを備えたことを特徴とする非同期ページ移動方法。
  11. 【請求項11】 請求項10に記載したデータ処理シス
    テム用の非同期データ移動方法において、コプロセッサ
    は、さらに、 前記コプロセッサ・プログラムの中の最後のCCWを通
    してロケーションが指定されたMSBがリストの中の最
    後のMSBであることを示しているとき、該コプロセッ
    サ・プログラムの中の次のCCWをフェッチすることを
    特徴とする非同期データ移動方法。
JP4329282A 1992-01-03 1992-12-09 非同期コプロセッサによるデータ移動方法および装置 Expired - Lifetime JPH0731624B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US81691792A 1992-01-03 1992-01-03
US816917 2001-03-23

Publications (2)

Publication Number Publication Date
JPH06168179A JPH06168179A (ja) 1994-06-14
JPH0731624B2 true JPH0731624B2 (ja) 1995-04-10

Family

ID=25221938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4329282A Expired - Lifetime JPH0731624B2 (ja) 1992-01-03 1992-12-09 非同期コプロセッサによるデータ移動方法および装置

Country Status (3)

Country Link
US (1) US5442802A (ja)
EP (1) EP0549924A1 (ja)
JP (1) JPH0731624B2 (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
EP0732659B1 (en) * 1995-03-17 2001-08-08 LSI Logic Corporation Controlling (n+i) I/O channels with (n) data managers in a homogeneous software programming environment
WO1997009674A1 (fr) * 1995-09-01 1997-03-13 Hitachi, Ltd. Processeur de donnees
US5875352A (en) * 1995-11-03 1999-02-23 Sun Microsystems, Inc. Method and apparatus for multiple channel direct memory access control
DE69727465T2 (de) 1997-01-09 2004-12-23 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Rechnersystem mit Speichersteuerung für Stossbetrieb-Übertragung
EP0853283A1 (en) * 1997-01-09 1998-07-15 Hewlett-Packard Company Computer system with memory controller for burst transfer
EP0862118B1 (en) * 1997-01-09 2004-02-04 Hewlett-Packard Company, A Delaware Corporation Computer system comprising a memory controller for burst transfer
US5857101A (en) * 1997-04-15 1999-01-05 Acceleration Software International Corporation Program lunch acceleration
US5933630A (en) * 1997-06-13 1999-08-03 Acceleration Software International Corporation Program launch acceleration using ram cache
US6014681A (en) * 1997-07-15 2000-01-11 Microsoft Corporation Method for saving a document using a background save thread
US6516342B1 (en) * 1998-07-17 2003-02-04 International Business Machines Corporation Method and apparatus for extending memory using a memory server
US6347344B1 (en) * 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor
US6560674B1 (en) 1998-10-14 2003-05-06 Hitachi, Ltd. Data cache system
US6608625B1 (en) 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
US6434649B1 (en) 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
US6658552B1 (en) * 1998-10-23 2003-12-02 Micron Technology, Inc. Processing system with separate general purpose execution unit and data string manipulation unit
US6105076A (en) * 1999-04-23 2000-08-15 International Business Machines Corporation Method, system, and program for performing data transfer operations on user data
KR100385233B1 (ko) * 2000-03-14 2003-05-23 삼성전자주식회사 데이터 프로세싱 시스템의 익스포넌트 유닛
US7383424B1 (en) 2000-06-15 2008-06-03 Hewlett-Packard Development Company, L.P. Computer architecture containing processor and decoupled coprocessor
US6874040B2 (en) 2000-12-19 2005-03-29 International Business Machines Corporation Employing a data mover to communicate between dynamically selected zones of a central processing complex
US7089558B2 (en) 2001-03-08 2006-08-08 International Business Machines Corporation Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment
US6985951B2 (en) * 2001-03-08 2006-01-10 International Business Machines Corporation Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment
US7542463B2 (en) * 2004-09-24 2009-06-02 Cisco Technology, Inc. Communicating packets along a control channel and a media channel
US7881332B2 (en) * 2005-04-01 2011-02-01 International Business Machines Corporation Configurable ports for a host ethernet adapter
US7706409B2 (en) * 2005-04-01 2010-04-27 International Business Machines Corporation System and method for parsing, filtering, and computing the checksum in a host Ethernet adapter (HEA)
US7577151B2 (en) * 2005-04-01 2009-08-18 International Business Machines Corporation Method and apparatus for providing a network connection table
US7586936B2 (en) * 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US7903687B2 (en) * 2005-04-01 2011-03-08 International Business Machines Corporation Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US20060221953A1 (en) * 2005-04-01 2006-10-05 Claude Basso Method and apparatus for blind checksum and correction for network transmissions
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US7492771B2 (en) * 2005-04-01 2009-02-17 International Business Machines Corporation Method for performing a packet header lookup
US7508771B2 (en) * 2005-04-01 2009-03-24 International Business Machines Corporation Method for reducing latency in a host ethernet adapter (HEA)
US20070143759A1 (en) * 2005-12-15 2007-06-21 Aysel Ozgur Scheduling and partitioning tasks via architecture-aware feedback information
JP5133540B2 (ja) * 2006-09-05 2013-01-30 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、データ転送方法及びプログラム
US7958327B2 (en) * 2008-02-01 2011-06-07 International Business Machines Corporation Performing an asynchronous memory move (AMM) via execution of AMM store instruction within the instruction set architecture
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8244954B2 (en) * 2008-10-10 2012-08-14 International Business Machines Corporation On-demand paging-in of pages with read-only file system
US8245013B2 (en) * 2008-10-10 2012-08-14 International Business Machines Corporation Mapped offsets preset ahead of process migration
US9116788B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Using extended asynchronous data mover indirect data address words
US9058275B2 (en) 2011-06-10 2015-06-16 International Business Machines Corporation Data returned responsive to executing a start subchannel instruction
US9058243B2 (en) * 2011-06-10 2015-06-16 International Business Machines Corporation Releasing blocks of storage class memory
US9116789B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Chaining move specification blocks
US9021226B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Moving blocks of data between main memory and storage class memory
US9323668B2 (en) 2011-06-10 2016-04-26 International Business Machines Corporation Deconfigure storage class memory command
US9021179B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Store storage class memory information command
US9021180B2 (en) * 2011-06-10 2015-04-28 International Business Machines Corporation Clearing blocks of storage class memory
US9116634B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
US9996349B2 (en) * 2015-01-27 2018-06-12 International Business Machines Corporation Clearing specified blocks of main storage
US10282296B2 (en) * 2016-12-12 2019-05-07 Intel Corporation Zeroing a cache line
US11593157B2 (en) 2020-02-05 2023-02-28 Nec Corporation Full asynchronous execution queue for accelerator hardware

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54129942A (en) * 1978-03-31 1979-10-08 Fujitsu Ltd Direct transfer system between sub-systems
US4373179A (en) * 1978-06-26 1983-02-08 Fujitsu Limited Dynamic address translation system
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
US4476524A (en) * 1981-07-02 1984-10-09 International Business Machines Corporation Page storage control methods and means
US4731739A (en) * 1983-08-29 1988-03-15 Amdahl Corporation Eviction control apparatus
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
US4797812A (en) * 1985-06-19 1989-01-10 Kabushiki Kaisha Toshiba System for continuous DMA transfer of virtually addressed data blocks
US4930065A (en) * 1987-08-20 1990-05-29 David Computer Corporation Automatic data channels for a computer system
JP2752094B2 (ja) * 1988-09-14 1998-05-18 株式会社東芝 論理型言語におけるバックトラック処理方式
JP3005626B2 (ja) * 1988-09-21 2000-01-31 株式会社日立製作所 データ処理システムおよびデータ転送方法
US5095420A (en) * 1988-11-21 1992-03-10 International Business Machines Method and system for performing virtual address range mapping in a virtual storage data processing system
US5159677A (en) * 1988-11-21 1992-10-27 International Business Machines Corp. Method and system for storing data in and retrieving data from a non-main storage virtual data space
US5237668A (en) * 1989-10-20 1993-08-17 International Business Machines Corporation Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
JP3369580B2 (ja) * 1990-03-12 2003-01-20 ヒューレット・パッカード・カンパニー 直接メモリアクセスを行うためのインターフェース装置及び方法
US5386560A (en) * 1991-05-23 1995-01-31 International Business Machines Corporation Execution of page data transfer by PT processors and issuing of split start and test instructions by CPUs coordinated by queued tokens
US5251312A (en) * 1991-12-30 1993-10-05 Sun Microsystems, Inc. Method and apparatus for the prevention of race conditions during dynamic chaining operations

Also Published As

Publication number Publication date
JPH06168179A (ja) 1994-06-14
EP0549924A1 (en) 1993-07-07
US5442802A (en) 1995-08-15

Similar Documents

Publication Publication Date Title
JPH0731624B2 (ja) 非同期コプロセッサによるデータ移動方法および装置
EP0895163B1 (en) A data processor having a cache memory
US4831520A (en) Bus interface circuit for digital data processor
US4901232A (en) I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor
US4851991A (en) Central processor unit for digital data processing system including write buffer management mechanism
US4831581A (en) Central processor unit for digital data processing system including cache management mechanism
US5091845A (en) System for controlling the storage of information in a cache memory
US5119484A (en) Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
US5459872A (en) Software control of hardware interruptions
AU606083B2 (en) Interface between processor and special instruction processor in digital data processing system
CA1302579C (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
US5276892A (en) Destination control logic for arithmetic and logic unit for digital data processor
JP2527038B2 (ja) 拡張記憶転送制御方式
JPH0567973B2 (ja)
JPS59172044A (ja) 命令制御方式
JPH0585925B2 (ja)
EP0302926B1 (en) Control signal generation circuit for arithmetic and logic unit for digital processor
EP0418220B1 (en) Destination control logic for arithmetic and logic unit for digital data processor
JPS6115235A (ja) 中央処理装置
WO1988006763A1 (en) Central processor unit for digital data processing system including virtual to physical address translation circuit
JPS5878223A (ja) 入出力処理方法
JPH0773109A (ja) 主記憶保護回路
JPH0388049A (ja) 情報処理装置