JP3566746B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP3566746B2 JP3566746B2 JP04543294A JP4543294A JP3566746B2 JP 3566746 B2 JP3566746 B2 JP 3566746B2 JP 04543294 A JP04543294 A JP 04543294A JP 4543294 A JP4543294 A JP 4543294A JP 3566746 B2 JP3566746 B2 JP 3566746B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- unit
- control unit
- central processing
- 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 - Fee Related
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
(目次)
産業上の利用分野
従来の技術(図10〜図16)
発明が解決しようとする課題(図13,図14,図16)
課題を解決するための手段(図1)
作用(図1)
実施例
(a)本実施例の情報処理装置の構成の説明(図2)
(b)同期転送要求時の動作例の説明(図2,図3)
(c)同期転送待機中の動作例の説明(図4)
(d)オペレーションコードによる記憶ブロック転送動作例の説明(図5)
(e)同期転送終了時の動作例の説明(図6,図7)
(f)同期転送終了時の他の動作例の説明(図8,図9)
発明の効果
【0002】
【産業上の利用分野】
本発明は、共通の主記憶部のデータを用いて並列動作する複数の中央演算処理部に、主記憶部のデータをスワップ方式で保持するキャッシュメモリをそなえてなる情報処理装置に関し、特に、主記憶部の記憶容量を補うべくさらに外部記憶部をそなえてなる情報処理装置に関する。
【0003】
近年の情報処理装置には、大量のデータを高速に処理することが要求されるが、そのデータ量の伸びは主記憶装置の容量の伸びをはるかに超える要求量であり、必然的に拡張記憶装置や半導体ディスク,磁気ディスクなどの外部記憶装置が必要とされる。また、外部記憶装置と主記憶装置との間のデータ転送性能がシステムのスループットに大きく影響するため、より高速なデータ転送能力が求められている。
【0004】
【従来の技術】
一般に、情報処理の高速化に伴い、多数のプロセッサユニットを並列的に動作させることが行なわれている。このような情報処理装置では、例えば図10に示すように、複数の中央演算処理部(以下、CPUという)1が、記憶制御部(以下、MCUという)2を介して共通の主記憶部(以下、MSUという)3に接続されている。
【0005】
また、各CPU1には、MSU3からMCU2を介して読み出したデータ等をスワップ(ストアイン)方式で保持するローカルバッファ記憶部(キャッシュメモリ;以下、LBSという)4がそなえられている。このLBS4は、MSU3よりも小容量であるが高速処理が可能なもので、CPU1とMSU3との間の処理速度差を緩和することにより、各CPU1での演算処理の高速化をはかるようになっている。
【0006】
そして、近年、MSU3の記憶容量を補うべく、上述のような情報処理装置においては、図10に示すごとく、MCU2に、データ転送制御部(以下、MOVERという)5を介して外部記憶部(以下、ESUという)6をそなえることも行なわれている。
ここで、MOVER5は、CPU1がLBS4またはMSU3に作成したコマンドワード(後述,図10ではLBS4内の符号4A参照)を参照して、記憶機構(MSU3やLBS4)とESU6との間でデータの転送操作を行なうものであり、ESU6は、MOVER5からの指示によりデータの格納および読出を行なうものである。
【0007】
なお、MOVER5は、図12に示すように、ラッチ部51,MSUアクセス制御機構52,データ/コマンド判別部53,同期/非同期転送判別部54,同期転送用ラッチ部55,非同期転送用ラッチ部56,セレクタ57,58および加算器59から構成されており、各部の機能説明については、以下の動作説明で併せて行なう。
【0008】
また、図12中、50AはMOVER5からMCU2へのデータバス、50BはMCU2からMOVER5へのデータバス、50CはMOVER5からESU6へのデータバス、50DはESU6からMOVER5へのデータバスである。上述した情報処理装置では、MSU3,MOVER5,LBS4がMCU2を介して相互にデータの送受信を行なうようになっている。
【0009】
なお、図10において、7はMCU2上に設けられたセレクタで、このセレクタ7は、LBS4とMSU3とのいずれか一方を、MOVER5を介してESU6と通信可能に切り換え接続するためのものである。
また、8AはCPU1上のLBS4のタグ部で、このタグ部8Aは、LBS4に登録されているデータを識別するためのエントリ情報であるタグ情報を格納するもので、LBS4は、タグ情報とデータとを1つのエントリとして保持している。
【0010】
そして、タグ部8Aは、図15に示すように、データのMSU絶対アドレスや、他のCPU1内のLBS4のデータとの排他制御を行なうための属性ビットなどをLBSタグ情報として保持している。さらに、図15に示すように、MCU2上にもタグ部8Bがそなえられ、このタグ部8Bに、各CPU1のLBS4のタグ部8Aが保持するタグ情報のコピーが保持されている。
【0011】
さて、CPU1がESU6とMSU3との間のデータ転送を要求する場合を、図10〜図16により説明する。
この場合、まず、CPU1は、MSU3とESU6とのアドレスを対応付け、データ長および転送動作の内容を記述したコマンドワード(図10ではLBS4内の符号4A参照)をMSU3またはLBS4上に作成する(図13のA1参照)。
【0012】
コマンドワード4Aは、例えば図11に示すように、MSW(Mover Status Word)とMCW(Mover Command Word)との2つの部分から構成されている。MCWは転送内容を指定し、MSWには、MCWで指定された転送動作のMOVER5による処理結果が格納される。CPU1は、MSWを参照することで指定したデータ転送が正しく処理されたかどうかを知ることができる。
【0013】
MCWの内容は、転送データのMSU絶対アドレス,ESU6のアドレスデータ長,転送方向等から構成される。MOVER5は、CPU1から起動されると、指定されたMCWのMSU絶対アドレスからMCWを読み出して指定されたデータ転送を行ない、その結果をMSWに格納する。
MSWには、CPU1によってコマンドワード4Aが作成される時には全てのビットが0に設定されている。MOVER5は、ESU6とMSU3またはLBS4との間のデータ転送終了時に終了情報をMSWに書き込み、MSWを、転送の終了情報をCPU1に伝えるために使用する。また、MCWには、転送データのESU6の転送長,ESU6の転送開始実アドレス,MSU3の転送長,MSU3の転送開始絶対アドレスがセットされ、ESU実アドレスとMSU絶対アドレスとが対応付けられている。
【0014】
一般に、情報処理装置の記憶機構はページと呼ばれる所定の記憶容量を単位の集合体として構成されており、記憶機構は単純にページをまたがった転送することはできない。これは、一般にこのような記憶装置では仮想記憶方式が採用されており、論理アドレスでは連続している2つのページがあるとしても、物理的に見た場合には離散的に存在しているかも知れないからである。
【0015】
ここで説明する例においては、ESU6のページサイズは16kバイト,MSU3のページサイズは4kバイトであり、且つ、転送はESU6のページをまたがらないものとし、転送開始アドレスは8バイト単位で指定可能であるために、1つのESUページに対し最大5つのMSUページが対応付けられ、事実上、ESU6に指定される転送長が1つの転送要求における総転送長を示す。MSU3では物理的に離散して存在している5つ以下のページが、ESU6のページでは連続した実アドレスの1ページ内に格納されることになる。
【0016】
スワップ方式のキャッシュメモリ(LBS4)では、CPU1が任意のアドレスに対してデータ更新を行なった時点では、LBS4上のデータのみを更新し、キャッシュエントリのリプレースメントが生じた場合や、他CPU1が同一記憶ブロックに対して更新を行なう場合等に更新データをLBS4からMSU3に書き出すことによって、MSU3上のデータの更新が行なわれる。従って、CPU1がMOVER5に対するコマンドワード4Aを記憶空間に書き込む時には、LBS4上にのみ書き込まれる(図13のA2参照)。
【0017】
CPU1がコマンドワード4AをLBS4に書き込む時に、対応するタグ部8Aに対してコマンドワード4AがLBS4上に存在することを示すタグの属性情報を書き換える。その後、CPU1はMOVER5にコマンドワード4Aの先頭MSU絶対アドレス,アクセスの属性情報などを送り、転送起動要求を発行する(図10,図13のA3参照)。MOVER5に同期転送要求を発行したCPU1には、インタロックがかかり、MOVER5がESU6とMSU3との間の転送が終了した時にその転送終了をCPU1に通知するまで、CPU1は停止状態になる。
【0018】
CPU1からの転送起動要求は転送要求が非同期転送か同期転送かを示す属性情報を有しているので、MOVER5は、同期/非同期転送判別部54によりそのアクセスが同期転送か非同期転送かを判別し(図13のA4参照)、要求されたアクセスが実行可能な状態ならば、MSUアクセス制御機構52からデータバス50Aを通しMCU2に対してコマンドワード4Aの読出を要求する(図12,図13のA5参照)。MOVER5が他CPUからの同期転送実行中の場合と、非同期命令実行中にCPU1から非同期転送要求を受けた場合は、MOVER5はCPU1からの転送要求を実行でき、CPU1は一定時間後に転送起動要求をMOVER5に再発行する。
【0019】
MCU2内にはそれぞれのCPU1内のLBS4のタグ部8Aのコピーがタグ部8Bに保持されているので(図15参照)、MCU2は、MOVER5からコマンドワード4Aの読出要求を受けると、MOVER5から受けたMCWのMSU絶対アドレスを参照してLBS4上にあるか否かを判断可能であり、LBS4に保持されていればCPU1に該エントリのはき出し要求を行ない、LBS4に保持されていなければMSU3に対してコマンドワード読出要求を発行する。
【0020】
同期転送の場合、CPU1はESU6のアクセスに必要なコマンドワード4Aを作成し、MOVER5にアクセス要求を発行した後は転送終了までインタロック状態にあるので、コマンドワード4AはLBS4上に存在する確率が非常に高い。従って、MOVER5からコマンドワード4Aの転送要求が来た時には、MCU2は非常に高い確率でLBS4に対して転送要求を発行することになる(図13のA6参照)。
【0021】
もしコマンドワード4AがLBS4にあるならば、MOVER5から転送要求が出されるとLBS4内のコマンドワード4Aはブロック単位にMSU3に一旦転送された後、MSU3からMCU2を介してMOVER5に転送され(図13のA7,A8参照)、同時にLBS4のタグ部8A,8Bでは、コマンドワード4Aを保持していたエントリを無効化する。
【0022】
コマンドワード4AがMOVER5に供給され(図12,図13のA8参照)、ラッチ部51に格納されると、MSUアクセス制御機構52は、MCWの内容がMSU3からESU6へのデータ転送を指定している場合、MCU2からデータバス50Bを通して転送されてきたデータが、MSW,MCWであるのか、MSU3とESU6との間の転送対象データであるのかをデータ/コマンド判別部53により判別する(図13のA9参照)。
【0023】
ここで、非同期転送実行中にMOVER5に同期転送要求が転送されてきたとすると、同期転送を先に処理する。このため、MOVER5では、少なくとも同期転送用と非同期転送用の制御情報保持手段として同期転送用ラッチ部55および非同期転送用ラッチ部56がそなえられ、指定されたデータ転送の種別を同期/非同期転送判別部54により判別し、判別された種別に応じて各々のMSWおよびMCWをラッチ部55または56に保持する。そして、MOVER5では、同期転送用のコマンドワードを解析し、セレクタ57により現在実行中の命令ラッチ(ラッチ部55または56)を選択して、ESU6を起動してMSU3とESU6との間のデータ転送を開始する(図13のA10参照)。
【0024】
MSU3またはLBS4からESU6へのデータ転送の場合、データについても、コマンドワード4Aと同様にMCU2内のタグ部8Bを参照して、LBS4内にあるかMSU3内にあるかが判断され、読み出された後にMOVER5(データバス50B,判別部53,セレクタ57,データバス50C)を経由してESU6へ転送される。また、ESU6からMSU3へデータ転送する場合は、CPU1がESU6から転送されたデータをすぐに必要とするかどうか分からないため、ESU6からの転送データは、LBS4には転送されず全てMSU3にストアされる。
【0025】
次に、MSU3からESU6へのデータ転送時の動作を説明する。ESU6の起動後、MCWで送られたMSU,ESU転送開始アドレスをデータ要求長ずつ加算器59で加算しつつMSUアクセス制御機構52を介して、MCU2にMSU3からのデータ読出を要求する。
MCU2からデータバス50Bを通してデータが供給されると、先のコマンドワード4Aの場合と同様に、MSUアクセス制御機構52は、MCU2から転送された転送対象データを、判別部53,セレクタ57,データバス50Cを介してESU6に送る。
【0026】
MSU,ESUアドレスが加算される時にアドレスが加算された分に対応してMSU,ESUの転送長を減算することにより、残りの転送長を判断することができる。その後は残り転送長が0になるまで、MSU3へのデータ転送要求,転送されてきたデータのESU6への転送を各々のアドレスを加算しながら繰り返す。
【0027】
そして、MOVER5は、最後のデータをESU6に転送した後に、全てのデータをESU6に転送したことを示すフラグをESU6に送る。ESU6は、全データの処理を終了した後、もしくは、エラーが検出された時に、転送終了コマンドとエラーなどの終了情報をMOVER5に通知する(図14のB1参照)。全データ転送終了後、MOVER5は、コマンドワードのMSW内の定められたフィールドにエラー情報などを書き込む(図14のB2参照)。
【0028】
MOVER5からMCU2に対してエラー情報等を含むMSWのストア要求を行ない(図14のB3参照)、MOVER5からデータバス50Aを通してMCU2へデータが送られると、MCU2からMSU3に対してMSWのストアを要求し(図14のB4参照)、データは全てMSU3にストアされる。
MSU3はMSWのストアを完了するとMCU2に正常終了通知を行ない(図14のB5参照)、さらに、MCU2は、その正常終了通知をMOVER5に対して行なう(図14のB6参照)。
【0029】
このようにしてエラー情報等を書き込まれたMSWのMSU3へのストアを終了し、正常終了通知を受けたMOVER5は、コマンドの転送終了をアクセス要求発信元のCPU1に割込み要求を発信し(図10,図14のB7参照)、CPU1のインタロックを解除する。
その後、CPU1は、MSWに格納された転送の終了情報をチェックするために、MCU2に対して、終了情報(エラー情報等)を含むコマンドワードをMSU3からCPU1へ転送するように要求する(図14のB8参照)。この要求を受けたMCU2はMSU3に対してコマンドワードの読出を要求し(図14のB9参照)、コマンドワードは、MSU3からCPU1に転送されるとともにLBS4にも書き込まれる(図14のB10参照)。コマンドワードがCPU1に到達すると(図14のB11参照)、CPU1はMSWのエラー情報とステータス情報をチェックし同期転送を終了する。
【0030】
一方、MOVER5がCPU1からの転送起動要求を受けた時(図16のC1参照)、ESU6がMOVER5によりデータ転送中で新たな転送起動要求を直ちに受け付けられないと判断した場合(図16のC2参照)、MOVER5は、受け付けられなかったことを示すコードをMCU2に返信する(図16のC3参照)。
【0031】
このMOVER5からのコードを受けたMCU2はしばらく待機し、一定時間後にMCU2はMOVER5に再度転送要求を発行する(図16のC4参照)。この再要求時にMOVER5が受付可能な状態であれば、図13と同様に、MOVER5は、そのアクセスが同期転送か非同期転送かを判別し、要求されたアクセスが実行可能な状態ならば、MCU2に対してコマンドワード4Aの読出を要求する(図16のC5参照)。
【0032】
また、MCU2は、MOVER5からコマンドワード4Aの読出要求を受けると、タグ部8Bを参照して、LBS4に対しコマンドワード読出要求を発行する(図16のC6参照)。LBS4は、コマンドワード4AをMSU3に書き込んでからMCU2に転送し(図16のC7参照)、さらにMCU2は、そのコマンドワード4AをMOVER5に転送する(図16のC8参照)。
【0033】
この後、MOVER5は、コマンドワード4Aを解析して実行すべき処理の判別を行なってから、ESU6を起動してMSU3とESU6との間のデータ転送を開始する(図16のC9参照)。
【0034】
【発明が解決しようとする課題】
ところで、同期転送時に、CPU1は、コマンドワード4AをLBS4上に作成した後にインタロック状態となり、転送が終了してそのインタロック状態が解除されるまで停止している。そのため、MOVER5がコマンドワードを読み込もうとした時には、コマンドワードはLBS4に存在する確率が非常に高い。また、転送するデータも直前にCPU1が格納アクセスを行なうことにより作成されるために、LBS4に存在する確率が高い。
【0035】
MOVER5がデータを読み込むには、データはLBS4にあるよりもMSU3にある方が処理に要する時間は短い。それは、LBS4からMOVER5にデータが転送される時には、一度、LBS4からMSU3に転送された後に、MSU3からMOVER5にデータが転送されるからである(図13のA7〜A8参照)。且つ、LBS4は個々のCPU1に存在するため、複数ブロックの連続はき出しが極めて困難である。
【0036】
MOVER5からMCU2に対してデータ要求信号が発行された時に、MCU2内のタグ部8Bにおける各CPU1毎のLBSタグのコピーをチェックした結果、転送対象データがLBS4にあると判断された場合は、MCU2は最新データがあるLBS4に対してデータのMSU3へのはき出し要求を発行する。
MSU3へのデータはき出し要求を受けたLBS4は、要求データをMCU2に転送してLBSエントリのデータ属性を無効化する。もし、MCU2への転送対象データが複数のLBS4に共有されている場合は、データをLBS4からMCU2に転送すると同時に、各LBS4の転送対象データのエントリを無効化する。その後、LBS4からデータを受けたMCU2は、それを一旦MSU3に転送した後、MSU3からMOVER5に転送する。
【0037】
また、MOVER5からデータの転送要求がMCU2に発行された時に、そのデータがMSU3にある場合は、MCU2がMSU3に対してデータの転送要求を発行するだけであり、LBS4のタグ部8Aの操作は必要ない。
このことから、上述した従来の情報処理装置では、MOVER5からコマンドワードおよびデータの読出要求が行なわれた時に、コマンドワードおよびデータをLBS4からMSU3へ移動させる動作が必要となる確率が高く、転送性能の低下要因となっていた。
【0038】
一方、ESU6からMSU3へのデータ転送時、ESU6から読み込まれたデータはMSU3に書き込まれるが、ESU6からMSU3へのデータ転送時にデータがLBS4でなくMSU3に書き込まれると、そのデータの転送が終わってから直ちにMSU3に書き込まれたデータをCPU1が使用する場合、データをMSU3から転送する必要があって(図14のB8〜B10参照)、その分、時間的なロスを生じてしまう。
【0039】
また、仮にデータを全てLBS4に書き込む場合には、書き込まれたデータがCPU1に使用されることを保障できないと、必要なキャッシュエントリをMSU3に追い出す事態を生じることになり、逆にデータの処理性能を落としてしまいかねないため、安易にESU6からのデータをLBS4に登録するわけにはいかない。
【0040】
従って、上述した従来の情報処理装置では、高速性を要求されるデータ要素に対しても一律にMSU3に書き込んでおり、CPU1が必要なデータを取り出すためにMCU2を介してMSU3へアクセスすることになり、処理性能向上の障壁となっていた。
さらに、図16により前述したように、MOVER5が複数のCPU1により共有されている構成では、MOVER5がCPU1からコマンドワード4Aの先頭アドレスと転送要求を受けた時に、MOVER5は既に他のCPU1からの転送要求を受けており、先に受け付けた転送を実行中という状態が考えられる。MOVER5が先に受け付けた実行中のデータ転送要求が同期転送である場合には、新たな転送要求を受け付けてもその実行は実行中の同期転送が終了するまで待たされることになる。
【0041】
このとき、後からMOVER5に送られたデータ転送要求が非同期転送である場合は、データ転送の実行が待たされてもCPU1は次の処理を行なうので新たに送られた命令が同期転送である場合に比べ問題はないが、同期転送であった場合にはデータ転送が待たされると、先行しているデータ転送終了後にデータ転送が実行可能になりさらにその転送が終了するまでCPU1は停止したままで、処理効率の低下要因になる。
【0042】
また、MCU2からの再要求によりMOVER5が受付可能であった場合には、前述した通り、MOVER5からコマンドワードおよびデータの読出要求が行なわれた時に、コマンドワードおよびデータをLBS4からMSU3へ移動させる動作が必要となる確率が高く、やはり転送性能の低下要因となっていた。
本発明は、このような課題に鑑み創案されたもので、MOVERによるコマンドワードの参照をMSU上で直ちに行なえるようにし、またCPUの処理で高速性を要求されるデータ要素を必要に応じてLBSへ直接書き込むようにして、データ転送処理の高速化をはかった情報処理装置を提供することを目的とする。
【0043】
【課題を解決するための手段】
図1は本発明の原理ブロック図で、この図1において、11は中央演算処理部(CPU)、13は複数の中央演算処理部11に共用される主記憶部(MSU)、12は各中央演算処理部11と主記憶部13との間でデータの転送を制御する記憶制御部(MCU)、14は各中央演算処理部11毎にそなえられるキャッシュメモリ(LBS)で、このキャッシュメモリ14は、記憶制御部12を介して主記憶部13から転送されてきたデータをスワップ方式で保持するものである。
【0044】
また、15はデータ転送制御部(MOVER)で、このデータ転送制御部15は、各中央演算処理部11からの起動指示を契機として、各中央演算処理部11がキャッシュメモリ14もしくは主記憶部13内に作成したコマンドワードを参照して、記憶制御部12を介して主記憶部13と外部記憶部16との間のデータ転送制御を行なうものである。
【0045】
そして、各中央演算処理部11には、記憶ブロック転送手段11Aがそなえられている。この記憶ブロック転送手段11Aは、自中央演算処理部11がデータ転送制御部15に対して主記憶部13と外部記憶部16との間の同期転送命令を要求する際に、前記コマンドワードおよび転送対象データを含む記憶ブロックをキャッシュメモリ14から主記憶部13に転送するものである(請求項1)。
【0046】
一方、本発明の請求項2記載の情報処理装置では、中央演算処理部11の記憶ブロック転送手段11Aが、中央演算処理部11がデータ転送制御部15に対して同期転送命令の起動を要求した場合に、データ転送制御部15が中央演算処理部11からの起動要求受信時にコマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、データ転送制御部15の処理を開始する前に、前記コマンドワードおよび転送対象データを含む記憶ブロックをキャッシュメモリ14から主記憶部13に転送する。
【0047】
また、本発明の請求項3記載の情報処理装置では、データ転送制御部15が中央演算処理部11によって作成されるコマンドワードおよびデータの記憶アドレスを解析してデータ転送制御部15が記憶制御部12に対して発行するオペレーションコードに、データ転送制御部15が指定したアドレスを含む記憶ブロックをキャッシュメモリ14から主記憶部13に転送する要求コードをそなえておき、中央演算処理部11の記憶ブロック転送手段11Aが、データ転送制御部15が中央演算処理部11からの起動指示を受信した後に記憶制御部12に対して前記オペレーションコードを発行した場合に、コマンドワードおよびデータを含む記憶ブロックをキャッシュメモリ14から主記憶部13に転送する。
【0048】
なお、記憶制御部12には、切換転送手段12Aがそなえられている。この切換転送手段12Aは、外部記憶部16からのデータの転送格納先を主記憶部13からキャッシュメモリ14に切り換えそのデータの一部または全部をキャッシュメモリ14に転送するものである(請求項4)。
そして、切換転送手段12Aは、中央演算処理部11が外部記憶部16から主記憶部13に転送されるデータを転送終了後直ちに使用することを、中央演算処理部11からコマンドワードにより指示されたデータ転送命令の種類に基づいて判断できる場合に、そのデータの転送格納先を主記憶部13からキャッシュメモリ14に切り換えそのデータの一部または全部をキャッシュメモリ14に転送する(請求項5)。
【0049】
このとき、データ転送制御部15に、中央演算処理部11が外部記憶部16から主記憶部13に転送されるデータを転送終了後直ちに使用することを属性情報として保持する属性情報保持手段と、この属性情報保持手段に保持された属性情報を記憶制御部12の切換転送手段12Aに通知する通知手段とをそなえ、記憶制御部12の切換転送手段12Aは、前記通知手段からの属性情報に応じて切換転送動作を行なうように構成してもよい(請求項6)。
【0050】
また、データ転送制御部15に、外部記憶部16から主記憶部13へデータ転送を行なう際に所定のデータ単位毎にそのデータの転送格納先を記憶制御部12の切換転送手段12Aに通知する通知手段をそなえ、記憶制御部12の切換転送手段12Aは、前記通知手段からの属性情報に応じて切換転送動作を行なうように構成してもよい(請求項7)。
【0051】
【作用】
上述した本発明の情報処理装置(請求項1)では、自中央演算処理部11がデータ転送制御部15に対して主記憶部13と外部記憶部16との間のデータ転送を要求した後に、そのデータ転送を終了するまで次の命令処理を行なわない同期転送命令を要求する際、記憶ブロック転送手段11Aにより、コマンドワードおよび転送対象データを含む記憶ブロックがキャッシュメモリ14から主記憶部13に転送される。
【0052】
これにより、データ転送制御部15からの記憶制御部12に対するコマンドワードおよび転送対象データのフェッチ要求が記憶制御部12に対して行なわれた時に、直ちにコマンドワードおよび主記憶部13上の転送対象となるデータを主記憶部13からデータ転送制御部15に供給することができる。
また、中央演算処理部11がデータ転送制御部15に対して同期転送命令の起動を要求する場合において、データ転送制御部15が中央演算処理部11からの起動要求受信時にコマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、データ転送制御部15の処理を開始する前に、記憶ブロック転送手段11Aにより、コマンドワードおよび転送対象データを含む記憶ブロックをキャッシュメモリ14から主記憶部13に転送することにより(請求項2)、データ転送制御部15による処理が開始可能となってコマンドワードおよび主記憶部13上の転送対象データのフェッチ要求が記憶制御部12に対して行なわれた時に、直ちにコマンドワードおよびデータをデータ転送制御部15に供給することができる。
【0053】
さらに、データ転送制御部15が記憶制御部12に対して発行するオペレーションコードに、データ転送制御部15が指定したアドレスを含む記憶ブロックをキャッシュメモリ14から主記憶部13に転送する要求コードをそなえることにより、データ転送制御部15から前記オペレーションコードが発行された場合に、記憶ブロック転送手段11Aにより、コマンドワードおよびデータを含む記憶ブロックをキャッシュメモリ14から主記憶部13に事前に転送することにより(請求項3)、データ転送制御部15によるコマンドワードおよびデータの読出を直ちに行なうことができる。
【0054】
一方、上述した本発明の情報処理装置(請求項4)では、記憶制御部12の切換転送手段12Aにより、必要に応じて、外部記憶部16からのデータの転送格納先を主記憶部13からキャッシュメモリ14に切り換えそのデータの一部または全部をキャッシュメモリ14に転送することができる。
このとき、中央演算処理部11からコマンドワードにより指示されたデータ転送命令の種類から、中央演算処理部11が外部記憶部16から主記憶部13に転送したデータを転送終了後直ちに使用することが事前に判断できる場合、切換転送手段12Aにより、必要とされるデータの一部または全部を主記憶部13ではなくキャッシュメモリ14に転送することで(請求項5)、データ転送終了後に中央演算処理部11がデータを直ちに処理することができる。
【0055】
なお、データ転送制御部15の属性情報保持手段に、中央演算処理部11が外部記憶部16から主記憶部13に転送されるデータを転送終了後直ちに使用することを属性情報として保持し、その属性情報を通知手段により切換転送手段12Aに通知することにより(請求項6)、記憶制御部12の切換転送手段12Aは、前記通知手段からの属性情報に応じて切換転送動作を行なうことができる。
【0056】
また、外部記憶部16から主記憶部13へデータ転送を行なう際に、データ転送制御部15の通知手段により、所定のデータ単位毎にそのデータの転送格納先(記憶機構のどの階層に格納さるか)を切換転送手段12Aに通知することで(請求項7)、記憶制御部12の切換転送手段12Aは、所定のデータ単位毎に付与された属性情報に従って、各データをキャッシュメモリ14または主記憶部13に切り換えて転送することができる。
【0057】
【実施例】
以下、図面を参照して本発明の実施例を説明する。
(a)本実施例の情報処理装置の構成の説明
図2は本発明の一実施例としての情報処理装置の構成を示すブロック図であり、この図2において、1は中央演算処理部(以下、CPUという)、2は記憶制御部(以下、MCUという)、3は主記憶部(以下、MSUという)で、MSU3は、MCU2を介して複数のCPU1に共用されている。
【0058】
ここで、MCU2は、各CPU1とMSU3との間でデータの転送を制御するものである。
また、各CPU1には、MCU2を介してMSU3から転送されてきたデータをスワップ方式で保持するキャッシュメモリ(以下、LBSという)がそなえられている。
【0059】
さらに、5はデータ転送制御部(以下、MOVERという)で、このMOVER5は、基本的には図12で示した従来のものとほぼ同様に構成されており、各CPU1からの起動指示を契機として、各CPU1がLBS4もしくはMSU3内に作成したコマンドワード4Aを参照して、MCU2を介してMSU3と外部記憶部(以下、ESUという)6との間のデータ転送制御を行なうものである。
【0060】
そして、本実施例では、各CPU1に、記憶ブロック転送機能部(記憶ブロック転送手段)1Aがそなえられている。この記憶ブロック転送機能部1Aは、自CPU1がMOVER5に対してMSU3とESU6との間の同期転送命令を要求する際に、コマンドワード4Aおよび転送対象データを含む記憶ブロックをLBS4からMSU3に転送するものである。
【0061】
なお、記憶ブロック転送機能部1Aは、CPU1がMOVER5に対して同期転送命令の起動を要求した場合に、MOVER5がCPU1からの起動要求受信時にコマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、MOVER5の処理を開始する前に、前記コマンドワードおよび転送対象データを含む記憶ブロックをLBS4からMSU3に転送するようにしてもよい(図4により後述)。
【0062】
また、MOVER5がCPU1によって作成されるコマンドワードおよびデータの記憶アドレスを解析してMOVER5がMCU2に対して発行するオペレーションコードに、MOVER5が指定したアドレスを含む記憶ブロックをLBS4からMSU3に転送する要求コードをそなえておき、CPU1の記憶ブロック転送機能部1Aは、MOVER5がCPU1からの起動指示を受信した後にMCU2に対して前記オペレーションコードを発行した場合に、コマンドワードおよびデータを含む記憶ブロックをLSB4からMSU3に転送するようにしてもよい(図5により後述)。
【0063】
一方、MCU2には、セレクタ(切換転送手段)7がそなえられている。このセレクタ7は、従来もLBS4とMSU3とのいずれか一方をMOVER5を介してESU6と通信可能に切り換え接続するためにそなえらえれているが、本実施例では、ESU6からのデータの転送格納先をMSU3からLBS4に切り換えそのデータの一部または全部をLBS4に転送する切換転送手段としての機能も果たしている。
【0064】
このセレクタ7は、CPU1がESU6からMSU3に転送されるデータを転送終了後直ちに使用することを、CPU1からコマンドワードにより指示されたデータ転送命令の種類に基づいて判断できる場合に、そのデータの転送格納先をMSU3からLBS4に切り換えそのデータの一部または全部をLBS4に転送する機能を有している。
【0065】
このとき、図7により後述するごとく、MOVER5〔MSUアクセス制御機構52(図12参照)〕に、CPU1がESU6からMSU3に転送されるデータを転送終了後直ちに使用することを属性情報として保持する属性情報保持部5Aと、この属性情報保持部5Aに保持された属性情報をMCU2のセレクタ7に通知する通知機能部(通知手段)5Bとをそなえ、MCU2のセレクタ7は、通知機能部5Bからの属性情報に応じて切換転送動作を行なうようにしてもよい。
【0066】
また、図8により後述するごとく、MOVER5〔MSUアクセス制御機構52(図12参照)〕に、ESU6からMSU3へデータ転送を行なう際に所定のデータ単位毎にそのデータの転送格納先をMCU2のセレクタ7に通知する通知機能部(通知手段)5Cをそなえ、MCU2のセレクタ7は、通知機能部5Cからの属性情報に応じて切換転送動作を行なうように構成することもできる。
【0067】
なお、本実施例においても、図10に示したものと同様、8AはCPU1上のLBS4のタグ部(詳細は図15参照)で、このタグ部8Aは、LBS4に登録されているデータを識別するためのエントリ情報であるタグ情報を格納するもので、LBS4は、タグ情報とデータとを1つのエントリとして保持している。
また、MCU2上にもタグ部8Bがそなえられ(図2,図15参照)、このタグ部8Bに、各CPU1のLBS4のタグ部8Aが保持するタグ情報のコピーが保持されている。
【0068】
(b)同期転送要求時の動作例の説明
次に、本実施例の同期転送要求時の動作を図2,図3を参照しながら説明する。
CPU1がコマンドワード4AをLBS4上に作成し、コマンドワード4Aの先頭MSU絶対アドレス,アクセスの属性情報などをMOVER5に送るまでは、従来手順(図13のA1〜A3参照)と同様に、コマンドワード4AをMSU3またはLBS4上に作成し(図3のA11参照)、LBS4上にのみ書き込み(図3のA12参照)、CPU1はMOVER5にコマンドワード4Aの先頭MSU絶対アドレス,アクセスの属性情報などを送り、転送起動要求を発行する(図2,図3のA13参照)。
【0069】
ただし、本実施例においては、CPU1がアクセス要求をMOVER5に送った後、CPU1は、従来のごとく直ちに停止(インタロック)状態にならない。CPU1は、LBS4のタグ部8Aをチェックすることによりコマンドワード4Aの先頭MSU絶対アドレスを含むブロックがLBS4に存在するかどうかを判断し、コマンドワード4AがLBS4に含まれる時には、LBS4にコマンドワード4AをMSU3へ転送するように指示し(図3のA14参照)、記憶ブロック転送機能部1Aにより、コマンドワード4Aを含む記憶ブロックをLBS4からMCU2を介してMSU3へ転送した後(図2,図3のA15参照)、LBS4内のタグ部8Aのコマンドワード4Aが保持されていたエントリを無効化する内部命令を追加している。
【0070】
つまり、CPU1は、アクセス要求をMOVER5に送った後(図2,図3のA13参照)、上記内部命令を実行することで、記憶ブロック転送機能部1Aによりコマンドワード4AをLBS4からMSU3へ転送する。
また、コマンドワード4Aは、MSU3,ESU6間転送のためにMSU3の絶対アドレスとESU6の実アドレスとが対応付けられたフィールド(図11参照)を有しており、MOVER5は、指定されたMSU絶対アドレスとESU実アドレスとの間でデータ転送を行なう。
【0071】
従って、アクセスがMSU3からESU6へのデータ転送である時、コマンドワードの場合と同様に、CPU1は、データをESU6に送る前に指定されたMSU絶対アドレスのデータを上記内部命令を使用して、データがLBS4にある場合は自らの制御によりMSU3に転送しておくことが可能である。
このようにしてコマンドワードおよびデータを全てLBS4からMSU3Nい転送した後、CPU1は、インタロック状態に入り、MOVER5が転送終了を示す割込みをかけるまで(図2,図9のB18参照)停止状態になる。
【0072】
一方、CPU1からのアクセス要求を受けたMOVER5では、その要求のもつ属性情報からそのアクセスが同期転送か非同期転送かを判別し(図3のA16参照)、要求されたアクセスが実行可能な状態ならば、MCU2に対してコマンドワード4Aの読出を要求する(図3のA17参照)。
MCU2内にはそれぞれのCPU1内のLBS4のタグ部8Aのコピーがタグ部8Bに保持されているので、MCU2は、MOVER5からコマンドワード4Aの読出要求を受けると、タグ部8Bを参照して、MSU3に対しコマンドワード読出要求を発行する(図3のA18参照)。
【0073】
本実施例では、図3に示すように、MOVER5の処理と並行してCPU1のLBS4からMSU3へコマンドワード4Aを転送する処理が行なわれているので、前述のようにMCU2がMSU3に対してコマンドワード読出要求を発行した時点では、コマンドワード4AはMSU3に格納されている。
従って、MSU3は、MCU2からのコマンドワード読出要求を受けると、コマンドワード4AをMCU2に転送し(図3のA19参照)、さらにMCU2は、そのコマンドワード4AをMOVER5に転送する(図3のA20参照)。
【0074】
以降は、図13にて説明した従来手順と同様に、MOVER5において、MCWの内容がMSU3からESU6へのデータ転送指定している場合、MCU2から転送されてきたデータが、MSW,MCWであるのか、MSU3とESU6との間の転送対象データであるのかを判別し(図3のA21参照)、同期転送用のコマンドワードを解析し、現在実行中の命令ラッチを選択して、ESU6を起動してMSU3とESU6との間のデータ転送を開始する(図3のA22参照)。
【0075】
このように、本実施例によれば、CPU1による内部命令の実行は、MOVER5へのコマンドワード4Aの供給後、直ちにMOVER5の動作と並行して行なわれるので、MOVER5がMCU2に対してデータの転送要求を発信するよりも、CPU1がこのデータをMSU3に転送し始める時間が十分に早い。
従って、MOVER5は大部分の必要な全てのデータがMSU3上に存在していることになり、図13の従来例と図3の本実施例とを比較しても明らかなように、データ転送処理を高速に行なうことができる。
【0076】
(c)同期転送待機中の動作例の説明
図3に示す動作例では、同期転送要求時に、記憶ブロック転送機能部1Aにより記憶ブロックをLBS4からMSU3に転送する場合について説明したが、例えば、CPU1が同期転送待機中の状態を利用して記憶ブロック転送機能部1Aにより記憶ブロックをLBS4からMSU3に転送するようにしてもよい。以下に、図4を参照しながらこのような場合について説明する。
【0077】
MOVER5が複数のCPU1により共有されている構成では、MOVER5がCPU1からコマンドワード4Aの先頭アドレスと転送要求を受けた時に、MOVER5は既に他のCPU1からの転送要求を受けていて、先に受け付けた転送を実行中という状態である場合、MOVER5が先に受け付けた実行中のデータ転送要求が同期転送であるときには、新たな転送要求を受け付けてもその実行は実行中の同期転送が終了するまでCPU1は停止して待機することになるが、本実施例では、MCU2が一定時間経過後に再要求を実行するまでの間に、同期転送終了待ちで実質的に停止状態にあるCPU1の記憶ブロック転送機能部1Aを利用して、コマンドワードおよびデータを、LBS4からMSU3に、はき出しておくことができる。
【0078】
即ち、本実施例では、MOVER5がCPU1からの転送起動要求を受けた時(図16のC10参照)、ESU6がMOVER5によりデータ転送中で新たな転送起動要求を直ちに受け付けられないと判断した場合(図16のC11参照)、MOVER5は、受け付けられなかったことを示すコードをMCU2に返信し(図16のC12参照)、さらにMCU2はMOVER5からのコードをCPU1に通知する(図4のC13参照)。
【0079】
このコードを通知されたCPU1はインタロック状態を解除され、コマンドワード4AおよびデータがLBS4にあるかMSU3にあるかをチェックし(図4のC14参照)、LBS4にあれば、記憶ブロック転送機能部1Aによりその一部または全部をMSU3に転送し(図4のC15参照)、CPU1は再度インタロック状態になる。
【0080】
MOVER5により転送起動要求が受け付けられなかった場合には、その旨を示すコードを受けたMCU2は、しばらく待機し一定時間後にMOVER5に再度転送要求を発行する(図4のC16参照)。この再要求時にMOVER5が受け付け可能な状態であれば、図3と同様に、MOVER5は、そのアクセスが同期転送か非同期転送かを判別し、要求されたアクセスが実行可能な状態ならば、MCU2に対してコマンドワード4Aの読出を要求する(図4のC17参照)。
【0081】
また、MCU2は、MOVER5からコマンドワード4Aの読出要求を受けると、タグ部8Bを参照して、MSU3に対しコマンドワード読出要求を発行する(図4のC18参照)。
このとき、本実施例では、MOVER5が、他の転送要求を実行中のためにCPU1からの転送要求を受け付けられない状態にある時に、CPU1のインタロック状態を解除し、記憶ブロック転送機能部1Aによりコマンドワード4AおよびデータをLBS4からMSU3に転送しているので、MOVER5が新規命令を受け付け可能になった時に、コマンドワード4AおよびデータをLBSからではなく、MSU3から得ることができる。
【0082】
従って、MSU3は、MCU2からのコマンドワード読出要求を受けると、コマンドワード4AをMCU2に転送し(図4のC19参照)、さらにMCU2は、そのコマンドワード4AをMOVER5に転送する(図4のC20参照)。
この後、MOVER5において、MCWの内容がMSU3からESU6へのデータ転送指定している場合、MCU2から転送されてきたデータが、MSW,MCWであるのか、MSU3とESU6との間の転送対象データであるのかを判別し、同期転送用のコマンドワードを解析し、現在実行中の命令ラッチを選択して、ESU6を起動してMSU3とESU6との間のデータ転送を開始する(図4のC21参照)。
【0083】
以上のように、MOVER5が、データ転送を受付可能な状態になりコマンドワード4Aまたはデータの転送要求をMCU2に対して行なうまでの間に、同期転送終了待ちで実質的に停止状態にあるCPU1を利用して、コマンドワード4AまたはデータをLBS4からMSU2に転送しておくことができ、MOVER5は全てのデータがMSU3上に存在していることになり、図16の従来例と図4の本実施例とを比較しても明らかなように、データ転送処理を高速に行なうことができる。
【0084】
(d)オペレーションコードによる記憶ブロック転送動作例の説明
ここで、再度、図4にて説明した例と同じ状況を考察してみると、MOVER5が同期転送実施中に他のCPU1からデータ転送要求を受けた時、MOVER5は受け付けることができない。しかし、MOVER5が新たなデータ転送を実行できない時には、CPU1はMOVER5が受け付け可能になるまで、MOVER5に対して一定時間毎にデータ転送の起動を再試行する。
【0085】
このとき、MOVER5にはCPU1が作成したコマンドワード4Aの先頭絶対アドレスが送られているのであるから、MOVER5とMCU2とに指定されたMSU絶対アドレスを含むブロックを、記憶ブロック転送機能部1AによりLBS4からMSU3に転送するというオペレーションコードがあれば、MOVER5は自装置がいずれ新規命令により事前にLBS4からMSU3に転送しておくことが可能である。
【0086】
以下に、本実施例により、複数のLBS4のブロックを必要とする転送長で連続した絶対アドレスのデータをESU6へ転送する場合について、図5に示すフローチャートを参照しながら説明する。
先頭MSU絶対アドレスのデータと、先頭MSU絶対アドレスからLBSブロックの容量分だけ離れたMSU絶対アドレスのデータとは、先頭MSU絶対アドレスが属しているLBSブロックと異なるエントリである。
【0087】
ここで、転送対象のデータが全てLBS4にあるとき、MOVER5が先頭絶対アドレスの転送要求をMCU2へ出力しESU6へデータを転送する時点で、先頭MSU絶対アドレスを含むLBSブロックはLBS4からMSU3へと転送され、以降、先頭MSU絶対アドレスと同じLBSブロックからESU6へ転送される限りは、MSU3からデータが連続してESU6へ転送される。
【0088】
そして、先頭MSU絶対アドレスと同じブロックに属していないデータがESU6への転送対象になった時、MOVER5がデータの転送要求をMCU2に要求すると、データはLBS4に存在するので、ここで先頭MSU絶対アドレスの場合と同じように転送対象MSU絶対アドレスのデータが属するLBSブロックがLBS4からMSU3へと転送される。
【0089】
この時に、MOVER5は先頭MSU絶対アドレスと転送長とが分かっており、また、LBS4のブロックの容量も情報処理装置固有の値であるので、実際にMOVER5がMCU2に転送要求を出力する前に、先頭MSU絶対アドレスと別のLBSブロックに属するデータのMSU絶対アドレスを判断することができる。
【0090】
そこで、前出の指定MSU絶対アドレスを含むLBSブロックをLBS4からMSU3に転送するオペレーションコードを、MOVER5のMCU2に対するデータの転送要求に先立って出力しておくことで、MOVER5がMCU2にデータの転送要求を出力する前に、記憶ブロック転送機能部1Aにより、データをMSU3に転送しておくことが可能になる。
【0091】
ここで、図12に示したMOVER5の構成を考慮してみると、MOVER5は、MSU3からESU6へのデータ転送の際には、次の転送対象データが格納されているMSU絶対アドレスを加算器59で計算しつつ、その結果をMSUアクセス制御機構52に供給してMCU2にデータの転送要求を発行している。
また、MSU3内のESU6への転送対象データのMSU絶対アドレスにLBS4の記憶ブロックの容量分だけ加算したアドレスで示される記憶位置は、確実に加算前のMSU絶対アドレスで示される記憶位置とは別のLBS4の記憶ブロック内に存在している。
【0092】
つまり、本実施例では、残り転送長がLBSブロックよりも大きい場合(図5のステップS1でYES判定の場合)には、転送開始時点でのMSU絶対アドレスにLBS4の記憶ブロックの容量分だけ加算したMSU絶対アドレスをレジスタ(図示せず)に保持するとともに(図5のステップS2)、そのMSU絶対アドレスを使用して、MOVER5からMCU2に、本実施例で新規に追加したLBS4からMSU3へのはき出し命令(オペレーションコード)を発行することにより、レジスタのアドレスを含むLBSブロックを、記憶ブロック転送機能部1AによりLBS4からMSU3に転送する(図5のステップS3)。なお、残り転送長がLBSブロック以下の場合(図5のステップS1でNO判定の場合)には、直ちに後述のステップS4へ移行する。
【0093】
そして、残り転送長が0になったか否かを判定しながら(図5のステップS4)、0でなければ、MCU2からMCWで送られたMSU転送開始アドレスをデータ要求長ずつ加算器59で加算しつつ、MSUアクセス制御機構52を介してMCU2にMSU3からのデータ読出を要求するとともに、MSUアドレスが加算される時にアドレスが加算された分に対応して残り転送長を減算する(図5のステップS5)。
【0094】
この後、MSUアドレスが前記レジスタに保持されているMSU絶対アドレスと等しいか否かを判定し(図5のステップS6)、等しくなければ、ステップS4へ戻る一方、等しい場合には、ステップS1に戻り、残り転送長が未だLBSブロックよりも大きい場合には、そのアドレス一致のタイミングをトリガとして、レジスタに保持してあるMSU絶対アドレスにLBS4の記憶ブロックの容量分だけ加算したMSU絶対アドレスを使用して、LBS4のはき出し命令を発行し、加算した結果のMSU絶対アドレスをレジスタに保持することを繰り返し行なう(図5のステップS2,S3)。
【0095】
以上の処理は、ステップS4において残り転送長が0であると判定されるまで、繰り返し実行される。
このようにして、コマンドワード4AおよびデータをMOVER5がMCU2にデータ転送要求を行なう前に、当該LBS記憶ブロックのはき出しを行ない、コマンドワード4Aおよびデータを高速にMOVER5に供給することが可能である。
【0096】
(e)同期転送終了時の動作例の説明
ところで、従来、転送命令がESU6からMSU3へのデータ転送である時には、MCU2に送られたデータは全てMSU3に格納されていたが、CPU1のESU6に対する転送命令の幾つかには、転送終了後、直ちにCPU1がESU6からMSU3に転送したデータを使用する部分があり、このようなデータはESU6からMSU3にストアするのではなく、LBS4に格納する方が望ましい。
【0097】
例えば、IBM社の“ENTERPRISE SYSTEMS ARCHITECTURE/370, PRINCIPLES OF OPERATION”に掲載されている“COMPARE AND SWAP”と一般に呼ばれる命令を、1個または複数個のCPU1と、各CPU1に共用されるMSU3と、このMSU3を含む記憶装置を制御するMCU2とが相互に接続されている装置(クラスタ,図2,図7参照)で実行する場合について以下に説明する。
【0098】
この命令の実行のために用意するデータは、複数のCPU1によって共有されるMSU3上のアドレス(D2B2)と、D2B2で示されるアドレスに格納されているであろう期待値(R1)と、D2B2で示されるアドレスに新たにストアするデータ(R3)とである。この命令のオペランドをCSとすると、そのフォーマットは図6の(1)で示す通りである。
【0099】
ここで、R1,R3,B2はCPU1内の汎用レジスタを使用している。D2B2のアドレスは、B2で示される汎用レジスタの内容にD2の値を加算することにより得られ、MSU3の領域毎に特定のアドレスが割り当てられている。命令を実行すると、MSU3のD2B2で示されたアドレスからデータをフェッチする。
【0100】
CPU1は、フェッチされたデータをR1レジスタの内容と比較し、フェッチされたデータとR1レジスタの内容とが同じものであれば、R3レジスタの内容をD2B2で示されたMSU3上のアドレスにストアし、更新に成功したことを示す条件コードをソフトウエアに通知する。
同様に、フェッチされた内容とR1レジスタの内容とが不一致の場合には、フェッチされた内容がR1レジスタに格納され、更新不成功を示す条件コードがソフトウエアに通知される。
【0101】
D2B2で示されたアドレスに格納されているデータを参照してからR1レジスタの内容と比較され、不一致の場合は比較されるまで、一致した場合はR3レジスタの内容をD2B2で示されたアドレスに格納するまで、他のCPU1のD2B2で示されたアドレスに対する読出または書込は禁止される。
PRINCIPLE OF OPERATIONでは、上記の命令で指示されるアドレスは、1個または複数のCPU1で共有されるMSUアドレスであるが、図7に示すように、ESU6を1個または複数のクラスタ10−1,10−2で共有する場合にも、この命令のアドレスの指示をESUアドレスとした同じ動作をする拡張命令が考えられる。この拡張命令のオペランドをCDSEDとすると、そのフォーマットは図6の(2)で示す通りである。ここで、R1,R3は上述したMSU3の場合と同じくCPU1のレジスタに格納されるデータであり、D2B2はESU6のアドレスを示している。そして、拡張命令の実際の使用例は以下の通りである。
【0102】
クラスタ10−1がESU6のある領域を使用しようとする場合に、ある時点でクラスタ10−1がESU6にある値(ここでは“1”とする)をストアしたとする。次に他のクラスタ10−2が同じアドレスに違う値(ここでは“2”とする)をストアした時、後にクラスタ10−1が先程データ“1”を書き込んだアドレスにはデータ“1”が書き込まれていると判断して(実際にはデータ“2”がストアされている)プログラムを実行すると、そこから得られた結果は期待される結果と異なったものになる。
【0103】
そこで、“COMPARE AND SWAP”命令をクラスタ10−1,10−2とESU6との間に拡張した命令を使用し、ESU6のある領域を使用してクラスタ10−1が処理を行なう時に他のクラスタ10−2が同じ領域を書き替えることがないように制御する。
D2B2で指定するアドレスは、ESU6の領域毎に特定のアドレスが用意されている。ここでは、D2B2で示されるアドレスには、通常、“0”がストアされているとし、R1レジスタには“0”が、クラスタ10−1のR3には“1”が、クラスタ10−2のR2レジスタには“2”が設定されている。
【0104】
クラスタ10−1のCPU1がある領域を使用する前に前記命令を実行する。そこで、R3レジスタで示されたアドレスに従って記憶装置から現在ストアされているデータをフェッチ(ここでは“0”)し(図6の▲1▼参照)、R1の値とフェッチした値とを比較するが、この例ではR1の値が“0”であり、フェッチした値も“0”なので、R3の値の“1”がD2B2(ロックフラグ)にストアされ(図6の▲2▼参照)、更新成功を示すコードがソフトウエアに通知される。
【0105】
更新成功となれば、クラスタ10−1のCPU1は、ESU6のある領域を使用する権利を得たことになり(図6の▲3▼参照)、ESU6の該領域を使用する処理を実行し、処理が終了した時点でD2B2で示されたアドレスに“0”をストアする(図6の▲4▼参照)。
もし、クラスタ10−1がESU6のある領域を使用中に他のクラスタ10−2のCPU1が同じ領域を使用しようとした場合、クラスタ10−2のCPU1も、ESU6の領域を使用する前に“COMPARE AND SWAP”の拡張命令を前述したクラスタ10−1の場合と同様に実行する。
【0106】
そして、D2B2で示されたアドレスに従って記憶装置からのその時ストアされているデータをフェッチし、MSU3上の所定の位置に格納する。このとき、クラスタ10−1がそのアドレスを“1”に書き替えているので、“1”がフェッチされる(図6の▲5▼参照)。そこで、R1の値とMSU3上に格納されたデータとが比較されるが、この場合、R1は“0”、MSU3上に格納されたフェッチされたデータは“1”なので、不一致となり、更新不成功でR1には“1”が格納され、更新不成功を示すコードがソフトウエアに通知される。
【0107】
更新不成功が通知されると、D2B2に各クラスタ10−1,10−2に固有の値が書かれていれば、そのとき、該装置(ESU6)を使用しているクラスタを知ることができ、またR1を元の値(この例では“0”)に書き替えて更新成功まで“COMPARE AND SWAP”の拡張命令を繰り返し実行する。“COMPARE AND SWAP”の拡張命令実行中は、他のクラスタ10−1のD2B2で示されるアドレスの更新または参照は禁止されるので、ロックフラグで管理する記憶領域の使用権を制御することができる。
【0108】
ここで、クラスタ10−1また10−2のCPU1がESU6を使用する時は、前出の例に従って“COMPARE AND SWAP”の拡張命令を発行し、ESU6の使用したい領域の使用権を取ってからESU6にアクセスする(図7の▲1▼参照)。その命令を実行した結果、不一致であった場合、先の例によりフェッチしMSU3上に格納されたデータをCPU1内のレジスタに格納する必要がある(図7の▲3▼参照)。このことは、このフェッチしMSU3上に格納されるデータは、CPU1のLBS4にストアされる方がデータをレジスタに供給する時間が短いので、命令を高速に実行することができることを意味する。
【0109】
本命令の場合、この時以外はアクセス終了後の転送状況通知以外は、データが、ESU6から、命令を発行したCPU1に転送されることはないため、CPU1は、本命令をESU6が実行中はデータをセレクタ7を介してLBS4に無条件にストアするという属性を加えることが可能である。
そして、図7に示すように、この属性情報を格納・保持しうる属性情報保持部5AをMOVER5内にそなえ、コマンドワードの先頭アドレスを通知する際にもしくはコマンドワード内でMOVER5へ通知することにより、その属性情報を属性情報保持部5Aに保持する。また、属性情報保持部5Aに保持された属性情報をMCU2のセレクタ7に通知するための通知機能部5BをMOVER5〔MSUアクセス制御機構(図12の符号52参照)〕にそなえておく。
【0110】
このように構成することで、MOVER5がMCU2に対してデータを転送する際に、自身のMSUアクセス制御機構(図12の符号52参照)を使用してこの属性をMCU2に通知すれば、MCU2は、そのデータをLBS4にストアするかMSU3にストアするかを判断し、セレクタ7で切換転送することが可能である。もしくは、MOVER5は、MSUアクセス制御機構を使用して、転送データをESU6からMSU3に転送する際にこの属性をMCU2に送ることができる。
【0111】
これにより、命令を高速に実行し、データの転送速度を高速化し、ロック保存期間を短縮することができ、システムの性能を大幅に向上させることができる。(f)同期転送終了時の他の動作例の説明
さて、CPU1のESU6に対する転送命令に際し、転送終了後、直ちにCPU1がESU6からの転送データを使用すべく、データをESU6からLBS4に直接転送・格納する例として、図6,図7では、“COMPARE AND SWAP”の拡張命令に際して更新不成功となり、その更新不成功を示すコードを通知する場合について説明したが、図14により前述したように、例えば、転送終了情報(エラー情報等)を含むコマンドワードも、ESU6からMSU3にストアするのではなく、LBS4に格納する方が望ましい。
【0112】
例えば、CPU1はESU6に対しデータ転送を要求する時にコマンドワードのフレーム(図2の符号4A参照)を作成しフレームの先頭アドレスをMOVER5に対して通知し、MOVER5は先頭アドレスをMSU3またはLBS4からコマンドデータを得る。
そして、データ転送終了時には、ESU6は、エラー情報などのデータ転送情報の要求を、受け付けた時と同じコマンドワードのフレームの定まったビット(MSW内)にストアする。ESU6からMSU3へのデータ転送時に、MOVER5からMCU2に転送されるデータは、転送対象データと転送終了情報である。
【0113】
このとき、全ての転送対象データをLBS4に格納することは、前述したように、必要なキャッシュエントリをLBS4からMSU3に追い出す事態を生じることになり、逆にデータの処理性能を落としてしまいかねないため、安易にESU6からのデータをLBS4に登録するわけにはいかない。従って、本実施例でも、転送対象データは、セレクタ7を介してMSU3に格納される。
【0114】
しかし、転送終了情報は、転送対象データに比べてデータの大きさは小さく、転送終了の割込みがCPU1にかかった後、すぐにCPU1は転送終了情報を参照する。このとき、LBS4にデータを格納した方がよいか、MSU3にデータを格納した方がよいかは、ESU6とMSU3との間のデータ転送の命令の種類によらないので、CPU1が、データをLBS4に送るかMSU3に送るかを示す属性を付与することは不可能である。
【0115】
この場合、図8に示すように、MOVER5からMCU2に対する信号に、MOVER5からMCU2に転送するデータはMSU3ではなくLBS4に転送するという属性を示す信号を追加し、MOVER5(MSUアクセス制御機構52)の通知機能部5Cによりその属性信号を各データに付与してMCU2のセレクタ7に通知する。
【0116】
転送終了情報をLBS4に転送するという属性を付与したいのであれば、終了情報をMCU2に転送する際に、転送状態信号としてMOVER5に保持されている残り転送長(図12により前述)に基づいて、これからMCU2に転送する信号は転送終了情報であるか否かを判断することができる。
これにより、MSUアクセス制御機構52を使用して、データをLBS4に転送するという信号をMCU2に通知することが可能になる。
【0117】
このように構成することにより、図8に示すように、MOVER5はデータ転送終了時のデータ転送情報をMCU2に転送する際に新規追加信号を使用して、MOVER5からコマンドワードの終了コードの格納要求を受けたMCU2は、新規追加信号(属性)に応じてセレクタ7をMSU3側からCPU1のLBS4側に切り換えることにより、データをMSU3ではなくLBS4に格納することが可能になる。
【0118】
次に、図9により、転送終了時(もしくはエラー検出時)における、転送終了コマンドとエラーなどの終了情報をCPU1に転送する際の、本実施例の動作について説明する。なお、この図9は、前述した図14にて説明した従来のものに対応している。
MOVER5は、最後のデータをESU6に転送した後に、全てのデータをESU6に転送したことを示すフラグをESU6に送る。ESU6は、全データの処理を終了した後、もしくは、エラーが検出された時に、転送終了コマンドとエラーなどの終了情報をMOVER5に通知する(図9のB12参照)。全データ転送終了後、MOVER5は、コマンドワードのMSW内の定められたフィールドにエラー情報などを書き込む(図9のB13参照)。
【0119】
MOVER5からMCU2に対してエラー情報等を含むMSWのストア要求を行ない(図9のB14参照)、MOVER5からMCU2へデータが送られると、MCU2は、図8に示すように、MOVER5からMSWに与えられた属性に従ってセレクタ7 を切り換えることにより、MCU2からCPU1のLBS4に対してMSWのストアを要求する(図9のB15参照)。このとき、データは従来と同様に全てMSU3にストアされる。
【0120】
LBS4はMSWのストアを完了するとMCU2に正常終了通知を行ない(図9のB16参照)、さらに、MCU2は、その正常終了通知をMOVER5に対して行なう(図9のB17参照)。
このようにしてエラー情報等を書き込まれたMSWのLBS3へのストアを終了し、正常終了通知を受けたMOVER5は、コマンドの転送終了をアクセス要求発信元のCPU1に割込み発信し(図9のB18参照)、CPU1のインタロックを解除する。
【0121】
その後、CPU1は、MSWに格納された転送の終了情報をチェックするために、LBS4に対して転送の終了情報(エラー情報等)をもつMSWを要求し(図9のB19参照)、MSWのエラー情報とステータス情報をチェックし同期転送を終了する(図9のB20参照)。
以上、図6〜図9により説明した通り、本実施例によれば、転送対象データについては従来通りMSU3にストアするが、高速性を要求されるデータ要素(更新不成功コードや転送終了情報など)については、MOVER5に設定された属性に応じて、MSU3ではなくLBS4へ直接書き込むようにしたので、図14の従来例と図9の本実施例とを比較しても明らかなように、MSU3とESU6との間のデータ転送終了時にデータ転送が終了したことを示す割込みがCPU1にかかった後で、MSU3に格納したデータを参照する場合に比べて、CPU1はより高速にデータ転送終了コードを参照でき、システムの性能を大幅に向上させることができる。
【0122】
【発明の効果】
以上詳述したように、本発明の情報処理装置(請求項1)によれば、自中央演算処理部がデータ転送制御部に対して主記憶部と外部記憶部との間の同期転送命令を要求する際に、記憶ブロック転送手段により、コマンドワードおよび転送多少データを含む記憶ブロックがキャッシュメモリから主記憶部に転送されるので、データ転送制御部からの記憶制御部に対するコマンドワードおよび転送対象データのフェッチ要求が記憶制御部に対して行なわれた時には、直ちにコマンドワードおよび主記憶部上の転送対象となるデータを主記憶部からデータ転送制御部に供給することができ、データ転送処理を高速に行なえる効果がある。
【0123】
また、データ転送制御部が中央演算処理部からの同期転送起動要求受信時にコマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、データ転送制御部の処理開始前に、記憶ブロック転送手段により、コマンドワードおよび転送対象データを含む記憶ブロックをキャッシュメモリから主記憶部に転送することにより(請求項2)、データ転送制御部による処理が開始可能となってコマンドワードおよび主記憶部上の転送対象データのフェッチ要求が記憶制御部に対して行なわれた時に、直ちにコマンドワードおよびデータをデータ転送制御部に供給することができ、データ転送処理を高速に行なえる効果がある。
【0124】
さらに、データ転送制御部が記憶制御部に対して発行するオペレーションコードに、データ転送制御部が指定したアドレスを含む記憶ブロックをキャッシュメモリから主記憶部に転送する要求コードをそなえることにより、データ転送制御部から前記オペレーションコードが発行された場合に、記憶ブロック転送手段により、コマンドワードおよびデータを含む記憶ブロックをキャッシュメモリから主記憶部に事前に転送することにより(請求項3)、データ転送制御部によるコマンドワードおよびデータの読出を直ちに行なうことができ、データ転送処理を高速に行なえる効果がある。
【0125】
また、記憶制御部の切換転送手段により(請求項4)、外部記憶部からのデータの転送格納先を主記憶部からキャッシュメモリに切り換えそのデータの一部または全部をキャッシュメモリに転送することができ、CPUの処理で高速性を要求されるデータ要素を必要に応じてキャッシュメモリへ直接書き込むことができ、データ転送処理を高速に行なえる効果がある。
【0126】
このとき、中央演算処理部からコマンドワードにより指示されたデータ転送命令の種類から、中央演算処理部が外部記憶部から主記憶部に転送したデータを転送終了後直ちに使用することが事前に判断できる場合、切換転送手段により、必要とされるデータの一部または全部を主記憶部ではなくキャッシュメモリに転送することで(請求項5)、データ転送終了後に中央演算処理部がデータを直ちに処理することができ、データ転送処理を高速に行なえる効果がある。
【0127】
また、データ転送制御部の属性情報保持手段に、中央演算処理部が外部記憶部から主記憶部に転送されるデータを転送終了後直ちに使用することを属性情報として保持し、その属性情報を通知手段により切換転送手段に通知することにより(請求項6)、記憶制御部の切換転送手段により、前記通知手段からの属性情報に応じて切換転送動作が行なわれ、データ転送終了後に中央演算処理部がデータを直ちに処理することができ、データ転送処理を高速に行なえる効果がある。
【0128】
さらに、外部記憶部から主記憶部へデータ転送を行なう際に、データ転送制御部の通知手段により、所定のデータ単位毎にそのデータの転送格納先を切換転送手段に通知することで(請求項7)、記憶制御部の切換転送手段により、所定のデータ単位毎に付与された属性情報に従って、各データがキャッシュメモリまたは主記憶部に切り換えて転送され、データ転送終了後に中央演算処理部がデータを直ちに処理することができ、データ転送処理を高速に行なえる効果がある。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の一実施例としての情報処理装置の構成を示すブロック図である。
【図3】本実施例の同期転送要求時の動作を説明するための図である。
【図4】本実施例の同期転送待機中の動作を説明するための図である。
【図5】本実施例のオペレーションコードによる記憶ブロック転送動作を説明するためのフローチャートである。
【図6】本実施例の動作を説明するための図である。
【図7】本実施例の構成および動作を説明するためのブロック図である。
【図8】本実施例の構成および動作を説明するためのブロック図である。
【図9】本実施例の同期転送終了時の動作を説明するための図である。
【図10】一般的な情報処理装置の構成例を示すブロック図である。
【図11】一般的なコマンドワードの例を示す図である。
【図12】一般的なデータ転送制御部(MOVER)の構成を示すブロック図である。
【図13】従来の同期転送要求時の動作例を説明するための図である。
【図14】従来の同期転送終了時の動作例を説明するための図である。
【図15】タグ部のデータ格納例を示す図である。
【図16】従来の同期転送待機中の動作例を説明するための図である。
【符号の説明】
1 中央演算処理部(CPU)
1A 記憶ブロック転送機能部(記憶ブロック転送手段)
2 記憶制御部(MCU)
3 主記憶部(MSU)
4 キャッシュメモリ(ローカルバッファ記憶部,LBS)
4A コマンドワード
5 データ転送制御部(MOVER)
5A 属性情報保持部(属性情報保持手段)
5B,5C 通知機能部(通知手段)
6 外部記憶部(ESU)
7 セレクタ(切換転送手段)
8A,8B タグ部
10−1,10−2 クラスタ
11 中央演算処理部(CPU)
11A 記憶ブロック転送手段
12 記憶制御部(MCU)
12A 切換転送手段
13 主記憶部(MSU)
14 キャッシュメモリ(LBS)
15 データ転送制御部(MOVER)
16 外部記憶部(ESU)
50A〜50D データバス
51 ラッチ部
52 MSUアクセス制御機構
53 データ/コマンド判別部
54 同期/非同期転送判別部
55 同期転送用ラッチ部
56 非同期転送用ラッチ部
57,58 セレクタ
59 加算器
Claims (7)
- 複数の中央演算処理部と、該複数の中央演算処理部に共用される主記憶部と、各中央演算処理部と該主記憶部との間でデータの転送を制御する記憶制御部とをそなえ、
前記の各中央演算処理部が、該記憶制御部を介して該主記憶部から転送されてきたデータをスワップ方式で保持するキャッシュメモリを有するとともに、
前記の各中央演算処理部からの起動指示を契機として、前記の各中央演算処理部が該キャッシュメモリもしくは該主記憶部内に作成したコマンドワードを参照して、該記憶制御部を介して該主記憶部と外部記憶部との間のデータ転送制御を行なうデータ転送制御部をそなえてなる情報処理装置において、
前記の各中央演算処理部に、
自中央演算処理部が該データ転送制御部に対して該主記憶部と該外部記憶部との間の同期転送命令を要求する際に、前記コマンドワードおよび転送対象データを含む記憶ブロックを該キャッシュメモリから該主記憶部に転送する記憶ブロック転送手段がそなえられていることを
特徴とする、情報処理装置。 - 複数の中央演算処理部と、該複数の中央演算処理部に共用される主記憶部と、各中央演算処理部と該主記憶部との間でデータの転送を制御する記憶制御部とをそなえ、
前記の各中央演算処理部が、該記憶制御部を介して該主記憶部から転送されてきたデータをスワップ方式で保持するキャッシュメモリを有するとともに、
前記の各中央演算処理部からの起動指示を契機として、前記の各中央演算処理部が該キャッシュメモリもしくは該主記憶部内に作成したコマンドワードを参照して、該記憶制御部を介して該主記憶部と外部記憶部との間のデータ転送制御を行なうデータ転送制御部をそなえてなる情報処理装置において、
前記の各中央演算処理部に、
自中央演算処理部が該データ転送制御部に対して同期転送命令の起動を要求した場合に、該データ転送制御部が該中央演算処理部からの起動要求受信時に前記コマンドワードにより指示されたデータ転送を即時に開始できない状態である時に、該データ転送制御部の処理を開始する前に、前記コマンドワードおよび転送対象データを含む記憶ブロックを該キャッシュメモリから該主記憶部に転送する記憶ブロック転送手段がそなえられていることを特徴とする、情報処理装置。 - 複数の中央演算処理部と、該複数の中央演算処理部に共用される主記憶部と、各中央演算処理部と該主記憶部との間でデータの転送を制御する記憶制御部とをそなえ、
前記の各中央演算処理部が、該記憶制御部を介して該主記憶部から転送されてきたデータをスワップ方式で保持するキャッシュメモリを有するとともに、
前記の各中央演算処理部からの起動指示を契機として、前記の各中央演算処理部が該キャッシュメモリもしくは該主記憶部内に作成したコマンドワードを参照して、該記憶制御部を介して該主記憶部と外部記憶部との間のデータ転送制御を行なうデータ転送制御部をそなえてなる情報処理装置において、
該データ転送制御部が該中央演算処理部によって作成される前記コマンドワードおよびデータの記憶アドレスを解析して該データ転送制御部が該記憶制御部に対して発行するオペレーションコードに、該データ転送制御部が指定したアドレスを含む記憶ブロックを該キャッシュメモリから該主記憶部に転送する要求コードをそなえ、
該データ転送制御部が該中央演算処理部からの起動指示を受信した後に該記憶制御部に対して前記オペレーションコードを発行した場合に、前記コマンドワードおよびデータを含む記憶ブロックを該キャッシュメモリから該主記憶部に転送する記憶ブロック転送手段が前記の各中央演算処理部にそなえられていることを特徴とする、情報処理装置。 - 該外部記憶部からのデータの転送格納先を該主記憶部から該キャッシュメモリに切り換え当該データの一部または全部を該キャッシュメモリに転送する切換転送手段が、該記憶制御部にそなえられていることを特徴とする、請求項1〜請求項3のいずれか一項に記載の情報処理装置。
- 該切換転送手段が、
該中央演算処理部が該外部記憶部から該主記憶部に転送されるデータを転送終了後直ちに使用することを、該中央演算処理部から前記コマンドワードにより指示されたデータ転送命令の種類に基づいて判断できる場合に、当該データの転送格納先を該主記憶部から該キャッシュメモリに切り換え当該データの一部または全部を該キャッシュメモリに転送することを特徴とする、請求項4記載の情報処理装置。 - 該データ転送制御部に、
該中央演算処理部が該外部記憶部から該主記憶部に転送されるデータを転送終了後直ちに使用することを、属性情報として保持する属性情報保持手段と、
該属性情報保持手段に保持された属性情報を該記憶制御部の該切換転送手段に通知する通知手段とがそなえられ、
該記憶制御部の該切換転送手段が、該通知手段からの属性情報に応じて切換転送動作を行なうことを特徴とする、請求項5記載の情報処理装置。 - 該データ転送制御部に、
該外部記憶部から該主記憶部へデータ転送を行なう際に、所定のデータ単位毎に当該データの転送格納先を該記憶制御部の該切換転送手段に通知する通知手段がそなえられ、
該記憶制御部の該切換転送手段が、該通知手段からの属性情報に応じて切換転送動作を行なうことを特徴とする、請求項4記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04543294A JP3566746B2 (ja) | 1994-03-16 | 1994-03-16 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04543294A JP3566746B2 (ja) | 1994-03-16 | 1994-03-16 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07253924A JPH07253924A (ja) | 1995-10-03 |
JP3566746B2 true JP3566746B2 (ja) | 2004-09-15 |
Family
ID=12719153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04543294A Expired - Fee Related JP3566746B2 (ja) | 1994-03-16 | 1994-03-16 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3566746B2 (ja) |
-
1994
- 1994-03-16 JP JP04543294A patent/JP3566746B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07253924A (ja) | 1995-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100567099B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
KR100704089B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치 | |
US8255591B2 (en) | Method and system for managing cache injection in a multiprocessor system | |
US6718839B2 (en) | Method and apparatus for facilitating speculative loads in a multiprocessor system | |
EP0372201B1 (en) | Method for fetching potentially dirty data in multiprocessor systems | |
JP4119380B2 (ja) | マルチプロセッサシステム | |
JP2007011580A (ja) | 情報処理装置 | |
JPH02141845A (ja) | マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法 | |
JPH0619786A (ja) | キャッシュコヒーレンスを維持する方法及び装置 | |
US20030041225A1 (en) | Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors | |
WO1999035578A1 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
JPH02207352A (ja) | 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置 | |
US5737568A (en) | Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory | |
JPH0567976B2 (ja) | ||
US6526480B1 (en) | Cache apparatus and control method allowing speculative processing of data | |
US6973541B1 (en) | System and method for initializing memory within a data processing system | |
WO1997004392A1 (en) | Shared cache memory device | |
US6477622B1 (en) | Simplified writeback handling | |
US6704833B2 (en) | Atomic transfer of a block of data | |
JP3566746B2 (ja) | 情報処理装置 | |
JPH0944402A (ja) | キャッシュメモリの記憶一致制御装置及び方法 | |
US11016902B2 (en) | Generating recovery data for an initial state of status data for a data handling transaction and predicting a revised state of the status data applicable to resolution of the data handling transaction | |
JPH03172943A (ja) | キャッシュメモリ制御方式 | |
JPS62203252A (ja) | キヤツシユメモリ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040311 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040521 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040608 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040611 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |