(57)【特許請求の範囲】
【請求項１】
複数の中央演算処理部と、該複数の中央演算処理部に共用される主記憶部と、各中央演算処理部と該主記憶部との間でデータの転送を制御する記憶制御部とをそなえ、
前記の各中央演算処理部が、該記憶制御部を介して該主記憶部から転送されてきたデータをスワップ方式で保持するキャッシュメモリを有するとともに、
前記の各中央演算処理部からの起動指示を契機として、前記の各中央演算処理部が該キャッシュメモリもしくは該主記憶部内に作成したコマンドワードを参照して、該記憶制御部を介して該主記憶部と外部記憶部との間のデータ転送制御を行なうデータ転送制御部をそなえてなる情報処理装置において、
前記の各中央演算処理部に、
自中央演算処理部が該データ転送制御部に対して該主記憶部と該外部記憶部との間の同期転送命令を要求する際に、前記コマンドワードおよび転送対象データを含む記憶ブロックを該キャッシュメモリから該主記憶部に転送する記憶ブロック転送手段がそなえられていることを
特徴とする、情報処理装置。
【請求項２】
複数の中央演算処理部と、該複数の中央演算処理部に共用される主記憶部と、各中央演算処理部と該主記憶部との間でデータの転送を制御する記憶制御部とをそなえ、
前記の各中央演算処理部が、該記憶制御部を介して該主記憶部から転送されてきたデータをスワップ方式で保持するキャッシュメモリを有するとともに、
前記の各中央演算処理部からの起動指示を契機として、前記の各中央演算処理部が該キャッシュメモリもしくは該主記憶部内に作成したコマンドワードを参照して、該記憶制御部を介して該主記憶部と外部記憶部との間のデータ転送制御を行なうデータ転送制御部をそなえてなる情報処理装置において、
前記の各中央演算処理部に、
自中央演算処理部が該データ転送制御部に対して同期転送命令の起動を要求した場合に、該データ転送制御部が該中央演算処理部からの起動要求受信時に前記コマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、該データ転送制御部の処理を開始する前に、前記コマンドワードおよび転送対象データを含む記憶ブロックを該キャッシュメモリから該主記憶部に転送する記憶ブロック転送手段がそなえられていることを特徴とする、情報処理装置。
【請求項３】
複数の中央演算処理部と、該複数の中央演算処理部に共用される主記憶部と、各中央演算処理部と該主記憶部との間でデータの転送を制御する記憶制御部とをそなえ、
前記の各中央演算処理部が、該記憶制御部を介して該主記憶部から転送されてきたデータをスワップ方式で保持するキャッシュメモリを有するとともに、
前記の各中央演算処理部からの起動指示を契機として、前記の各中央演算処理部が該キャッシュメモリもしくは該主記憶部内に作成したコマンドワードを参照して、該記憶制御部を介して該主記憶部と外部記憶部との間のデータ転送制御を行なうデータ転送制御部をそなえてなる情報処理装置において、
該データ転送制御部が該中央演算処理部によって作成される前記コマンドワードおよびデータの記憶アドレスを解析して該データ転送制御部が該記憶制御部に対して発行するオペレーションコードに、該データ転送制御部が指定したアドレスを含む記憶ブロックを該キャッシュメモリから該主記憶部に転送する要求コードをそなえ、
該データ転送制御部が該中央演算処理部からの起動指示を受信した後に該記憶制御部に対して前記オペレーションコードを発行した場合に、前記コマンドワードおよびデータを含む記憶ブロックを該キャッシュメモリから該主記憶部に転送する記憶ブロック転送手段が前記の各中央演算処理部にそなえられていることを特徴とする、情報処理装置。
【請求項４】
該外部記憶部からのデータの転送格納先を該主記憶部から該キャッシュメモリに切り換え当該データの一部または全部を該キャッシュメモリに転送する切換転送手段が、該記憶制御部にそなえられていることを特徴とする、請求項１〜請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
該切換転送手段が、
該中央演算処理部が該外部記憶部から該主記憶部に転送されるデータを転送終了後直ちに使用することを、該中央演算処理部から前記コマンドワードにより指示されたデータ転送命令の種類に基づいて判断できる場合に、当該データの転送格納先を該主記憶部から該キャッシュメモリに切り換え当該データの一部または全部を該キャッシュメモリに転送することを特徴とする、請求項４記載の情報処理装置。
【請求項６】
該データ転送制御部に、
該中央演算処理部が該外部記憶部から該主記憶部に転送されるデータを転送終了後直ちに使用することを、属性情報として保持する属性情報保持手段と、
該属性情報保持手段に保持された属性情報を該記憶制御部の該切換転送手段に通知する通知手段とがそなえられ、
該記憶制御部の該切換転送手段が、該通知手段からの属性情報に応じて切換転送動作を行なうことを特徴とする、請求項５記載の情報処理装置。
【請求項７】
該データ転送制御部に、
該外部記憶部から該主記憶部へデータ転送を行なう際に、所定のデータ単位毎に当該データの転送格納先を該記憶制御部の該切換転送手段に通知する通知手段がそなえられ、
該記憶制御部の該切換転送手段が、該通知手段からの属性情報に応じて切換転送動作を行なうことを特徴とする、請求項４記載の情報処理装置。
【発明の詳細な説明】
【０００１】
（目次）
産業上の利用分野
従来の技術（図１０〜図１６）
発明が解決しようとする課題（図１３，図１４，図１６）
課題を解決するための手段（図１）
作用（図１）
実施例
（ａ）本実施例の情報処理装置の構成の説明（図２）
（ｂ）同期転送要求時の動作例の説明（図２，図３）
（ｃ）同期転送待機中の動作例の説明（図４）
（ｄ）オペレーションコードによる記憶ブロック転送動作例の説明（図５）
（ｅ）同期転送終了時の動作例の説明（図６，図７）
（ｆ）同期転送終了時の他の動作例の説明（図８，図９）
発明の効果
【０００２】
【産業上の利用分野】
本発明は、共通の主記憶部のデータを用いて並列動作する複数の中央演算処理部に、主記憶部のデータをスワップ方式で保持するキャッシュメモリをそなえてなる情報処理装置に関し、特に、主記憶部の記憶容量を補うべくさらに外部記憶部をそなえてなる情報処理装置に関する。
【０００３】
近年の情報処理装置には、大量のデータを高速に処理することが要求されるが、そのデータ量の伸びは主記憶装置の容量の伸びをはるかに超える要求量であり、必然的に拡張記憶装置や半導体ディスク，磁気ディスクなどの外部記憶装置が必要とされる。また、外部記憶装置と主記憶装置との間のデータ転送性能がシステムのスループットに大きく影響するため、より高速なデータ転送能力が求められている。
【０００４】
【従来の技術】
一般に、情報処理の高速化に伴い、多数のプロセッサユニットを並列的に動作させることが行なわれている。このような情報処理装置では、例えば図１０に示すように、複数の中央演算処理部（以下、ＣＰＵという）１が、記憶制御部（以下、ＭＣＵという）２を介して共通の主記憶部（以下、ＭＳＵという）３に接続されている。
【０００５】
また、各ＣＰＵ１には、ＭＳＵ３からＭＣＵ２を介して読み出したデータ等をスワップ（ストアイン）方式で保持するローカルバッファ記憶部（キャッシュメモリ；以下、ＬＢＳという）４がそなえられている。このＬＢＳ４は、ＭＳＵ３よりも小容量であるが高速処理が可能なもので、ＣＰＵ１とＭＳＵ３との間の処理速度差を緩和することにより、各ＣＰＵ１での演算処理の高速化をはかるようになっている。
【０００６】
そして、近年、ＭＳＵ３の記憶容量を補うべく、上述のような情報処理装置においては、図１０に示すごとく、ＭＣＵ２に、データ転送制御部（以下、ＭＯＶＥＲという）５を介して外部記憶部（以下、ＥＳＵという）６をそなえることも行なわれている。
ここで、ＭＯＶＥＲ５は、ＣＰＵ１がＬＢＳ４またはＭＳＵ３に作成したコマンドワード（後述，図１０ではＬＢＳ４内の符号４Ａ参照）を参照して、記憶機構（ＭＳＵ３やＬＢＳ４）とＥＳＵ６との間でデータの転送操作を行なうものであり、ＥＳＵ６は、ＭＯＶＥＲ５からの指示によりデータの格納および読出を行なうものである。
【０００７】
なお、ＭＯＶＥＲ５は、図１２に示すように、ラッチ部５１，ＭＳＵアクセス制御機構５２，データ／コマンド判別部５３，同期／非同期転送判別部５４，同期転送用ラッチ部５５，非同期転送用ラッチ部５６，セレクタ５７，５８および加算器５９から構成されており、各部の機能説明については、以下の動作説明で併せて行なう。
【０００８】
また、図１２中、５０ＡはＭＯＶＥＲ５からＭＣＵ２へのデータバス、５０ＢはＭＣＵ２からＭＯＶＥＲ５へのデータバス、５０ＣはＭＯＶＥＲ５からＥＳＵ６へのデータバス、５０ＤはＥＳＵ６からＭＯＶＥＲ５へのデータバスである。上述した情報処理装置では、ＭＳＵ３，ＭＯＶＥＲ５，ＬＢＳ４がＭＣＵ２を介して相互にデータの送受信を行なうようになっている。
【０００９】
なお、図１０において、７はＭＣＵ２上に設けられたセレクタで、このセレクタ７は、ＬＢＳ４とＭＳＵ３とのいずれか一方を、ＭＯＶＥＲ５を介してＥＳＵ６と通信可能に切り換え接続するためのものである。
また、８ＡはＣＰＵ１上のＬＢＳ４のタグ部で、このタグ部８Ａは、ＬＢＳ４に登録されているデータを識別するためのエントリ情報であるタグ情報を格納するもので、ＬＢＳ４は、タグ情報とデータとを１つのエントリとして保持している。
【００１０】
そして、タグ部８Ａは、図１５に示すように、データのＭＳＵ絶対アドレスや、他のＣＰＵ１内のＬＢＳ４のデータとの排他制御を行なうための属性ビットなどをＬＢＳタグ情報として保持している。さらに、図１５に示すように、ＭＣＵ２上にもタグ部８Ｂがそなえられ、このタグ部８Ｂに、各ＣＰＵ１のＬＢＳ４のタグ部８Ａが保持するタグ情報のコピーが保持されている。
【００１１】
さて、ＣＰＵ１がＥＳＵ６とＭＳＵ３との間のデータ転送を要求する場合を、図１０〜図１６により説明する。
この場合、まず、ＣＰＵ１は、ＭＳＵ３とＥＳＵ６とのアドレスを対応付け、データ長および転送動作の内容を記述したコマンドワード（図１０ではＬＢＳ４内の符号４Ａ参照）をＭＳＵ３またはＬＢＳ４上に作成する（図１３のＡ１参照）。
【００１２】
コマンドワード４Ａは、例えば図１１に示すように、ＭＳＷ（Ｍｏｖｅｒ  Ｓｔａｔｕｓ  Ｗｏｒｄ）とＭＣＷ（Ｍｏｖｅｒ  Ｃｏｍｍａｎｄ  Ｗｏｒｄ）との２つの部分から構成されている。ＭＣＷは転送内容を指定し、ＭＳＷには、ＭＣＷで指定された転送動作のＭＯＶＥＲ５による処理結果が格納される。ＣＰＵ１は、ＭＳＷを参照することで指定したデータ転送が正しく処理されたかどうかを知ることができる。
【００１３】
ＭＣＷの内容は、転送データのＭＳＵ絶対アドレス，ＥＳＵ６のアドレスデータ長，転送方向等から構成される。ＭＯＶＥＲ５は、ＣＰＵ１から起動されると、指定されたＭＣＷのＭＳＵ絶対アドレスからＭＣＷを読み出して指定されたデータ転送を行ない、その結果をＭＳＷに格納する。
ＭＳＷには、ＣＰＵ１によってコマンドワード４Ａが作成される時には全てのビットが０に設定されている。ＭＯＶＥＲ５は、ＥＳＵ６とＭＳＵ３またはＬＢＳ４との間のデータ転送終了時に終了情報をＭＳＷに書き込み、ＭＳＷを、転送の終了情報をＣＰＵ１に伝えるために使用する。また、ＭＣＷには、転送データのＥＳＵ６の転送長，ＥＳＵ６の転送開始実アドレス，ＭＳＵ３の転送長，ＭＳＵ３の転送開始絶対アドレスがセットされ、ＥＳＵ実アドレスとＭＳＵ絶対アドレスとが対応付けられている。
【００１４】
一般に、情報処理装置の記憶機構はページと呼ばれる所定の記憶容量を単位の集合体として構成されており、記憶機構は単純にページをまたがった転送することはできない。これは、一般にこのような記憶装置では仮想記憶方式が採用されており、論理アドレスでは連続している２つのページがあるとしても、物理的に見た場合には離散的に存在しているかも知れないからである。
【００１５】
ここで説明する例においては、ＥＳＵ６のページサイズは１６ｋバイト，ＭＳＵ３のページサイズは４ｋバイトであり、且つ、転送はＥＳＵ６のページをまたがらないものとし、転送開始アドレスは８バイト単位で指定可能であるために、１つのＥＳＵページに対し最大５つのＭＳＵページが対応付けられ、事実上、ＥＳＵ６に指定される転送長が１つの転送要求における総転送長を示す。ＭＳＵ３では物理的に離散して存在している５つ以下のページが、ＥＳＵ６のページでは連続した実アドレスの１ページ内に格納されることになる。
【００１６】
スワップ方式のキャッシュメモリ（ＬＢＳ４）では、ＣＰＵ１が任意のアドレスに対してデータ更新を行なった時点では、ＬＢＳ４上のデータのみを更新し、キャッシュエントリのリプレースメントが生じた場合や、他ＣＰＵ１が同一記憶ブロックに対して更新を行なう場合等に更新データをＬＢＳ４からＭＳＵ３に書き出すことによって、ＭＳＵ３上のデータの更新が行なわれる。従って、ＣＰＵ１がＭＯＶＥＲ５に対するコマンドワード４Ａを記憶空間に書き込む時には、ＬＢＳ４上にのみ書き込まれる（図１３のＡ２参照）。
【００１７】
ＣＰＵ１がコマンドワード４ＡをＬＢＳ４に書き込む時に、対応するタグ部８Ａに対してコマンドワード４ＡがＬＢＳ４上に存在することを示すタグの属性情報を書き換える。その後、ＣＰＵ１はＭＯＶＥＲ５にコマンドワード４Ａの先頭ＭＳＵ絶対アドレス，アクセスの属性情報などを送り、転送起動要求を発行する（図１０，図１３のＡ３参照）。ＭＯＶＥＲ５に同期転送要求を発行したＣＰＵ１には、インタロックがかかり、ＭＯＶＥＲ５がＥＳＵ６とＭＳＵ３との間の転送が終了した時にその転送終了をＣＰＵ１に通知するまで、ＣＰＵ１は停止状態になる。
【００１８】
ＣＰＵ１からの転送起動要求は転送要求が非同期転送か同期転送かを示す属性情報を有しているので、ＭＯＶＥＲ５は、同期／非同期転送判別部５４によりそのアクセスが同期転送か非同期転送かを判別し（図１３のＡ４参照）、要求されたアクセスが実行可能な状態ならば、ＭＳＵアクセス制御機構５２からデータバス５０Ａを通しＭＣＵ２に対してコマンドワード４Ａの読出を要求する（図１２，図１３のＡ５参照）。ＭＯＶＥＲ５が他ＣＰＵからの同期転送実行中の場合と、非同期命令実行中にＣＰＵ１から非同期転送要求を受けた場合は、ＭＯＶＥＲ５はＣＰＵ１からの転送要求を実行でき、ＣＰＵ１は一定時間後に転送起動要求をＭＯＶＥＲ５に再発行する。
【００１９】
ＭＣＵ２内にはそれぞれのＣＰＵ１内のＬＢＳ４のタグ部８Ａのコピーがタグ部８Ｂに保持されているので（図１５参照）、ＭＣＵ２は、ＭＯＶＥＲ５からコマンドワード４Ａの読出要求を受けると、ＭＯＶＥＲ５から受けたＭＣＷのＭＳＵ絶対アドレスを参照してＬＢＳ４上にあるか否かを判断可能であり、ＬＢＳ４に保持されていればＣＰＵ１に該エントリのはき出し要求を行ない、ＬＢＳ４に保持されていなければＭＳＵ３に対してコマンドワード読出要求を発行する。
【００２０】
同期転送の場合、ＣＰＵ１はＥＳＵ６のアクセスに必要なコマンドワード４Ａを作成し、ＭＯＶＥＲ５にアクセス要求を発行した後は転送終了までインタロック状態にあるので、コマンドワード４ＡはＬＢＳ４上に存在する確率が非常に高い。従って、ＭＯＶＥＲ５からコマンドワード４Ａの転送要求が来た時には、ＭＣＵ２は非常に高い確率でＬＢＳ４に対して転送要求を発行することになる（図１３のＡ６参照）。
【００２１】
もしコマンドワード４ＡがＬＢＳ４にあるならば、ＭＯＶＥＲ５から転送要求が出されるとＬＢＳ４内のコマンドワード４Ａはブロック単位にＭＳＵ３に一旦転送された後、ＭＳＵ３からＭＣＵ２を介してＭＯＶＥＲ５に転送され（図１３のＡ７，Ａ８参照）、同時にＬＢＳ４のタグ部８Ａ，８Ｂでは、コマンドワード４Ａを保持していたエントリを無効化する。
【００２２】
コマンドワード４ＡがＭＯＶＥＲ５に供給され（図１２，図１３のＡ８参照）、ラッチ部５１に格納されると、ＭＳＵアクセス制御機構５２は、ＭＣＷの内容がＭＳＵ３からＥＳＵ６へのデータ転送を指定している場合、ＭＣＵ２からデータバス５０Ｂを通して転送されてきたデータが、ＭＳＷ，ＭＣＷであるのか、ＭＳＵ３とＥＳＵ６との間の転送対象データであるのかをデータ／コマンド判別部５３により判別する（図１３のＡ９参照）。
【００２３】
ここで、非同期転送実行中にＭＯＶＥＲ５に同期転送要求が転送されてきたとすると、同期転送を先に処理する。このため、ＭＯＶＥＲ５では、少なくとも同期転送用と非同期転送用の制御情報保持手段として同期転送用ラッチ部５５および非同期転送用ラッチ部５６がそなえられ、指定されたデータ転送の種別を同期／非同期転送判別部５４により判別し、判別された種別に応じて各々のＭＳＷおよびＭＣＷをラッチ部５５または５６に保持する。そして、ＭＯＶＥＲ５では、同期転送用のコマンドワードを解析し、セレクタ５７により現在実行中の命令ラッチ（ラッチ部５５または５６）を選択して、ＥＳＵ６を起動してＭＳＵ３とＥＳＵ６との間のデータ転送を開始する（図１３のＡ１０参照）。
【００２４】
ＭＳＵ３またはＬＢＳ４からＥＳＵ６へのデータ転送の場合、データについても、コマンドワード４Ａと同様にＭＣＵ２内のタグ部８Ｂを参照して、ＬＢＳ４内にあるかＭＳＵ３内にあるかが判断され、読み出された後にＭＯＶＥＲ５（データバス５０Ｂ，判別部５３，セレクタ５７，データバス５０Ｃ）を経由してＥＳＵ６へ転送される。また、ＥＳＵ６からＭＳＵ３へデータ転送する場合は、ＣＰＵ１がＥＳＵ６から転送されたデータをすぐに必要とするかどうか分からないため、ＥＳＵ６からの転送データは、ＬＢＳ４には転送されず全てＭＳＵ３にストアされる。
【００２５】
次に、ＭＳＵ３からＥＳＵ６へのデータ転送時の動作を説明する。ＥＳＵ６の起動後、ＭＣＷで送られたＭＳＵ，ＥＳＵ転送開始アドレスをデータ要求長ずつ加算器５９で加算しつつＭＳＵアクセス制御機構５２を介して、ＭＣＵ２にＭＳＵ３からのデータ読出を要求する。
ＭＣＵ２からデータバス５０Ｂを通してデータが供給されると、先のコマンドワード４Ａの場合と同様に、ＭＳＵアクセス制御機構５２は、ＭＣＵ２から転送された転送対象データを、判別部５３，セレクタ５７，データバス５０Ｃを介してＥＳＵ６に送る。
【００２６】
ＭＳＵ，ＥＳＵアドレスが加算される時にアドレスが加算された分に対応してＭＳＵ，ＥＳＵの転送長を減算することにより、残りの転送長を判断することができる。その後は残り転送長が０になるまで、ＭＳＵ３へのデータ転送要求，転送されてきたデータのＥＳＵ６への転送を各々のアドレスを加算しながら繰り返す。
【００２７】
そして、ＭＯＶＥＲ５は、最後のデータをＥＳＵ６に転送した後に、全てのデータをＥＳＵ６に転送したことを示すフラグをＥＳＵ６に送る。ＥＳＵ６は、全データの処理を終了した後、もしくは、エラーが検出された時に、転送終了コマンドとエラーなどの終了情報をＭＯＶＥＲ５に通知する（図１４のＢ１参照）。全データ転送終了後、ＭＯＶＥＲ５は、コマンドワードのＭＳＷ内の定められたフィールドにエラー情報などを書き込む（図１４のＢ２参照）。
【００２８】
ＭＯＶＥＲ５からＭＣＵ２に対してエラー情報等を含むＭＳＷのストア要求を行ない（図１４のＢ３参照）、ＭＯＶＥＲ５からデータバス５０Ａを通してＭＣＵ２へデータが送られると、ＭＣＵ２からＭＳＵ３に対してＭＳＷのストアを要求し（図１４のＢ４参照）、データは全てＭＳＵ３にストアされる。
ＭＳＵ３はＭＳＷのストアを完了するとＭＣＵ２に正常終了通知を行ない（図１４のＢ５参照）、さらに、ＭＣＵ２は、その正常終了通知をＭＯＶＥＲ５に対して行なう（図１４のＢ６参照）。
【００２９】
このようにしてエラー情報等を書き込まれたＭＳＷのＭＳＵ３へのストアを終了し、正常終了通知を受けたＭＯＶＥＲ５は、コマンドの転送終了をアクセス要求発信元のＣＰＵ１に割込み要求を発信し（図１０，図１４のＢ７参照）、ＣＰＵ１のインタロックを解除する。
その後、ＣＰＵ１は、ＭＳＷに格納された転送の終了情報をチェックするために、ＭＣＵ２に対して、終了情報（エラー情報等）を含むコマンドワードをＭＳＵ３からＣＰＵ１へ転送するように要求する（図１４のＢ８参照）。この要求を受けたＭＣＵ２はＭＳＵ３に対してコマンドワードの読出を要求し（図１４のＢ９参照）、コマンドワードは、ＭＳＵ３からＣＰＵ１に転送されるとともにＬＢＳ４にも書き込まれる（図１４のＢ１０参照）。コマンドワードがＣＰＵ１に到達すると（図１４のＢ１１参照）、ＣＰＵ１はＭＳＷのエラー情報とステータス情報をチェックし同期転送を終了する。
【００３０】
一方、ＭＯＶＥＲ５がＣＰＵ１からの転送起動要求を受けた時（図１６のＣ１参照）、ＥＳＵ６がＭＯＶＥＲ５によりデータ転送中で新たな転送起動要求を直ちに受け付けられないと判断した場合（図１６のＣ２参照）、ＭＯＶＥＲ５は、受け付けられなかったことを示すコードをＭＣＵ２に返信する（図１６のＣ３参照）。
【００３１】
このＭＯＶＥＲ５からのコードを受けたＭＣＵ２はしばらく待機し、一定時間後にＭＣＵ２はＭＯＶＥＲ５に再度転送要求を発行する（図１６のＣ４参照）。この再要求時にＭＯＶＥＲ５が受付可能な状態であれば、図１３と同様に、ＭＯＶＥＲ５は、そのアクセスが同期転送か非同期転送かを判別し、要求されたアクセスが実行可能な状態ならば、ＭＣＵ２に対してコマンドワード４Ａの読出を要求する（図１６のＣ５参照）。
【００３２】
また、ＭＣＵ２は、ＭＯＶＥＲ５からコマンドワード４Ａの読出要求を受けると、タグ部８Ｂを参照して、ＬＢＳ４に対しコマンドワード読出要求を発行する（図１６のＣ６参照）。ＬＢＳ４は、コマンドワード４ＡをＭＳＵ３に書き込んでからＭＣＵ２に転送し（図１６のＣ７参照）、さらにＭＣＵ２は、そのコマンドワード４ＡをＭＯＶＥＲ５に転送する（図１６のＣ８参照）。
【００３３】
この後、ＭＯＶＥＲ５は、コマンドワード４Ａを解析して実行すべき処理の判別を行なってから、ＥＳＵ６を起動してＭＳＵ３とＥＳＵ６との間のデータ転送を開始する（図１６のＣ９参照）。
【００３４】
【発明が解決しようとする課題】
ところで、同期転送時に、ＣＰＵ１は、コマンドワード４ＡをＬＢＳ４上に作成した後にインタロック状態となり、転送が終了してそのインタロック状態が解除されるまで停止している。そのため、ＭＯＶＥＲ５がコマンドワードを読み込もうとした時には、コマンドワードはＬＢＳ４に存在する確率が非常に高い。また、転送するデータも直前にＣＰＵ１が格納アクセスを行なうことにより作成されるために、ＬＢＳ４に存在する確率が高い。
【００３５】
ＭＯＶＥＲ５がデータを読み込むには、データはＬＢＳ４にあるよりもＭＳＵ３にある方が処理に要する時間は短い。それは、ＬＢＳ４からＭＯＶＥＲ５にデータが転送される時には、一度、ＬＢＳ４からＭＳＵ３に転送された後に、ＭＳＵ３からＭＯＶＥＲ５にデータが転送されるからである（図１３のＡ７〜Ａ８参照）。且つ、ＬＢＳ４は個々のＣＰＵ１に存在するため、複数ブロックの連続はき出しが極めて困難である。
【００３６】
ＭＯＶＥＲ５からＭＣＵ２に対してデータ要求信号が発行された時に、ＭＣＵ２内のタグ部８Ｂにおける各ＣＰＵ１毎のＬＢＳタグのコピーをチェックした結果、転送対象データがＬＢＳ４にあると判断された場合は、ＭＣＵ２は最新データがあるＬＢＳ４に対してデータのＭＳＵ３へのはき出し要求を発行する。
ＭＳＵ３へのデータはき出し要求を受けたＬＢＳ４は、要求データをＭＣＵ２に転送してＬＢＳエントリのデータ属性を無効化する。もし、ＭＣＵ２への転送対象データが複数のＬＢＳ４に共有されている場合は、データをＬＢＳ４からＭＣＵ２に転送すると同時に、各ＬＢＳ４の転送対象データのエントリを無効化する。その後、ＬＢＳ４からデータを受けたＭＣＵ２は、それを一旦ＭＳＵ３に転送した後、ＭＳＵ３からＭＯＶＥＲ５に転送する。
【００３７】
また、ＭＯＶＥＲ５からデータの転送要求がＭＣＵ２に発行された時に、そのデータがＭＳＵ３にある場合は、ＭＣＵ２がＭＳＵ３に対してデータの転送要求を発行するだけであり、ＬＢＳ４のタグ部８Ａの操作は必要ない。
このことから、上述した従来の情報処理装置では、ＭＯＶＥＲ５からコマンドワードおよびデータの読出要求が行なわれた時に、コマンドワードおよびデータをＬＢＳ４からＭＳＵ３へ移動させる動作が必要となる確率が高く、転送性能の低下要因となっていた。
【００３８】
一方、ＥＳＵ６からＭＳＵ３へのデータ転送時、ＥＳＵ６から読み込まれたデータはＭＳＵ３に書き込まれるが、ＥＳＵ６からＭＳＵ３へのデータ転送時にデータがＬＢＳ４でなくＭＳＵ３に書き込まれると、そのデータの転送が終わってから直ちにＭＳＵ３に書き込まれたデータをＣＰＵ１が使用する場合、データをＭＳＵ３から転送する必要があって（図１４のＢ８〜Ｂ１０参照）、その分、時間的なロスを生じてしまう。
【００３９】
また、仮にデータを全てＬＢＳ４に書き込む場合には、書き込まれたデータがＣＰＵ１に使用されることを保障できないと、必要なキャッシュエントリをＭＳＵ３に追い出す事態を生じることになり、逆にデータの処理性能を落としてしまいかねないため、安易にＥＳＵ６からのデータをＬＢＳ４に登録するわけにはいかない。
【００４０】
従って、上述した従来の情報処理装置では、高速性を要求されるデータ要素に対しても一律にＭＳＵ３に書き込んでおり、ＣＰＵ１が必要なデータを取り出すためにＭＣＵ２を介してＭＳＵ３へアクセスすることになり、処理性能向上の障壁となっていた。
さらに、図１６により前述したように、ＭＯＶＥＲ５が複数のＣＰＵ１により共有されている構成では、ＭＯＶＥＲ５がＣＰＵ１からコマンドワード４Ａの先頭アドレスと転送要求を受けた時に、ＭＯＶＥＲ５は既に他のＣＰＵ１からの転送要求を受けており、先に受け付けた転送を実行中という状態が考えられる。ＭＯＶＥＲ５が先に受け付けた実行中のデータ転送要求が同期転送である場合には、新たな転送要求を受け付けてもその実行は実行中の同期転送が終了するまで待たされることになる。
【００４１】
このとき、後からＭＯＶＥＲ５に送られたデータ転送要求が非同期転送である場合は、データ転送の実行が待たされてもＣＰＵ１は次の処理を行なうので新たに送られた命令が同期転送である場合に比べ問題はないが、同期転送であった場合にはデータ転送が待たされると、先行しているデータ転送終了後にデータ転送が実行可能になりさらにその転送が終了するまでＣＰＵ１は停止したままで、処理効率の低下要因になる。
【００４２】
また、ＭＣＵ２からの再要求によりＭＯＶＥＲ５が受付可能であった場合には、前述した通り、ＭＯＶＥＲ５からコマンドワードおよびデータの読出要求が行なわれた時に、コマンドワードおよびデータをＬＢＳ４からＭＳＵ３へ移動させる動作が必要となる確率が高く、やはり転送性能の低下要因となっていた。
本発明は、このような課題に鑑み創案されたもので、ＭＯＶＥＲによるコマンドワードの参照をＭＳＵ上で直ちに行なえるようにし、またＣＰＵの処理で高速性を要求されるデータ要素を必要に応じてＬＢＳへ直接書き込むようにして、データ転送処理の高速化をはかった情報処理装置を提供することを目的とする。
【００４３】
【課題を解決するための手段】
図１は本発明の原理ブロック図で、この図１において、１１は中央演算処理部（ＣＰＵ）、１３は複数の中央演算処理部１１に共用される主記憶部（ＭＳＵ）、１２は各中央演算処理部１１と主記憶部１３との間でデータの転送を制御する記憶制御部（ＭＣＵ）、１４は各中央演算処理部１１毎にそなえられるキャッシュメモリ（ＬＢＳ）で、このキャッシュメモリ１４は、記憶制御部１２を介して主記憶部１３から転送されてきたデータをスワップ方式で保持するものである。
【００４４】
また、１５はデータ転送制御部（ＭＯＶＥＲ）で、このデータ転送制御部１５は、各中央演算処理部１１からの起動指示を契機として、各中央演算処理部１１がキャッシュメモリ１４もしくは主記憶部１３内に作成したコマンドワードを参照して、記憶制御部１２を介して主記憶部１３と外部記憶部１６との間のデータ転送制御を行なうものである。
【００４５】
そして、各中央演算処理部１１には、記憶ブロック転送手段１１Ａがそなえられている。この記憶ブロック転送手段１１Ａは、自中央演算処理部１１がデータ転送制御部１５に対して主記憶部１３と外部記憶部１６との間の同期転送命令を要求する際に、前記コマンドワードおよび転送対象データを含む記憶ブロックをキャッシュメモリ１４から主記憶部１３に転送するものである（請求項１）。
【００４６】
一方、本発明の請求項２記載の情報処理装置では、中央演算処理部１１の記憶ブロック転送手段１１Ａが、中央演算処理部１１がデータ転送制御部１５に対して同期転送命令の起動を要求した場合に、データ転送制御部１５が中央演算処理部１１からの起動要求受信時にコマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、データ転送制御部１５の処理を開始する前に、前記コマンドワードおよび転送対象データを含む記憶ブロックをキャッシュメモリ１４から主記憶部１３に転送する。
【００４７】
また、本発明の請求項３記載の情報処理装置では、データ転送制御部１５が中央演算処理部１１によって作成されるコマンドワードおよびデータの記憶アドレスを解析してデータ転送制御部１５が記憶制御部１２に対して発行するオペレーションコードに、データ転送制御部１５が指定したアドレスを含む記憶ブロックをキャッシュメモリ１４から主記憶部１３に転送する要求コードをそなえておき、中央演算処理部１１の記憶ブロック転送手段１１Ａが、データ転送制御部１５が中央演算処理部１１からの起動指示を受信した後に記憶制御部１２に対して前記オペレーションコードを発行した場合に、コマンドワードおよびデータを含む記憶ブロックをキャッシュメモリ１４から主記憶部１３に転送する。
【００４８】
なお、記憶制御部１２には、切換転送手段１２Ａがそなえられている。この切換転送手段１２Ａは、外部記憶部１６からのデータの転送格納先を主記憶部１３からキャッシュメモリ１４に切り換えそのデータの一部または全部をキャッシュメモリ１４に転送するものである（請求項４）。
そして、切換転送手段１２Ａは、中央演算処理部１１が外部記憶部１６から主記憶部１３に転送されるデータを転送終了後直ちに使用することを、中央演算処理部１１からコマンドワードにより指示されたデータ転送命令の種類に基づいて判断できる場合に、そのデータの転送格納先を主記憶部１３からキャッシュメモリ１４に切り換えそのデータの一部または全部をキャッシュメモリ１４に転送する（請求項５）。
【００４９】
このとき、データ転送制御部１５に、中央演算処理部１１が外部記憶部１６から主記憶部１３に転送されるデータを転送終了後直ちに使用することを属性情報として保持する属性情報保持手段と、この属性情報保持手段に保持された属性情報を記憶制御部１２の切換転送手段１２Ａに通知する通知手段とをそなえ、記憶制御部１２の切換転送手段１２Ａは、前記通知手段からの属性情報に応じて切換転送動作を行なうように構成してもよい（請求項６）。
【００５０】
また、データ転送制御部１５に、外部記憶部１６から主記憶部１３へデータ転送を行なう際に所定のデータ単位毎にそのデータの転送格納先を記憶制御部１２の切換転送手段１２Ａに通知する通知手段をそなえ、記憶制御部１２の切換転送手段１２Ａは、前記通知手段からの属性情報に応じて切換転送動作を行なうように構成してもよい（請求項７）。
【００５１】
【作用】
上述した本発明の情報処理装置（請求項１）では、自中央演算処理部１１がデータ転送制御部１５に対して主記憶部１３と外部記憶部１６との間のデータ転送を要求した後に、そのデータ転送を終了するまで次の命令処理を行なわない同期転送命令を要求する際、記憶ブロック転送手段１１Ａにより、コマンドワードおよび転送対象データを含む記憶ブロックがキャッシュメモリ１４から主記憶部１３に転送される。
【００５２】
これにより、データ転送制御部１５からの記憶制御部１２に対するコマンドワードおよび転送対象データのフェッチ要求が記憶制御部１２に対して行なわれた時に、直ちにコマンドワードおよび主記憶部１３上の転送対象となるデータを主記憶部１３からデータ転送制御部１５に供給することができる。
また、中央演算処理部１１がデータ転送制御部１５に対して同期転送命令の起動を要求する場合において、データ転送制御部１５が中央演算処理部１１からの起動要求受信時にコマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、データ転送制御部１５の処理を開始する前に、記憶ブロック転送手段１１Ａにより、コマンドワードおよび転送対象データを含む記憶ブロックをキャッシュメモリ１４から主記憶部１３に転送することにより（請求項２）、データ転送制御部１５による処理が開始可能となってコマンドワードおよび主記憶部１３上の転送対象データのフェッチ要求が記憶制御部１２に対して行なわれた時に、直ちにコマンドワードおよびデータをデータ転送制御部１５に供給することができる。
【００５３】
さらに、データ転送制御部１５が記憶制御部１２に対して発行するオペレーションコードに、データ転送制御部１５が指定したアドレスを含む記憶ブロックをキャッシュメモリ１４から主記憶部１３に転送する要求コードをそなえることにより、データ転送制御部１５から前記オペレーションコードが発行された場合に、記憶ブロック転送手段１１Ａにより、コマンドワードおよびデータを含む記憶ブロックをキャッシュメモリ１４から主記憶部１３に事前に転送することにより（請求項３）、データ転送制御部１５によるコマンドワードおよびデータの読出を直ちに行なうことができる。
【００５４】
一方、上述した本発明の情報処理装置（請求項４）では、記憶制御部１２の切換転送手段１２Ａにより、必要に応じて、外部記憶部１６からのデータの転送格納先を主記憶部１３からキャッシュメモリ１４に切り換えそのデータの一部または全部をキャッシュメモリ１４に転送することができる。
このとき、中央演算処理部１１からコマンドワードにより指示されたデータ転送命令の種類から、中央演算処理部１１が外部記憶部１６から主記憶部１３に転送したデータを転送終了後直ちに使用することが事前に判断できる場合、切換転送手段１２Ａにより、必要とされるデータの一部または全部を主記憶部１３ではなくキャッシュメモリ１４に転送することで（請求項５）、データ転送終了後に中央演算処理部１１がデータを直ちに処理することができる。
【００５５】
なお、データ転送制御部１５の属性情報保持手段に、中央演算処理部１１が外部記憶部１６から主記憶部１３に転送されるデータを転送終了後直ちに使用することを属性情報として保持し、その属性情報を通知手段により切換転送手段１２Ａに通知することにより（請求項６）、記憶制御部１２の切換転送手段１２Ａは、前記通知手段からの属性情報に応じて切換転送動作を行なうことができる。
【００５６】
また、外部記憶部１６から主記憶部１３へデータ転送を行なう際に、データ転送制御部１５の通知手段により、所定のデータ単位毎にそのデータの転送格納先（記憶機構のどの階層に格納さるか）を切換転送手段１２Ａに通知することで（請求項７）、記憶制御部１２の切換転送手段１２Ａは、所定のデータ単位毎に付与された属性情報に従って、各データをキャッシュメモリ１４または主記憶部１３に切り換えて転送することができる。
【００５７】
【実施例】
以下、図面を参照して本発明の実施例を説明する。
（ａ）本実施例の情報処理装置の構成の説明
図２は本発明の一実施例としての情報処理装置の構成を示すブロック図であり、この図２において、１は中央演算処理部（以下、ＣＰＵという）、２は記憶制御部（以下、ＭＣＵという）、３は主記憶部（以下、ＭＳＵという）で、ＭＳＵ３は、ＭＣＵ２を介して複数のＣＰＵ１に共用されている。
【００５８】
ここで、ＭＣＵ２は、各ＣＰＵ１とＭＳＵ３との間でデータの転送を制御するものである。
また、各ＣＰＵ１には、ＭＣＵ２を介してＭＳＵ３から転送されてきたデータをスワップ方式で保持するキャッシュメモリ（以下、ＬＢＳという）がそなえられている。
【００５９】
さらに、５はデータ転送制御部（以下、ＭＯＶＥＲという）で、このＭＯＶＥＲ５は、基本的には図１２で示した従来のものとほぼ同様に構成されており、各ＣＰＵ１からの起動指示を契機として、各ＣＰＵ１がＬＢＳ４もしくはＭＳＵ３内に作成したコマンドワード４Ａを参照して、ＭＣＵ２を介してＭＳＵ３と外部記憶部（以下、ＥＳＵという）６との間のデータ転送制御を行なうものである。
【００６０】
そして、本実施例では、各ＣＰＵ１に、記憶ブロック転送機能部（記憶ブロック転送手段）１Ａがそなえられている。この記憶ブロック転送機能部１Ａは、自ＣＰＵ１がＭＯＶＥＲ５に対してＭＳＵ３とＥＳＵ６との間の同期転送命令を要求する際に、コマンドワード４Ａおよび転送対象データを含む記憶ブロックをＬＢＳ４からＭＳＵ３に転送するものである。
【００６１】
なお、記憶ブロック転送機能部１Ａは、ＣＰＵ１がＭＯＶＥＲ５に対して同期転送命令の起動を要求した場合に、ＭＯＶＥＲ５がＣＰＵ１からの起動要求受信時にコマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、ＭＯＶＥＲ５の処理を開始する前に、前記コマンドワードおよび転送対象データを含む記憶ブロックをＬＢＳ４からＭＳＵ３に転送するようにしてもよい（図４により後述）。
【００６２】
また、ＭＯＶＥＲ５がＣＰＵ１によって作成されるコマンドワードおよびデータの記憶アドレスを解析してＭＯＶＥＲ５がＭＣＵ２に対して発行するオペレーションコードに、ＭＯＶＥＲ５が指定したアドレスを含む記憶ブロックをＬＢＳ４からＭＳＵ３に転送する要求コードをそなえておき、ＣＰＵ１の記憶ブロック転送機能部１Ａは、ＭＯＶＥＲ５がＣＰＵ１からの起動指示を受信した後にＭＣＵ２に対して前記オペレーションコードを発行した場合に、コマンドワードおよびデータを含む記憶ブロックをＬＳＢ４からＭＳＵ３に転送するようにしてもよい（図５により後述）。
【００６３】
一方、ＭＣＵ２には、セレクタ（切換転送手段）７がそなえられている。このセレクタ７は、従来もＬＢＳ４とＭＳＵ３とのいずれか一方をＭＯＶＥＲ５を介してＥＳＵ６と通信可能に切り換え接続するためにそなえらえれているが、本実施例では、ＥＳＵ６からのデータの転送格納先をＭＳＵ３からＬＢＳ４に切り換えそのデータの一部または全部をＬＢＳ４に転送する切換転送手段としての機能も果たしている。
【００６４】
このセレクタ７は、ＣＰＵ１がＥＳＵ６からＭＳＵ３に転送されるデータを転送終了後直ちに使用することを、ＣＰＵ１からコマンドワードにより指示されたデータ転送命令の種類に基づいて判断できる場合に、そのデータの転送格納先をＭＳＵ３からＬＢＳ４に切り換えそのデータの一部または全部をＬＢＳ４に転送する機能を有している。
【００６５】
このとき、図７により後述するごとく、ＭＯＶＥＲ５〔ＭＳＵアクセス制御機構５２（図１２参照）〕に、ＣＰＵ１がＥＳＵ６からＭＳＵ３に転送されるデータを転送終了後直ちに使用することを属性情報として保持する属性情報保持部５Ａと、この属性情報保持部５Ａに保持された属性情報をＭＣＵ２のセレクタ７に通知する通知機能部（通知手段）５Ｂとをそなえ、ＭＣＵ２のセレクタ７は、通知機能部５Ｂからの属性情報に応じて切換転送動作を行なうようにしてもよい。
【００６６】
また、図８により後述するごとく、ＭＯＶＥＲ５〔ＭＳＵアクセス制御機構５２（図１２参照）〕に、ＥＳＵ６からＭＳＵ３へデータ転送を行なう際に所定のデータ単位毎にそのデータの転送格納先をＭＣＵ２のセレクタ７に通知する通知機能部（通知手段）５Ｃをそなえ、ＭＣＵ２のセレクタ７は、通知機能部５Ｃからの属性情報に応じて切換転送動作を行なうように構成することもできる。
【００６７】
なお、本実施例においても、図１０に示したものと同様、８ＡはＣＰＵ１上のＬＢＳ４のタグ部（詳細は図１５参照）で、このタグ部８Ａは、ＬＢＳ４に登録されているデータを識別するためのエントリ情報であるタグ情報を格納するもので、ＬＢＳ４は、タグ情報とデータとを１つのエントリとして保持している。
また、ＭＣＵ２上にもタグ部８Ｂがそなえられ（図２，図１５参照）、このタグ部８Ｂに、各ＣＰＵ１のＬＢＳ４のタグ部８Ａが保持するタグ情報のコピーが保持されている。
【００６８】
（ｂ）同期転送要求時の動作例の説明
次に、本実施例の同期転送要求時の動作を図２，図３を参照しながら説明する。
ＣＰＵ１がコマンドワード４ＡをＬＢＳ４上に作成し、コマンドワード４Ａの先頭ＭＳＵ絶対アドレス，アクセスの属性情報などをＭＯＶＥＲ５に送るまでは、従来手順（図１３のＡ１〜Ａ３参照）と同様に、コマンドワード４ＡをＭＳＵ３またはＬＢＳ４上に作成し（図３のＡ１１参照）、ＬＢＳ４上にのみ書き込み（図３のＡ１２参照）、ＣＰＵ１はＭＯＶＥＲ５にコマンドワード４Ａの先頭ＭＳＵ絶対アドレス，アクセスの属性情報などを送り、転送起動要求を発行する（図２，図３のＡ１３参照）。
【００６９】
ただし、本実施例においては、ＣＰＵ１がアクセス要求をＭＯＶＥＲ５に送った後、ＣＰＵ１は、従来のごとく直ちに停止（インタロック）状態にならない。ＣＰＵ１は、ＬＢＳ４のタグ部８Ａをチェックすることによりコマンドワード４Ａの先頭ＭＳＵ絶対アドレスを含むブロックがＬＢＳ４に存在するかどうかを判断し、コマンドワード４ＡがＬＢＳ４に含まれる時には、ＬＢＳ４にコマンドワード４ＡをＭＳＵ３へ転送するように指示し（図３のＡ１４参照）、記憶ブロック転送機能部１Ａにより、コマンドワード４Ａを含む記憶ブロックをＬＢＳ４からＭＣＵ２を介してＭＳＵ３へ転送した後（図２，図３のＡ１５参照）、ＬＢＳ４内のタグ部８Ａのコマンドワード４Ａが保持されていたエントリを無効化する内部命令を追加している。
【００７０】
つまり、ＣＰＵ１は、アクセス要求をＭＯＶＥＲ５に送った後（図２，図３のＡ１３参照）、上記内部命令を実行することで、記憶ブロック転送機能部１Ａによりコマンドワード４ＡをＬＢＳ４からＭＳＵ３へ転送する。
また、コマンドワード４Ａは、ＭＳＵ３，ＥＳＵ６間転送のためにＭＳＵ３の絶対アドレスとＥＳＵ６の実アドレスとが対応付けられたフィールド（図１１参照）を有しており、ＭＯＶＥＲ５は、指定されたＭＳＵ絶対アドレスとＥＳＵ実アドレスとの間でデータ転送を行なう。
【００７１】
従って、アクセスがＭＳＵ３からＥＳＵ６へのデータ転送である時、コマンドワードの場合と同様に、ＣＰＵ１は、データをＥＳＵ６に送る前に指定されたＭＳＵ絶対アドレスのデータを上記内部命令を使用して、データがＬＢＳ４にある場合は自らの制御によりＭＳＵ３に転送しておくことが可能である。
このようにしてコマンドワードおよびデータを全てＬＢＳ４からＭＳＵ３Ｎい転送した後、ＣＰＵ１は、インタロック状態に入り、ＭＯＶＥＲ５が転送終了を示す割込みをかけるまで（図２，図９のＢ１８参照）停止状態になる。
【００７２】
一方、ＣＰＵ１からのアクセス要求を受けたＭＯＶＥＲ５では、その要求のもつ属性情報からそのアクセスが同期転送か非同期転送かを判別し（図３のＡ１６参照）、要求されたアクセスが実行可能な状態ならば、ＭＣＵ２に対してコマンドワード４Ａの読出を要求する（図３のＡ１７参照）。
ＭＣＵ２内にはそれぞれのＣＰＵ１内のＬＢＳ４のタグ部８Ａのコピーがタグ部８Ｂに保持されているので、ＭＣＵ２は、ＭＯＶＥＲ５からコマンドワード４Ａの読出要求を受けると、タグ部８Ｂを参照して、ＭＳＵ３に対しコマンドワード読出要求を発行する（図３のＡ１８参照）。
【００７３】
本実施例では、図３に示すように、ＭＯＶＥＲ５の処理と並行してＣＰＵ１のＬＢＳ４からＭＳＵ３へコマンドワード４Ａを転送する処理が行なわれているので、前述のようにＭＣＵ２がＭＳＵ３に対してコマンドワード読出要求を発行した時点では、コマンドワード４ＡはＭＳＵ３に格納されている。
従って、ＭＳＵ３は、ＭＣＵ２からのコマンドワード読出要求を受けると、コマンドワード４ＡをＭＣＵ２に転送し（図３のＡ１９参照）、さらにＭＣＵ２は、そのコマンドワード４ＡをＭＯＶＥＲ５に転送する（図３のＡ２０参照）。
【００７４】
以降は、図１３にて説明した従来手順と同様に、ＭＯＶＥＲ５において、ＭＣＷの内容がＭＳＵ３からＥＳＵ６へのデータ転送指定している場合、ＭＣＵ２から転送されてきたデータが、ＭＳＷ，ＭＣＷであるのか、ＭＳＵ３とＥＳＵ６との間の転送対象データであるのかを判別し（図３のＡ２１参照）、同期転送用のコマンドワードを解析し、現在実行中の命令ラッチを選択して、ＥＳＵ６を起動してＭＳＵ３とＥＳＵ６との間のデータ転送を開始する（図３のＡ２２参照）。
【００７５】
このように、本実施例によれば、ＣＰＵ１による内部命令の実行は、ＭＯＶＥＲ５へのコマンドワード４Ａの供給後、直ちにＭＯＶＥＲ５の動作と並行して行なわれるので、ＭＯＶＥＲ５がＭＣＵ２に対してデータの転送要求を発信するよりも、ＣＰＵ１がこのデータをＭＳＵ３に転送し始める時間が十分に早い。
従って、ＭＯＶＥＲ５は大部分の必要な全てのデータがＭＳＵ３上に存在していることになり、図１３の従来例と図３の本実施例とを比較しても明らかなように、データ転送処理を高速に行なうことができる。
【００７６】
（ｃ）同期転送待機中の動作例の説明
図３に示す動作例では、同期転送要求時に、記憶ブロック転送機能部１Ａにより記憶ブロックをＬＢＳ４からＭＳＵ３に転送する場合について説明したが、例えば、ＣＰＵ１が同期転送待機中の状態を利用して記憶ブロック転送機能部１Ａにより記憶ブロックをＬＢＳ４からＭＳＵ３に転送するようにしてもよい。以下に、図４を参照しながらこのような場合について説明する。
【００７７】
ＭＯＶＥＲ５が複数のＣＰＵ１により共有されている構成では、ＭＯＶＥＲ５がＣＰＵ１からコマンドワード４Ａの先頭アドレスと転送要求を受けた時に、ＭＯＶＥＲ５は既に他のＣＰＵ１からの転送要求を受けていて、先に受け付けた転送を実行中という状態である場合、ＭＯＶＥＲ５が先に受け付けた実行中のデータ転送要求が同期転送であるときには、新たな転送要求を受け付けてもその実行は実行中の同期転送が終了するまでＣＰＵ１は停止して待機することになるが、本実施例では、ＭＣＵ２が一定時間経過後に再要求を実行するまでの間に、同期転送終了待ちで実質的に停止状態にあるＣＰＵ１の記憶ブロック転送機能部１Ａを利用して、コマンドワードおよびデータを、ＬＢＳ４からＭＳＵ３に、はき出しておくことができる。
【００７８】
即ち、本実施例では、ＭＯＶＥＲ５がＣＰＵ１からの転送起動要求を受けた時（図１６のＣ１０参照）、ＥＳＵ６がＭＯＶＥＲ５によりデータ転送中で新たな転送起動要求を直ちに受け付けられないと判断した場合（図１６のＣ１１参照）、ＭＯＶＥＲ５は、受け付けられなかったことを示すコードをＭＣＵ２に返信し（図１６のＣ１２参照）、さらにＭＣＵ２はＭＯＶＥＲ５からのコードをＣＰＵ１に通知する（図４のＣ１３参照）。
【００７９】
このコードを通知されたＣＰＵ１はインタロック状態を解除され、コマンドワード４ＡおよびデータがＬＢＳ４にあるかＭＳＵ３にあるかをチェックし（図４のＣ１４参照）、ＬＢＳ４にあれば、記憶ブロック転送機能部１Ａによりその一部または全部をＭＳＵ３に転送し（図４のＣ１５参照）、ＣＰＵ１は再度インタロック状態になる。
【００８０】
ＭＯＶＥＲ５により転送起動要求が受け付けられなかった場合には、その旨を示すコードを受けたＭＣＵ２は、しばらく待機し一定時間後にＭＯＶＥＲ５に再度転送要求を発行する（図４のＣ１６参照）。この再要求時にＭＯＶＥＲ５が受け付け可能な状態であれば、図３と同様に、ＭＯＶＥＲ５は、そのアクセスが同期転送か非同期転送かを判別し、要求されたアクセスが実行可能な状態ならば、ＭＣＵ２に対してコマンドワード４Ａの読出を要求する（図４のＣ１７参照）。
【００８１】
また、ＭＣＵ２は、ＭＯＶＥＲ５からコマンドワード４Ａの読出要求を受けると、タグ部８Ｂを参照して、ＭＳＵ３に対しコマンドワード読出要求を発行する（図４のＣ１８参照）。
このとき、本実施例では、ＭＯＶＥＲ５が、他の転送要求を実行中のためにＣＰＵ１からの転送要求を受け付けられない状態にある時に、ＣＰＵ１のインタロック状態を解除し、記憶ブロック転送機能部１Ａによりコマンドワード４ＡおよびデータをＬＢＳ４からＭＳＵ３に転送しているので、ＭＯＶＥＲ５が新規命令を受け付け可能になった時に、コマンドワード４ＡおよびデータをＬＢＳからではなく、ＭＳＵ３から得ることができる。
【００８２】
従って、ＭＳＵ３は、ＭＣＵ２からのコマンドワード読出要求を受けると、コマンドワード４ＡをＭＣＵ２に転送し（図４のＣ１９参照）、さらにＭＣＵ２は、そのコマンドワード４ＡをＭＯＶＥＲ５に転送する（図４のＣ２０参照）。
この後、ＭＯＶＥＲ５において、ＭＣＷの内容がＭＳＵ３からＥＳＵ６へのデータ転送指定している場合、ＭＣＵ２から転送されてきたデータが、ＭＳＷ，ＭＣＷであるのか、ＭＳＵ３とＥＳＵ６との間の転送対象データであるのかを判別し、同期転送用のコマンドワードを解析し、現在実行中の命令ラッチを選択して、ＥＳＵ６を起動してＭＳＵ３とＥＳＵ６との間のデータ転送を開始する（図４のＣ２１参照）。
【００８３】
以上のように、ＭＯＶＥＲ５が、データ転送を受付可能な状態になりコマンドワード４Ａまたはデータの転送要求をＭＣＵ２に対して行なうまでの間に、同期転送終了待ちで実質的に停止状態にあるＣＰＵ１を利用して、コマンドワード４ＡまたはデータをＬＢＳ４からＭＳＵ２に転送しておくことができ、ＭＯＶＥＲ５は全てのデータがＭＳＵ３上に存在していることになり、図１６の従来例と図４の本実施例とを比較しても明らかなように、データ転送処理を高速に行なうことができる。
【００８４】
（ｄ）オペレーションコードによる記憶ブロック転送動作例の説明
ここで、再度、図４にて説明した例と同じ状況を考察してみると、ＭＯＶＥＲ５が同期転送実施中に他のＣＰＵ１からデータ転送要求を受けた時、ＭＯＶＥＲ５は受け付けることができない。しかし、ＭＯＶＥＲ５が新たなデータ転送を実行できない時には、ＣＰＵ１はＭＯＶＥＲ５が受け付け可能になるまで、ＭＯＶＥＲ５に対して一定時間毎にデータ転送の起動を再試行する。
【００８５】
このとき、ＭＯＶＥＲ５にはＣＰＵ１が作成したコマンドワード４Ａの先頭絶対アドレスが送られているのであるから、ＭＯＶＥＲ５とＭＣＵ２とに指定されたＭＳＵ絶対アドレスを含むブロックを、記憶ブロック転送機能部１ＡによりＬＢＳ４からＭＳＵ３に転送するというオペレーションコードがあれば、ＭＯＶＥＲ５は自装置がいずれ新規命令により事前にＬＢＳ４からＭＳＵ３に転送しておくことが可能である。
【００８６】
以下に、本実施例により、複数のＬＢＳ４のブロックを必要とする転送長で連続した絶対アドレスのデータをＥＳＵ６へ転送する場合について、図５に示すフローチャートを参照しながら説明する。
先頭ＭＳＵ絶対アドレスのデータと、先頭ＭＳＵ絶対アドレスからＬＢＳブロックの容量分だけ離れたＭＳＵ絶対アドレスのデータとは、先頭ＭＳＵ絶対アドレスが属しているＬＢＳブロックと異なるエントリである。
【００８７】
ここで、転送対象のデータが全てＬＢＳ４にあるとき、ＭＯＶＥＲ５が先頭絶対アドレスの転送要求をＭＣＵ２へ出力しＥＳＵ６へデータを転送する時点で、先頭ＭＳＵ絶対アドレスを含むＬＢＳブロックはＬＢＳ４からＭＳＵ３へと転送され、以降、先頭ＭＳＵ絶対アドレスと同じＬＢＳブロックからＥＳＵ６へ転送される限りは、ＭＳＵ３からデータが連続してＥＳＵ６へ転送される。
【００８８】
そして、先頭ＭＳＵ絶対アドレスと同じブロックに属していないデータがＥＳＵ６への転送対象になった時、ＭＯＶＥＲ５がデータの転送要求をＭＣＵ２に要求すると、データはＬＢＳ４に存在するので、ここで先頭ＭＳＵ絶対アドレスの場合と同じように転送対象ＭＳＵ絶対アドレスのデータが属するＬＢＳブロックがＬＢＳ４からＭＳＵ３へと転送される。
【００８９】
この時に、ＭＯＶＥＲ５は先頭ＭＳＵ絶対アドレスと転送長とが分かっており、また、ＬＢＳ４のブロックの容量も情報処理装置固有の値であるので、実際にＭＯＶＥＲ５がＭＣＵ２に転送要求を出力する前に、先頭ＭＳＵ絶対アドレスと別のＬＢＳブロックに属するデータのＭＳＵ絶対アドレスを判断することができる。
【００９０】
そこで、前出の指定ＭＳＵ絶対アドレスを含むＬＢＳブロックをＬＢＳ４からＭＳＵ３に転送するオペレーションコードを、ＭＯＶＥＲ５のＭＣＵ２に対するデータの転送要求に先立って出力しておくことで、ＭＯＶＥＲ５がＭＣＵ２にデータの転送要求を出力する前に、記憶ブロック転送機能部１Ａにより、データをＭＳＵ３に転送しておくことが可能になる。
【００９１】
ここで、図１２に示したＭＯＶＥＲ５の構成を考慮してみると、ＭＯＶＥＲ５は、ＭＳＵ３からＥＳＵ６へのデータ転送の際には、次の転送対象データが格納されているＭＳＵ絶対アドレスを加算器５９で計算しつつ、その結果をＭＳＵアクセス制御機構５２に供給してＭＣＵ２にデータの転送要求を発行している。
また、ＭＳＵ３内のＥＳＵ６への転送対象データのＭＳＵ絶対アドレスにＬＢＳ４の記憶ブロックの容量分だけ加算したアドレスで示される記憶位置は、確実に加算前のＭＳＵ絶対アドレスで示される記憶位置とは別のＬＢＳ４の記憶ブロック内に存在している。
【００９２】
つまり、本実施例では、残り転送長がＬＢＳブロックよりも大きい場合（図５のステップＳ１でＹＥＳ判定の場合）には、転送開始時点でのＭＳＵ絶対アドレスにＬＢＳ４の記憶ブロックの容量分だけ加算したＭＳＵ絶対アドレスをレジスタ（図示せず）に保持するとともに（図５のステップＳ２）、そのＭＳＵ絶対アドレスを使用して、ＭＯＶＥＲ５からＭＣＵ２に、本実施例で新規に追加したＬＢＳ４からＭＳＵ３へのはき出し命令（オペレーションコード）を発行することにより、レジスタのアドレスを含むＬＢＳブロックを、記憶ブロック転送機能部１ＡによりＬＢＳ４からＭＳＵ３に転送する（図５のステップＳ３）。なお、残り転送長がＬＢＳブロック以下の場合（図５のステップＳ１でＮＯ判定の場合）には、直ちに後述のステップＳ４へ移行する。
【００９３】
そして、残り転送長が０になったか否かを判定しながら（図５のステップＳ４）、０でなければ、ＭＣＵ２からＭＣＷで送られたＭＳＵ転送開始アドレスをデータ要求長ずつ加算器５９で加算しつつ、ＭＳＵアクセス制御機構５２を介してＭＣＵ２にＭＳＵ３からのデータ読出を要求するとともに、ＭＳＵアドレスが加算される時にアドレスが加算された分に対応して残り転送長を減算する（図５のステップＳ５）。
【００９４】
この後、ＭＳＵアドレスが前記レジスタに保持されているＭＳＵ絶対アドレスと等しいか否かを判定し（図５のステップＳ６）、等しくなければ、ステップＳ４へ戻る一方、等しい場合には、ステップＳ１に戻り、残り転送長が未だＬＢＳブロックよりも大きい場合には、そのアドレス一致のタイミングをトリガとして、レジスタに保持してあるＭＳＵ絶対アドレスにＬＢＳ４の記憶ブロックの容量分だけ加算したＭＳＵ絶対アドレスを使用して、ＬＢＳ４のはき出し命令を発行し、加算した結果のＭＳＵ絶対アドレスをレジスタに保持することを繰り返し行なう（図５のステップＳ２，Ｓ３）。
【００９５】
以上の処理は、ステップＳ４において残り転送長が０であると判定されるまで、繰り返し実行される。
このようにして、コマンドワード４ＡおよびデータをＭＯＶＥＲ５がＭＣＵ２にデータ転送要求を行なう前に、当該ＬＢＳ記憶ブロックのはき出しを行ない、コマンドワード４Ａおよびデータを高速にＭＯＶＥＲ５に供給することが可能である。
【００９６】
（ｅ）同期転送終了時の動作例の説明
ところで、従来、転送命令がＥＳＵ６からＭＳＵ３へのデータ転送である時には、ＭＣＵ２に送られたデータは全てＭＳＵ３に格納されていたが、ＣＰＵ１のＥＳＵ６に対する転送命令の幾つかには、転送終了後、直ちにＣＰＵ１がＥＳＵ６からＭＳＵ３に転送したデータを使用する部分があり、このようなデータはＥＳＵ６からＭＳＵ３にストアするのではなく、ＬＢＳ４に格納する方が望ましい。
【００９７】
例えば、ＩＢＭ社の“ＥＮＴＥＲＰＲＩＳＥ  ＳＹＳＴＥＭＳ  ＡＲＣＨＩＴＥＣＴＵＲＥ／３７０，  ＰＲＩＮＣＩＰＬＥＳ  ＯＦ  ＯＰＥＲＡＴＩＯＮ”に掲載されている“ＣＯＭＰＡＲＥ  ＡＮＤ  ＳＷＡＰ”と一般に呼ばれる命令を、１個または複数個のＣＰＵ１と、各ＣＰＵ１に共用されるＭＳＵ３と、このＭＳＵ３を含む記憶装置を制御するＭＣＵ２とが相互に接続されている装置（クラスタ，図２，図７参照）で実行する場合について以下に説明する。
【００９８】
この命令の実行のために用意するデータは、複数のＣＰＵ１によって共有されるＭＳＵ３上のアドレス（Ｄ２Ｂ２）と、Ｄ２Ｂ２で示されるアドレスに格納されているであろう期待値（Ｒ１）と、Ｄ２Ｂ２で示されるアドレスに新たにストアするデータ（Ｒ３）とである。この命令のオペランドをＣＳとすると、そのフォーマットは図６の（１）で示す通りである。
【００９９】
ここで、Ｒ１，Ｒ３，Ｂ２はＣＰＵ１内の汎用レジスタを使用している。Ｄ２Ｂ２のアドレスは、Ｂ２で示される汎用レジスタの内容にＤ２の値を加算することにより得られ、ＭＳＵ３の領域毎に特定のアドレスが割り当てられている。命令を実行すると、ＭＳＵ３のＤ２Ｂ２で示されたアドレスからデータをフェッチする。
【０１００】
ＣＰＵ１は、フェッチされたデータをＲ１レジスタの内容と比較し、フェッチされたデータとＲ１レジスタの内容とが同じものであれば、Ｒ３レジスタの内容をＤ２Ｂ２で示されたＭＳＵ３上のアドレスにストアし、更新に成功したことを示す条件コードをソフトウエアに通知する。
同様に、フェッチされた内容とＲ１レジスタの内容とが不一致の場合には、フェッチされた内容がＲ１レジスタに格納され、更新不成功を示す条件コードがソフトウエアに通知される。
【０１０１】
Ｄ２Ｂ２で示されたアドレスに格納されているデータを参照してからＲ１レジスタの内容と比較され、不一致の場合は比較されるまで、一致した場合はＲ３レジスタの内容をＤ２Ｂ２で示されたアドレスに格納するまで、他のＣＰＵ１のＤ２Ｂ２で示されたアドレスに対する読出または書込は禁止される。
ＰＲＩＮＣＩＰＬＥ  ＯＦ  ＯＰＥＲＡＴＩＯＮでは、上記の命令で指示されるアドレスは、１個または複数のＣＰＵ１で共有されるＭＳＵアドレスであるが、図７に示すように、ＥＳＵ６を１個または複数のクラスタ１０−１，１０−２で共有する場合にも、この命令のアドレスの指示をＥＳＵアドレスとした同じ動作をする拡張命令が考えられる。この拡張命令のオペランドをＣＤＳＥＤとすると、そのフォーマットは図６の（２）で示す通りである。ここで、Ｒ１，Ｒ３は上述したＭＳＵ３の場合と同じくＣＰＵ１のレジスタに格納されるデータであり、Ｄ２Ｂ２はＥＳＵ６のアドレスを示している。そして、拡張命令の実際の使用例は以下の通りである。
【０１０２】
クラスタ１０−１がＥＳＵ６のある領域を使用しようとする場合に、ある時点でクラスタ１０−１がＥＳＵ６にある値（ここでは“１”とする）をストアしたとする。次に他のクラスタ１０−２が同じアドレスに違う値（ここでは“２”とする）をストアした時、後にクラスタ１０−１が先程データ“１”を書き込んだアドレスにはデータ“１”が書き込まれていると判断して（実際にはデータ“２”がストアされている）プログラムを実行すると、そこから得られた結果は期待される結果と異なったものになる。
【０１０３】
そこで、“ＣＯＭＰＡＲＥ  ＡＮＤ  ＳＷＡＰ”命令をクラスタ１０−１，１０−２とＥＳＵ６との間に拡張した命令を使用し、ＥＳＵ６のある領域を使用してクラスタ１０−１が処理を行なう時に他のクラスタ１０−２が同じ領域を書き替えることがないように制御する。
Ｄ２Ｂ２で指定するアドレスは、ＥＳＵ６の領域毎に特定のアドレスが用意されている。ここでは、Ｄ２Ｂ２で示されるアドレスには、通常、“０”がストアされているとし、Ｒ１レジスタには“０”が、クラスタ１０−１のＲ３には“１”が、クラスタ１０−２のＲ２レジスタには“２”が設定されている。
【０１０４】
クラスタ１０−１のＣＰＵ１がある領域を使用する前に前記命令を実行する。そこで、Ｒ３レジスタで示されたアドレスに従って記憶装置から現在ストアされているデータをフェッチ（ここでは“０”）し（図６の▲１▼参照）、Ｒ１の値とフェッチした値とを比較するが、この例ではＲ１の値が“０”であり、フェッチした値も“０”なので、Ｒ３の値の“１”がＤ２Ｂ２（ロックフラグ）にストアされ（図６の▲２▼参照）、更新成功を示すコードがソフトウエアに通知される。
【０１０５】
更新成功となれば、クラスタ１０−１のＣＰＵ１は、ＥＳＵ６のある領域を使用する権利を得たことになり（図６の▲３▼参照）、ＥＳＵ６の該領域を使用する処理を実行し、処理が終了した時点でＤ２Ｂ２で示されたアドレスに“０”をストアする（図６の▲４▼参照）。
もし、クラスタ１０−１がＥＳＵ６のある領域を使用中に他のクラスタ１０−２のＣＰＵ１が同じ領域を使用しようとした場合、クラスタ１０−２のＣＰＵ１も、ＥＳＵ６の領域を使用する前に“ＣＯＭＰＡＲＥ  ＡＮＤ  ＳＷＡＰ”の拡張命令を前述したクラスタ１０−１の場合と同様に実行する。
【０１０６】
そして、Ｄ２Ｂ２で示されたアドレスに従って記憶装置からのその時ストアされているデータをフェッチし、ＭＳＵ３上の所定の位置に格納する。このとき、クラスタ１０−１がそのアドレスを“１”に書き替えているので、“１”がフェッチされる（図６の▲５▼参照）。そこで、Ｒ１の値とＭＳＵ３上に格納されたデータとが比較されるが、この場合、Ｒ１は“０”、ＭＳＵ３上に格納されたフェッチされたデータは“１”なので、不一致となり、更新不成功でＲ１には“１”が格納され、更新不成功を示すコードがソフトウエアに通知される。
【０１０７】
更新不成功が通知されると、Ｄ２Ｂ２に各クラスタ１０−１，１０−２に固有の値が書かれていれば、そのとき、該装置（ＥＳＵ６）を使用しているクラスタを知ることができ、またＲ１を元の値（この例では“０”）に書き替えて更新成功まで“ＣＯＭＰＡＲＥ  ＡＮＤ  ＳＷＡＰ”の拡張命令を繰り返し実行する。“ＣＯＭＰＡＲＥ  ＡＮＤ  ＳＷＡＰ”の拡張命令実行中は、他のクラスタ１０−１のＤ２Ｂ２で示されるアドレスの更新または参照は禁止されるので、ロックフラグで管理する記憶領域の使用権を制御することができる。
【０１０８】
ここで、クラスタ１０−１また１０−２のＣＰＵ１がＥＳＵ６を使用する時は、前出の例に従って“ＣＯＭＰＡＲＥ  ＡＮＤ  ＳＷＡＰ”の拡張命令を発行し、ＥＳＵ６の使用したい領域の使用権を取ってからＥＳＵ６にアクセスする（図７の▲１▼参照）。その命令を実行した結果、不一致であった場合、先の例によりフェッチしＭＳＵ３上に格納されたデータをＣＰＵ１内のレジスタに格納する必要がある（図７の▲３▼参照）。このことは、このフェッチしＭＳＵ３上に格納されるデータは、ＣＰＵ１のＬＢＳ４にストアされる方がデータをレジスタに供給する時間が短いので、命令を高速に実行することができることを意味する。
【０１０９】
本命令の場合、この時以外はアクセス終了後の転送状況通知以外は、データが、ＥＳＵ６から、命令を発行したＣＰＵ１に転送されることはないため、ＣＰＵ１は、本命令をＥＳＵ６が実行中はデータをセレクタ７を介してＬＢＳ４に無条件にストアするという属性を加えることが可能である。
そして、図７に示すように、この属性情報を格納・保持しうる属性情報保持部５ＡをＭＯＶＥＲ５内にそなえ、コマンドワードの先頭アドレスを通知する際にもしくはコマンドワード内でＭＯＶＥＲ５へ通知することにより、その属性情報を属性情報保持部５Ａに保持する。また、属性情報保持部５Ａに保持された属性情報をＭＣＵ２のセレクタ７に通知するための通知機能部５ＢをＭＯＶＥＲ５〔ＭＳＵアクセス制御機構（図１２の符号５２参照）〕にそなえておく。
【０１１０】
このように構成することで、ＭＯＶＥＲ５がＭＣＵ２に対してデータを転送する際に、自身のＭＳＵアクセス制御機構（図１２の符号５２参照）を使用してこの属性をＭＣＵ２に通知すれば、ＭＣＵ２は、そのデータをＬＢＳ４にストアするかＭＳＵ３にストアするかを判断し、セレクタ７で切換転送することが可能である。もしくは、ＭＯＶＥＲ５は、ＭＳＵアクセス制御機構を使用して、転送データをＥＳＵ６からＭＳＵ３に転送する際にこの属性をＭＣＵ２に送ることができる。
【０１１１】
これにより、命令を高速に実行し、データの転送速度を高速化し、ロック保存期間を短縮することができ、システムの性能を大幅に向上させることができる。（ｆ）同期転送終了時の他の動作例の説明
さて、ＣＰＵ１のＥＳＵ６に対する転送命令に際し、転送終了後、直ちにＣＰＵ１がＥＳＵ６からの転送データを使用すべく、データをＥＳＵ６からＬＢＳ４に直接転送・格納する例として、図６，図７では、“ＣＯＭＰＡＲＥ  ＡＮＤ  ＳＷＡＰ”の拡張命令に際して更新不成功となり、その更新不成功を示すコードを通知する場合について説明したが、図１４により前述したように、例えば、転送終了情報（エラー情報等）を含むコマンドワードも、ＥＳＵ６からＭＳＵ３にストアするのではなく、ＬＢＳ４に格納する方が望ましい。
【０１１２】
例えば、ＣＰＵ１はＥＳＵ６に対しデータ転送を要求する時にコマンドワードのフレーム（図２の符号４Ａ参照）を作成しフレームの先頭アドレスをＭＯＶＥＲ５に対して通知し、ＭＯＶＥＲ５は先頭アドレスをＭＳＵ３またはＬＢＳ４からコマンドデータを得る。
そして、データ転送終了時には、ＥＳＵ６は、エラー情報などのデータ転送情報の要求を、受け付けた時と同じコマンドワードのフレームの定まったビット（ＭＳＷ内）にストアする。ＥＳＵ６からＭＳＵ３へのデータ転送時に、ＭＯＶＥＲ５からＭＣＵ２に転送されるデータは、転送対象データと転送終了情報である。
【０１１３】
このとき、全ての転送対象データをＬＢＳ４に格納することは、前述したように、必要なキャッシュエントリをＬＢＳ４からＭＳＵ３に追い出す事態を生じることになり、逆にデータの処理性能を落としてしまいかねないため、安易にＥＳＵ６からのデータをＬＢＳ４に登録するわけにはいかない。従って、本実施例でも、転送対象データは、セレクタ７を介してＭＳＵ３に格納される。
【０１１４】
しかし、転送終了情報は、転送対象データに比べてデータの大きさは小さく、転送終了の割込みがＣＰＵ１にかかった後、すぐにＣＰＵ１は転送終了情報を参照する。このとき、ＬＢＳ４にデータを格納した方がよいか、ＭＳＵ３にデータを格納した方がよいかは、ＥＳＵ６とＭＳＵ３との間のデータ転送の命令の種類によらないので、ＣＰＵ１が、データをＬＢＳ４に送るかＭＳＵ３に送るかを示す属性を付与することは不可能である。
【０１１５】
この場合、図８に示すように、ＭＯＶＥＲ５からＭＣＵ２に対する信号に、ＭＯＶＥＲ５からＭＣＵ２に転送するデータはＭＳＵ３ではなくＬＢＳ４に転送するという属性を示す信号を追加し、ＭＯＶＥＲ５（ＭＳＵアクセス制御機構５２）の通知機能部５Ｃによりその属性信号を各データに付与してＭＣＵ２のセレクタ７に通知する。
【０１１６】
転送終了情報をＬＢＳ４に転送するという属性を付与したいのであれば、終了情報をＭＣＵ２に転送する際に、転送状態信号としてＭＯＶＥＲ５に保持されている残り転送長（図１２により前述）に基づいて、これからＭＣＵ２に転送する信号は転送終了情報であるか否かを判断することができる。
これにより、ＭＳＵアクセス制御機構５２を使用して、データをＬＢＳ４に転送するという信号をＭＣＵ２に通知することが可能になる。
【０１１７】
このように構成することにより、図８に示すように、ＭＯＶＥＲ５はデータ転送終了時のデータ転送情報をＭＣＵ２に転送する際に新規追加信号を使用して、ＭＯＶＥＲ５からコマンドワードの終了コードの格納要求を受けたＭＣＵ２は、新規追加信号（属性）に応じてセレクタ７をＭＳＵ３側からＣＰＵ１のＬＢＳ４側に切り換えることにより、データをＭＳＵ３ではなくＬＢＳ４に格納することが可能になる。
【０１１８】
次に、図９により、転送終了時（もしくはエラー検出時）における、転送終了コマンドとエラーなどの終了情報をＣＰＵ１に転送する際の、本実施例の動作について説明する。なお、この図９は、前述した図１４にて説明した従来のものに対応している。
ＭＯＶＥＲ５は、最後のデータをＥＳＵ６に転送した後に、全てのデータをＥＳＵ６に転送したことを示すフラグをＥＳＵ６に送る。ＥＳＵ６は、全データの処理を終了した後、もしくは、エラーが検出された時に、転送終了コマンドとエラーなどの終了情報をＭＯＶＥＲ５に通知する（図９のＢ１２参照）。全データ転送終了後、ＭＯＶＥＲ５は、コマンドワードのＭＳＷ内の定められたフィールドにエラー情報などを書き込む（図９のＢ１３参照）。
【０１１９】
ＭＯＶＥＲ５からＭＣＵ２に対してエラー情報等を含むＭＳＷのストア要求を行ない（図９のＢ１４参照）、ＭＯＶＥＲ５からＭＣＵ２へデータが送られると、ＭＣＵ２は、図８に示すように、ＭＯＶＥＲ５からＭＳＷに与えられた属性に従ってセレクタ７  を切り換えることにより、ＭＣＵ２からＣＰＵ１のＬＢＳ４に対してＭＳＷのストアを要求する（図９のＢ１５参照）。このとき、データは従来と同様に全てＭＳＵ３にストアされる。
【０１２０】
ＬＢＳ４はＭＳＷのストアを完了するとＭＣＵ２に正常終了通知を行ない（図９のＢ１６参照）、さらに、ＭＣＵ２は、その正常終了通知をＭＯＶＥＲ５に対して行なう（図９のＢ１７参照）。
このようにしてエラー情報等を書き込まれたＭＳＷのＬＢＳ３へのストアを終了し、正常終了通知を受けたＭＯＶＥＲ５は、コマンドの転送終了をアクセス要求発信元のＣＰＵ１に割込み発信し（図９のＢ１８参照）、ＣＰＵ１のインタロックを解除する。
【０１２１】
その後、ＣＰＵ１は、ＭＳＷに格納された転送の終了情報をチェックするために、ＬＢＳ４に対して転送の終了情報（エラー情報等）をもつＭＳＷを要求し（図９のＢ１９参照）、ＭＳＷのエラー情報とステータス情報をチェックし同期転送を終了する（図９のＢ２０参照）。
以上、図６〜図９により説明した通り、本実施例によれば、転送対象データについては従来通りＭＳＵ３にストアするが、高速性を要求されるデータ要素（更新不成功コードや転送終了情報など）については、ＭＯＶＥＲ５に設定された属性に応じて、ＭＳＵ３ではなくＬＢＳ４へ直接書き込むようにしたので、図１４の従来例と図９の本実施例とを比較しても明らかなように、ＭＳＵ３とＥＳＵ６との間のデータ転送終了時にデータ転送が終了したことを示す割込みがＣＰＵ１にかかった後で、ＭＳＵ３に格納したデータを参照する場合に比べて、ＣＰＵ１はより高速にデータ転送終了コードを参照でき、システムの性能を大幅に向上させることができる。
【０１２２】
【発明の効果】
以上詳述したように、本発明の情報処理装置（請求項１）によれば、自中央演算処理部がデータ転送制御部に対して主記憶部と外部記憶部との間の同期転送命令を要求する際に、記憶ブロック転送手段により、コマンドワードおよび転送多少データを含む記憶ブロックがキャッシュメモリから主記憶部に転送されるので、データ転送制御部からの記憶制御部に対するコマンドワードおよび転送対象データのフェッチ要求が記憶制御部に対して行なわれた時には、直ちにコマンドワードおよび主記憶部上の転送対象となるデータを主記憶部からデータ転送制御部に供給することができ、データ転送処理を高速に行なえる効果がある。
【０１２３】
また、データ転送制御部が中央演算処理部からの同期転送起動要求受信時にコマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、データ転送制御部の処理開始前に、記憶ブロック転送手段により、コマンドワードおよび転送対象データを含む記憶ブロックをキャッシュメモリから主記憶部に転送することにより（請求項２）、データ転送制御部による処理が開始可能となってコマンドワードおよび主記憶部上の転送対象データのフェッチ要求が記憶制御部に対して行なわれた時に、直ちにコマンドワードおよびデータをデータ転送制御部に供給することができ、データ転送処理を高速に行なえる効果がある。
【０１２４】
さらに、データ転送制御部が記憶制御部に対して発行するオペレーションコードに、データ転送制御部が指定したアドレスを含む記憶ブロックをキャッシュメモリから主記憶部に転送する要求コードをそなえることにより、データ転送制御部から前記オペレーションコードが発行された場合に、記憶ブロック転送手段により、コマンドワードおよびデータを含む記憶ブロックをキャッシュメモリから主記憶部に事前に転送することにより（請求項３）、データ転送制御部によるコマンドワードおよびデータの読出を直ちに行なうことができ、データ転送処理を高速に行なえる効果がある。
【０１２５】
また、記憶制御部の切換転送手段により（請求項４）、外部記憶部からのデータの転送格納先を主記憶部からキャッシュメモリに切り換えそのデータの一部または全部をキャッシュメモリに転送することができ、ＣＰＵの処理で高速性を要求されるデータ要素を必要に応じてキャッシュメモリへ直接書き込むことができ、データ転送処理を高速に行なえる効果がある。
【０１２６】
このとき、中央演算処理部からコマンドワードにより指示されたデータ転送命令の種類から、中央演算処理部が外部記憶部から主記憶部に転送したデータを転送終了後直ちに使用することが事前に判断できる場合、切換転送手段により、必要とされるデータの一部または全部を主記憶部ではなくキャッシュメモリに転送することで（請求項５）、データ転送終了後に中央演算処理部がデータを直ちに処理することができ、データ転送処理を高速に行なえる効果がある。
【０１２７】
また、データ転送制御部の属性情報保持手段に、中央演算処理部が外部記憶部から主記憶部に転送されるデータを転送終了後直ちに使用することを属性情報として保持し、その属性情報を通知手段により切換転送手段に通知することにより（請求項６）、記憶制御部の切換転送手段により、前記通知手段からの属性情報に応じて切換転送動作が行なわれ、データ転送終了後に中央演算処理部がデータを直ちに処理することができ、データ転送処理を高速に行なえる効果がある。
【０１２８】
さらに、外部記憶部から主記憶部へデータ転送を行なう際に、データ転送制御部の通知手段により、所定のデータ単位毎にそのデータの転送格納先を切換転送手段に通知することで（請求項７）、記憶制御部の切換転送手段により、所定のデータ単位毎に付与された属性情報に従って、各データがキャッシュメモリまたは主記憶部に切り換えて転送され、データ転送終了後に中央演算処理部がデータを直ちに処理することができ、データ転送処理を高速に行なえる効果がある。
【図面の簡単な説明】
【図１】本発明の原理ブロック図である。
【図２】本発明の一実施例としての情報処理装置の構成を示すブロック図である。
【図３】本実施例の同期転送要求時の動作を説明するための図である。
【図４】本実施例の同期転送待機中の動作を説明するための図である。
【図５】本実施例のオペレーションコードによる記憶ブロック転送動作を説明するためのフローチャートである。
【図６】本実施例の動作を説明するための図である。
【図７】本実施例の構成および動作を説明するためのブロック図である。
【図８】本実施例の構成および動作を説明するためのブロック図である。
【図９】本実施例の同期転送終了時の動作を説明するための図である。
【図１０】一般的な情報処理装置の構成例を示すブロック図である。
【図１１】一般的なコマンドワードの例を示す図である。
【図１２】一般的なデータ転送制御部（ＭＯＶＥＲ）の構成を示すブロック図である。
【図１３】従来の同期転送要求時の動作例を説明するための図である。
【図１４】従来の同期転送終了時の動作例を説明するための図である。
【図１５】タグ部のデータ格納例を示す図である。
【図１６】従来の同期転送待機中の動作例を説明するための図である。
【符号の説明】
１  中央演算処理部（ＣＰＵ）
１Ａ  記憶ブロック転送機能部（記憶ブロック転送手段）
２  記憶制御部（ＭＣＵ）
３  主記憶部（ＭＳＵ）
４  キャッシュメモリ（ローカルバッファ記憶部，ＬＢＳ）
４Ａ  コマンドワード
５  データ転送制御部（ＭＯＶＥＲ）
５Ａ  属性情報保持部（属性情報保持手段）
５Ｂ，５Ｃ  通知機能部（通知手段）
６  外部記憶部（ＥＳＵ）
７  セレクタ（切換転送手段）
８Ａ，８Ｂ  タグ部
１０−１，１０−２  クラスタ
１１  中央演算処理部（ＣＰＵ）
１１Ａ  記憶ブロック転送手段
１２  記憶制御部（ＭＣＵ）
１２Ａ  切換転送手段
１３  主記憶部（ＭＳＵ）
１４  キャッシュメモリ（ＬＢＳ）
１５  データ転送制御部（ＭＯＶＥＲ）
１６  外部記憶部（ＥＳＵ）
５０Ａ〜５０Ｄ  データバス
５１  ラッチ部
５２  ＭＳＵアクセス制御機構
５３  データ／コマンド判別部
５４  同期／非同期転送判別部
５５  同期転送用ラッチ部
５６  非同期転送用ラッチ部
５７，５８  セレクタ
５９  加算器
【図１】
0003566746.tif 000002
【図２】
0003566746.tif 000003
【図３】
0003566746.tif 000004
【図４】
0003566746.tif 000005
【図５】
0003566746.tif 000006
【図６】
0003566746.tif 000007
【図７】
0003566746.tif 000008
【図８】
0003566746.tif 000009
【図９】
0003566746.tif 000010
【図１０】
0003566746.tif 000011
【図１１】
0003566746.tif 000012
【図１２】
0003566746.tif 000013
【図１３】
0003566746.tif 000014
【図１４】
0003566746.tif 000015
【図１５】
0003566746.tif 000016
【図１６】
0003566746.tif 000017