JPH07253924A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH07253924A JPH07253924A JP6045432A JP4543294A JPH07253924A JP H07253924 A JPH07253924 A JP H07253924A JP 6045432 A JP6045432 A JP 6045432A JP 4543294 A JP4543294 A JP 4543294A JP H07253924 A JPH07253924 A JP H07253924A
- 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.)
- Granted
Links
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
データをスワップ方式で保持するLBSを有するととも
に、MSUの記憶容量を補うべくさらにESUをそなえ
てなる情報処理装置に関し、MOVERによるコマンド
ワードの参照をMSU上で直ちに行なえるようにし、ま
たCPUの処理で高速性を要求されるデータ要素を必要
に応じてLBSへ直接書き込むようにして、データ転送
処理の高速化をはかることを目的とする。 【構成】 自CPU11がMOVER15に対してMS
U3とESU6との間の同期転送命令を要求する際に、
コマンドワードおよび転送対象データを含む記憶ブロッ
クをLBS14からMSU13に転送する記憶ブロック
転送手段11Aを各CPU11にそなえて構成する。
Description
6) 課題を解決するための手段(図1) 作用(図1) 実施例 (a)本実施例の情報処理装置の構成の説明(図2) (b)同期転送要求時の動作例の説明(図2,図3) (c)同期転送待機中の動作例の説明(図4) (d)オペレーションコードによる記憶ブロック転送動
作例の説明(図5) (e)同期転送終了時の動作例の説明(図6,図7) (f)同期転送終了時の他の動作例の説明(図8,図
9) 発明の効果
タを用いて並列動作する複数の中央演算処理部に、主記
憶部のデータをスワップ方式で保持するキャッシュメモ
リをそなえるてなる情報処理装置に関し、特に、主記憶
部の記憶容量を補うべくさらに外部記憶部をそなえてな
る情報処理装置に関する。
高速に処理することが要求さぬるが、そのデータ量の伸
びは主記憶装置の容量の伸びをはるかに超える要求量で
あり、必然的に拡張記憶装置や半導体ディスク,磁気デ
ィスクなどの外部記憶装置が必要とされる。また、外部
記憶装置と主記憶装置との間のデータ転送性能がシステ
ムのスループットに大きく影響するため、より高速なデ
ータ転送能力が求められている。
のプロセッサユニットを並列的に動作させることが行な
われている。このような情報処理装置では、例えば図1
0に示すように、複数の中央演算処理部(以下、CPU
という)1が、記憶制御部(以下、MCUという)2を
介して共通の主記憶部(以下、MSUという)3に接続
されている。
U2を介して読み出したデータ等をスワップ(ストアイ
ン)方式で保持するローカルバッファ記憶部(キャッシ
ュメモリ;以下、LBSという)4がそなえられてい
る。このLBS4は、MSU3よりも小容量であるが高
速処理が可能なもので、CPU1とMSU3との間の処
理速度差を緩和することにより、各CPU1での演算処
理の高速化をはかるようになっている。
べく、上述のような情報処理装置においては、図10に
示すごとく、MCU2に、データ転送制御部(以下、M
OVERという)5を介して外部記憶部(以下、ESU
という)6をそなえることも行なわれている。ここで、
MOVER5は、CPU1がLBS4またはMSU3に
作成したコマンドワード(後述,図10ではLBS4内
の符号4A参照)を参照して、記憶機構(MSU3やL
BS4)とESU6との間でデータの転送操作を行なう
ものであり、ESU6は、MOVER5からの指示によ
りデータの格納および読出を行なうものである。
に、ラッチ部51,MSUアクセス制御機構52,デー
タ/コマンド判別部53,同期/非同期転送判別部5
4,同期転送用ラッチ部55,非同期転送用ラッチ部5
6,セレクタ57,58および加算器59から構成され
ており、各部の機能説明については、以下の動作説明で
併せて行なう。
らMCU2へのデータバス、50BはMCU2からMO
VER5へのデータバス、50CはMOVER5からE
SU6へのデータバス、50DはESU6からMOVE
R5へのデータバスである。上述した情報処理装置で
は、MSU3,MOVER5,LBS4がMCU2を介
して相互にデータの送受信を行なうようになっている。
設けられたセレクタで、このセレクタ7は、LBS4と
MSU3とのいずれか一方を、MOVER5を介してE
SU6と通信可能に切り換え接続するためのものであ
る。また、8AはCPU1上のLBS4のタグ部で、こ
のタグ部8Aは、LBS4に登録されているデータを識
別するためのエントリ情報であるタグ情報を格納するも
ので、LBS4は、タグ情報とデータとを1つのエント
リとして保持している。
に、データのMSU絶対アドレスや、他のCPU1内の
LBS4のデータとの排他制御を行なうための属性ビッ
トなどをLBSタグ情報として保持している。さらに、
図15に示すように、MCU2上にもタグ部8Bがそな
えられ、このタグ部8Bに、各CPU1のLBS4のタ
グ部8Aが保持するタグ情報のコピーが保持されてい
る。
間のデータ転送を要求する場合を、図10〜図16によ
り説明する。この場合、まず、CPU1は、MSU3と
ESU6とのアドレスを対応付け、データ長および転送
動作の内容を記述したコマンドワード(図10ではLB
S4内の符号4A参照)をMSU3またはLBS4上に
作成する(図13のA1参照)。
すように、MSW(Mover Status Word)とMCW(Move
r Command Word)との2つの部分から構成されている。
MCWは転送内容を指定し、MSWには、MCWで指定
された転送動作のMOVER5による処理結果が格納さ
れる。CPU1は、MSWを参照することで指定したデ
ータ転送が正しく処理されたかどうかを知ることができ
る。
アドレス,ESU6のアドレスデータ長,転送方向等か
ら構成される。MOVER5は、CPU1から起動され
ると、指定されたMCWのMSU絶対アドレスからMC
Wを読み出して指定されたデータ転送を行ない、その結
果をMSWに格納する。MSWには、CPU1によって
コマンドワード4Aが作成される時には全てのビットが
0に設定されている。MOVER5は、ESU6とMS
U3またはLBS4との間のデータ転送終了時に終了情
報をMSWに書き込み、MSWを、転送の終了情報をC
PU1に伝えるために使用する。また、MCWには、転
送データのESU6の転送長,ESU6の転送開始実ア
ドレス,MSU3の転送長,MSU3の転送開始絶対ア
ドレスがセットされ、ESU実アドレスとMSU絶対ア
ドレスとが対応付けられている。
と呼ばれる所定の記憶容量を単位の集合体として構成さ
れており、記憶機構は単純にページをまたがった転送す
ることはできない。これは、一般にこのような記憶装置
では仮想記憶方式が採用されており、論理アドレスでは
連続している2つのページがあるとしても、物理的に見
た場合には離散的に存在しているかも知れないからであ
る。
ESU6のページサイズは16kバイト,MSU3のペ
ージサイズは4kバイトであり、且つ、転送はESU6
のページをまたがらないものとし、転送開始アドレスは
8バイト単位で指定可能であるために、1つのESUペ
ージに対し最大5つのMSUページが対応付けられ、事
実上、ESU6に指定される転送長が1つの転送要求に
おける総転送長を示す。MSU3では物理的に離散して
存在している5つ以下のページが、ESU6のページで
は連続した実アドレスの1ページ内に格納されることに
なる。
4)では、CPU1が任意のアドレスに対してデータ更
新を行なった時点では、LBS4上のデータのみを更新
し、キャッシュエントリのリプレースメントが生じた場
合や、他CPU1が同一記憶ブロックに対して更新を行
なう場合等に更新データをLBS4からMSU3に書き
出すことによって、MSU3上のデータの更新が行なわ
れる。従って、CPU1がMOVER5に対するコマン
ドワード4Aを記憶空間に書き込む時には、LBS4上
にのみ書き込まれる(図13のA2参照)。
に書き込む時に、対応するタグ部8Aに対してコマンド
ワード4AがLBS4上に存在することを示すタグの属
性情報を書き換える。その後、CPU1はMOVER5
にコマンドワード4Aの先頭MSU絶対アドレス,アク
セスの属性情報などを送り、転送起動要求を発行する
(図10,図13のA3参照)。MOVER5に同期転
送要求を発行したCPU1には、インタロックがかか
り、MOVER5がESU6とMSU3との間の転送が
終了した時にその転送終了をCPU1に通知するまで、
CPU1は停止状態になる。
非同期転送か同期転送かを示す属性情報を有しているの
で、MOVER5は、同期/非同期転送判別部54によ
りそのアクセスが同期転送か非同期転送かを判別し(図
13のA4参照)、要求されたアクセスが実行可能な状
態ならば、MSUアクセス制御機構52からデータバス
50Aを通しMCU2に対してコマンドワード4Aの読
出を要求する(図12,図13のA5参照)。MOVE
R5が他CPUからの同期転送実行中の場合と、非同期
命令実行中にCPU1から非同期転送要求を受けた場合
は、MOVER5はCPU1からの転送要求を実行で
き、CPU1は一定時間後に転送起動要求をMOVER
5に再発行する。
BS4のタグ部8Aのコピーがタグ部8Bに保持されて
いるので(図15参照)、MCU2は、MOVER5か
らコマンドワード4Aの読出要求を受けると、MOVE
R5から受けたMCWのMSU絶対アドレスを参照して
LBS4上にあるか否かを判断可能であり、LBS4に
保持されていればCPU1に該エントリのはき出し要求
を行ない、LBS4に保持されていなければMSU3に
対してコマンドワード読出要求を発行する。
クセスに必要なコマンドワード4Aを作成し、MOVE
R5にアクセス要求を発行した後は転送終了までインタ
ロック状態にあるので、コマンドワード4AはLBS4
上に存在する確率が非常に高い。従って、MOVER5
からコマンドワード4Aの転送要求が来た時には、MC
U2は非常に高い確率でLBS4に対して転送要求を発
行することになる(図13のA6参照)。
ならば、MOVER5から転送要求が出されるとLBS
4内のコマンドワード4Aはブロック単位にMSU3に
一旦転送された後、MSU3からMCU2を介してMO
VER5に転送され(図13のA7,A8参照)、同時
にLBS4のタグ部8A,8Bでは、コマンドワード4
Aを保持していたエントリを無効化する。
され(図12,図13のA8参照)、ラッチ部51に格
納されると、MSUアクセス制御機構52は、MCWの
内容がMSU3からESU6へのデータ転送を指定して
いる場合、MCU2からデータバス50Bを通して転送
されてきたデータが、MSW,MCWであるのか、MS
U3とESU6との間の転送対象データであるのかをデ
ータ/コマンド判別部53により判別する(図13のA
9参照)。
に同期転送要求が転送されてきたとすると、同期転送を
先に処理する。このため、MOVER5では、少なくと
も同期転送用と非同期転送用の制御情報保持手段として
同期転送用ラッチ部55および非同期転送用ラッチ部5
6がそなえられ、指定されたデータ転送の種別を同期/
非同期転送判別部54により判別し、判別された種別に
応じて各々のMSWおよびMCWをラッチ部55または
56に保持する。そして、MOVER5では、同期転送
用のコマンドワードを解析し、セレクタ57により現在
実行中の命令ラッチ(ラッチ部55または56)を選択
して、ESU6を起動してMSU3とESU6との間の
データ転送を開始する(図13のA10参照)。
データ転送の場合、データについても、コマンドワード
4Aと同様にMCU2内のタグ部8Bを参照して、LB
S4内にあるかMSU3内にあるかが判断され、読み出
された後にMOVER5(データバス50B,判別部5
3,セレクタ57,データバス50C)を経由してES
U6へ転送される。また、ESU6からMSU3へデー
タ転送する場合は、CPU1がESU6から転送された
データをすぐに必要とするかどうか分からないため、E
SU6からの転送データは、LBS4には転送されず全
てMSU3にストアされる。
送時の動作を説明する。ESU6の起動後、MCWで送
られたMSU,ESU転送開始アドレスをデータ要求長
ずつ加算器59で加算しつつMSUアクセス制御機構5
2を介して、MCU2にMSU3からのデータ読出を要
求する。MCU2からデータバス50Bを通してデータ
が供給されると、先のコマンドワード4Aの場合と同様
に、MSUアクセス制御機構52は、MCU2から転送
された転送対象データを、判別部53,セレクタ57,
データバス50Cを介してESU6に送る。
アドレスが加算された分に対応してMSU,ESUの転
送長を減算することにより、残りの転送長を判断するこ
とができる。その後は残り転送長が0になるまで、MS
U3へのデータ転送要求,転送されてきたデータのES
U6への転送を各々のアドレスを加算しながら繰り返
す。
ESU6に転送した後に、全てのデータをESU6に転
送したことを示すフラグをESU6に送る。ESU6
は、全データの処理を終了した後、もしくは、エラーが
検出された時に、転送終了コマンドとエラーなどの終了
情報をMOVER5に通知する(図14のB1参照)。
全データ転送終了後、MOVER5は、コマンドワード
のMSW内の定められたフィールドにエラー情報などを
書き込む(図14のB2参照)。
情報等を含むMSWのストア要求を行ない(図14のB
3参照)、MOVER5からデータバス50Aを通して
MCU2へデータが送られると、MCU2からMSU3
に対してMSWのストアを要求し(図14のB4参
照)、データは全てMSU3にストアされる。MSU3
はMSWのストアを完了するとMCU2に正常終了通知
を行ない(図14のB5参照)、さらに、MCU2は、
その正常終了通知をMOVER5に対して行なう(図1
4のB6参照)。
たMSWのMSU3へのストアを終了し、正常終了通知
を受けたMOVER5は、コマンドの転送終了をアクセ
ス要求発信元のCPU1に割込み要求を発信し(図1
0,図14のB7参照)、CPU1のインタロックを解
除する。その後、CPU1は、MSWに格納された転送
の終了情報をチェックするために、MCU2に対して、
終了情報(エラー情報等)を含むコマンドワードをMS
U3からCPU1へ転送するように要求する(図14の
B8参照)。この要求を受けたMCU2はMSU3に対
してコマンドワードの読出を要求し(図14のB9参
照)、コマンドワードは、MSU3からCPU1に転送
されるとともにLBS4にも書き込まれる(図14のB
10参照)。コマンドワードがCPU1に到達すると
(図14のB11参照)、CPU1はMSWのエラー情
報とステータス情報をチェックし同期転送を終了する。
起動要求を受けた時(図16のC1参照)、ESU6が
MOVER5によりデータ転送中で新たな転送起動要求
を直ちに受け付けられないと判断した場合(図16のC
2参照)、MOVER5は、受け付けられなかったこと
を示すコードをMCU2に返信する(図16のC3参
照)。
CU2はしばらく待機し、一定時間後にMCU2はMO
VER5に再度転送要求を発行する(図16のC4参
照)。この再要求時にMOVER5が受付可能な状態で
あれば、図13と同様に、MOVER5は、そのアクセ
スが同期転送か非同期転送かを判別し、要求されたアク
セスが実行可能な状態ならば、MCU2に対してコマン
ドワード4Aの読出を要求する(図16のC5参照)。
ンドワード4Aの読出要求を受けると、タグ部8Bを参
照して、LBS4に対しコマンドワード読出要求を発行
する(図16のC6参照)。LBS4は、コマンドワー
ド4AをMSU3に書き込んでからMCU2に転送し
(図16のC7参照)、さらにMCU2は、そのコマン
ドワード4AをMOVER5に転送する(図16のC8
参照)。
4Aを解析して実行すべき処理の判別を行なってから、
ESU6を起動してMSU3とESU6との間のデータ
転送を開始する(図16のC9参照)。
に、CPU1は、コマンドワード4AをLBS4上に作
成した後にインタロック状態となり、転送が終了してそ
のインタロック状態が解除されるまで停止している。そ
のため、MOVER5がコマンドワードを読み込もうと
した時には、コマンドワードはLBS4に存在する確率
が非常に高い。また、転送するデータも直前にCPU1
が格納アクセスを行なうことにより作成されるために、
LBS4に存在する確率が高い。
ータはLBS4にあるよりもMSU3にある方が処理に
要する時間は短い。それは、LBS4からMOVER5
にデータが転送される時には、一度、LBS4からMS
U3に転送された後に、MSU3からMOVER5にデ
ータが転送されるからである(図13のB7〜B8参
照)。且つ、LBS4は個々のCPU1に存在するた
め、複数ブロックの連続はき出しが極めて困難である。
要求信号が発行された時に、MCU2内のタグ部8Bに
おける各CPU1毎のLBSタグのコピーをチェックし
た結果、転送対象データがLBS4にあると判断された
場合は、MCU2は最新データがあるLBS4に対して
データのMSU3へのはき出し要求を発行する。MSU
3へのデータはき出し要求を受けたLBS4は、要求デ
ータをMCU2に転送してLBSエントリのデータ属性
を無効化する。もし、MCU2への転送対象データが複
数のLBS4に共有されている場合は、データをLBS
4からMCU2に転送すると同時に、各LBS4の転送
対象データのエントリを無効化する。その後、LBS4
からデータを受けたMCU2は、それを一旦MSU3に
転送した後、MSU3からMOVER5に転送する。
がMCU2に発行された時に、そのデータがMSU3に
ある場合は、MCU2がMSU3に対してデータの転送
要求を発行するだけであり、LBS4のタグ部8Aの操
作は必要ない。このことから、上述した従来の情報処理
装置では、MOVER5からコマンドワードおよびデー
タの読出要求が行なわれた時に、コマンドワードおよび
データをLBS4からMSU3へ移動させる動作が必要
となる確率が高く、転送性能の低下要因となっていた。
送時、ESU6から読み込まれたデータはMSU3に書
き込まれるが、ESU6からMSU3へのデータ転送時
にデータがLBS4でなくMSU3に書き込まれると、
そのデータの転送が終わってから直ちにMSU3に書き
込まれたデータをCPU1が使用する場合、データをM
SU3から転送する必要があって(図14のB8〜B1
0参照)、その分、時間的なロスを生じてしまう。
む場合には、書き込まれたデータがCPU1に使用され
ることを保障できないと、必要なキャッシュエントリを
MSU3に追い出す事態を生じることになり、逆にデー
タの処理性能を落としてしまいかねないため、安易にE
SU6からのデータをLBS4に登録するわけにはいか
ない。
は、高速性を要求されるデータ要素に対しても一律にM
SU3に書き込んでおり、CPU1が必要なデータを取
り出すためにMCU2を介してMSU3へアクセスする
ことになり、処理性能向上の障壁となっていた。さら
に、図16により前述したように、MOVER5が複数
のCPU1により共有されている構成では、MOVER
5がCPU1からコマンドワード4Aの先頭アドレスと
転送要求を受けた時に、MOVER5は既に他のCPU
1からの転送要求を受けており、先に受け付けた転送を
実行中という状態が考えられる。MOVER5が先に受
け付けた実行中のデータ転送要求が同期転送である場合
には、新たな転送要求を受け付けてもその実行は実行中
の同期転送が終了するまで待たされることになる。
データ転送要求が非同期転送である場合は、データ転送
の実行が待たされてもCPU1は次の処理を行なうので
新たに送られた命令が同期転送である場合に比べ問題は
ないが、同期転送であった場合にはデータ転送が待たさ
れると、先行しているデータ転送終了後にデータ転送が
実行可能になりさらにその転送が終了するまでCPU1
は停止したままで、処理効率の低下要因になる。
ER5が受付可能であった場合には、前述した通り、M
OVER5からコマンドワードおよびデータの読出要求
が行なわれた時に、コマンドワードおよびデータをLB
S4からMSU3へ移動させる動作が必要となる確率が
高く、やはり転送性能の低下要因となっていた。本発明
は、このような課題に鑑み創案されたもので、MOVE
Rによるコマンドワードの参照をMSU上で直ちに行な
えるようにし、またCPUの処理で高速性を要求される
データ要素を必要に応じてLBSへ直接書き込むように
して、データ転送処理の高速化をはかった情報処理装置
を提供することを目的とする。
ック図で、この図1において、11は中央演算処理部
(CPU)、13は複数の中央演算処理部11に共用さ
れる主記憶部(MSU)、12は各中央演算処理部11
と主記憶部13との間でデータの転送を制御する記憶制
御部(MCU)、14は各中央演算処理部11毎にそな
えられるキャッシュメモリ(LBS)で、このキャッシ
ュメモリ14は、記憶制御部12を介して主記憶部13
から転送されてきたデータをスワップ方式で保持するも
のである。
R)で、このデータ転送制御部15は、各中央演算処理
部11からの起動指示を契機として、各中央演算処理部
11がキャッシュメモリ14もしくは主記憶部13内に
作成したコマンドワードを参照して、記憶制御部12を
介して主記憶部13と外部記憶部16との間のデータ転
送制御を行なうものである。
ブロック転送手段11Aがそなえられている。この記憶
ブロック転送手段11Aは、自中央演算処理部11がデ
ータ転送制御部15に対して主記憶部13と外部記憶部
16との間の同期転送命令を要求する際に、前記コマン
ドワードおよび転送対象データを含む記憶ブロックをキ
ャッシュメモリ14から主記憶部13に転送するもので
ある(請求項1)。
転送手段11Aは、中央演算処理部11がデータ転送制
御部15に対して同期転送命令の起動を要求した場合
に、データ転送制御部15が中央演算処理部11からの
起動要求受信時にコマンドワードにより指示されたデー
タ転送を即時に開始できない状態である時に、データ転
送制御部15の処理を開始する前に、前記コマンドワー
ドおよび転送対象データを含む記憶ブロックをキャッシ
ュメモリ14から主記憶部13に転送してもよい(請求
項2)。
理部11によって作成されるコマンドワードおよびデー
タの記憶アドレスを解析してデータ転送制御部15が記
憶制御部12に対して発行するオペレーションコード
に、データ転送制御部15が指定したアドレスを含む記
憶ブロックをキャッシュメモリ14から主記憶部13に
転送する要求コードをそなえておき、中央演算処理部1
1の記憶ブロック転送手段11Aは、データ転送制御部
15が中央演算処理部11からの起動指示を受信した後
に記憶制御部12に対して前記オペレーションコードを
発行した場合に、コマンドワードおよびデータを含む記
憶ブロックをキャッシュメモリ14から主記憶部13に
転送してもよい(請求項3)。
12Aがそなえられている。この切換転送手段12A
は、外部記憶部16からのデータの転送格納先を主記憶
部13からキャッシュメモリ14に切り換えそのデータ
の一部または全部をキャッシュメモリ14に転送するも
のである(請求項4)。そして、切換転送手段12A
は、中央演算処理部11が外部記憶部16から主記憶部
13に転送されるデータを転送終了後直ちに使用するこ
とを、中央演算処理部11からコマンドワードにより指
示されたデータ転送命令の種類に基づいて判断できる場
合に、そのデータの転送格納先を主記憶部13からキャ
ッシュメモリ14に切り換えそのデータの一部または全
部をキャッシュメモリ14に転送する(請求項5)。
演算処理部11が外部記憶部16から主記憶部13に転
送されるデータを転送終了後直ちに使用することを属性
情報として保持する属性情報保持手段と、この属性情報
保持手段に保持された属性情報を記憶制御部12の切換
転送手段12Aに通知する通知手段とをそなえ、記憶制
御部12の切換転送手段12Aは、前記通知手段からの
属性情報に応じて切換転送動作を行なうように構成して
もよい(請求項6)。
部16から主記憶部13へデータ転送を行なう際に所定
のデータ単位毎にそのデータの転送格納先を記憶制御部
12の切換転送手段12Aに通知する通知手段をそな
え、記憶制御部12の切換転送手段12Aは、前記通知
手段からの属性情報に応じて切換転送動作を行なうよう
に構成してもよい(請求項7)。
は、自中央演算処理部11がデータ転送制御部15に対
して主記憶部13と外部記憶部16との間のデータ転送
を要求した後に、そのデータ転送を終了するまで次の命
令処理を行なわない同期転送命令を要求する際、記憶ブ
ロック転送手段11Aにより、コマンドワードおよび転
送対象データを含む記憶ブロックがキャッシュメモリ1
4から主記憶部13に転送される。
記憶制御部12に対するコマンドワードおよび転送対象
データのフェッチ要求が記憶制御部12に対して行なわ
れた時に、直ちにコマンドワードおよび主記憶部13上
の転送対象となるデータを主記憶部13からデータ転送
制御部15に供給することができる。また、中央演算処
理部11がデータ転送制御部15に対して同期転送命令
の起動を要求する場合において、データ転送制御部15
が中央演算処理部11からの起動要求受信時にコマンド
ワードにより指示されたデータ転送を即時に開始できな
い状態である時に、データ転送制御部15の処理を開始
する前に、記憶ブロック転送手段11Aにより、コマン
ドワードおよび転送対象データを含む記憶ブロックをキ
ャッシュメモリ14から主記憶部13に転送することに
より(請求項2)、データ転送制御部15による処理が
開始可能となってコマンドワードおよび主記憶部13上
の転送対象データのフェッチ要求が記憶制御部12に対
して行なわれた時に、直ちにコマンドワードおよびデー
タをデータ転送制御部15に供給することができる。
部12に対して発行するオペレーションコードに、デー
タ転送制御部15が指定したアドレスを含む記憶ブロッ
クをキャッシュメモリ14から主記憶部13に転送する
要求コードをそなえることにより、データ転送制御部1
5から前記オペレーションコードが発行された場合に、
記憶ブロック転送手段11Aにより、コマンドワードお
よびデータを含む記憶ブロックをキャッシュメモリ14
から主記憶部13に事前に転送することにより(請求項
3)、データ転送制御部15によるコマンドワードおよ
びデータの読出を直ちに行なうことができる。
求項4)では、記憶制御部12の切換転送手段12Aに
より、必要に応じて、外部記憶部16からのデータの転
送格納先を主記憶部13からキャッシュメモリ14に切
り換えそのデータの一部または全部をキャッシュメモリ
14に転送することができる。このとき、中央演算処理
部11からコマンドワードにより指示されたデータ転送
命令の種類から、中央演算処理部11が外部記憶部16
から主記憶部13に転送したデータを転送終了後直ちに
使用することが事前に判断できる場合、切換転送手段1
2Aにより、必要とされるデータの一部または全部を主
記憶部13ではなくキャッシュメモリ14に転送するこ
とで(請求項5)、データ転送終了後に中央演算処理部
11がデータを直ちに処理することができる。
持手段に、中央演算処理部11が外部記憶部16から主
記憶部13に転送されるデータを転送終了後直ちに使用
することを属性情報として保持し、その属性情報を通知
手段により切換転送手段12Aに通知することにより
(請求項6)、記憶制御部12の切換転送手段12A
は、前記通知手段からの属性情報に応じて切換転送動作
を行なうことができる。
データ転送を行なう際に、データ転送制御部15の通知
手段により、所定のデータ単位毎にそのデータの転送格
納先(記憶機構のどの階層に格納さるか)を切換転送手
段12Aに通知することで(請求項7)、記憶制御部1
2の切換転送手段12Aは、所定のデータ単位毎に付与
された属性情報に従って、各データをキャッシュメモリ
14または主記憶部13に切り換えて転送することがで
きる。
する。 (a)本実施例の情報処理装置の構成の説明 図2は本発明の一実施例としての情報処理装置の構成を
示すブロック図であり、この図2において、1は中央演
算処理部(以下、CPUという)、2は記憶制御部(以
下、MCUという)、3は主記憶部(以下、MSUとい
う)で、MSU3は、MCU2を介して複数のCPU1
に共用されている。
3との間でデータの転送を制御するものである。また、
各CPU1には、MCU2を介してMSU3から転送さ
れてきたデータをスワップ方式で保持するキャッシュメ
モリ(以下、LBSという)がそなえられている。
OVERという)で、このMOVER5は、基本的には
図12で示した従来のものとほぼ同様に構成されてお
り、各CPU1からの起動指示を契機として、各CPU
1がLBS4もしくはMSU3内に作成したコマンドワ
ード4Aを参照して、MCU2を介してMSU3と外部
記憶部(以下、ESUという)6との間のデータ転送制
御を行なうものである。
憶ブロック転送機能部(記憶ブロック転送手段)1Aが
そなえられている。この記憶ブロック転送機能部1A
は、自CPU1がMOVER5に対してMSU3とES
U6との間の同期転送命令を要求する際に、コマンドワ
ード4Aおよび転送対象データを含む記憶ブロックをL
BS4からMSU3に転送するものである。
PU1がMOVER5に対して同期転送命令の起動を要
求した場合に、MOVER5がCPU1からの起動要求
受信時にコマンドワードにより指示されたデータ転送を
即時に開始できない状態である時に、MOVER5の処
理を開始する前に、前記コマンドワードおよび転送対象
データを含む記憶ブロックをLBS4からMSU3に転
送するようにしてもよい(図4により後述)。
成されるコマンドワードおよびデータの記憶アドレスを
解析してMOVER5がMCU2に対して発行するオペ
レーションコードに、MOVER5が指定したアドレス
を含む記憶ブロックをLBS4からMSU3に転送する
要求コードをそなえておき、CPU1の記憶ブロック転
送機能部1Aは、MOVER5がCPU1からの起動指
示を受信した後にMCU2に対して前記オペレーション
コードを発行した場合に、コマンドワードおよびデータ
を含む記憶ブロックをLSB4からMSU3に転送する
ようにしてもよい(図5により後述)。
手段)7がそなえられている。このセレクタ7は、従来
もLBS4とMSU3とのいずれか一方をMOVER5
を介してESU6と通信可能に切り換え接続するために
そなえらえれているが、本実施例では、ESU6からの
データの転送格納先をMSU3からLBS4に切り換え
そのデータの一部または全部をLBS4に転送する切換
転送手段としての機能も果たしている。
らMSU3に転送されるデータを転送終了後直ちに使用
することを、CPU1からコマンドワードにより指示さ
れたデータ転送命令の種類に基づいて判断できる場合
に、そのデータの転送格納先をMSU3からLBS4に
切り換えそのデータの一部または全部をLBS4に転送
する機能を有している。
OVER5〔MSUアクセス制御機構52(図12参
照)〕に、CPU1がESU6からMSU3に転送され
るデータを転送終了後直ちに使用することを属性情報と
して保持する属性情報保持部5Aと、この属性情報保持
部5Aに保持された属性情報をMCU2のセレクタ7に
通知する通知機能部(通知手段)5Bとをそなえ、MC
U2のセレクタ7は、通知機能部5Bからの属性情報に
応じて切換転送動作を行なうようにしてもよい。
ER5〔MSUアクセス制御機構52(図12参照)〕
に、ESU6からMSU3へデータ転送を行なう際に所
定のデータ単位毎にそのデータの転送格納先をMCU2
のセレクタ7に通知する通知機能部(通知手段)5Cを
そなえ、MCU2のセレクタ7は、通知機能部5Cから
の属性情報に応じて切換転送動作を行なうように構成す
ることもできる。
たものと同様、8AはCPU1上のLBS4のタグ部
(詳細は図15参照)で、このタグ部8Aは、LBS4
に登録されているデータを識別するためのエントリ情報
であるタグ情報を格納するもので、LBS4は、タグ情
報とデータとを1つのエントリとして保持している。ま
た、MCU2上にもタグ部8Bがそなえられ(図2,図
15参照)、このタグ部8Bに、各CPU1のLBS4
のタグ部8Aが保持するタグ情報のコピーが保持されて
いる。
参照しながら説明する。CPU1がコマンドワード4A
をLBS4上に作成し、コマンドワード4Aの先頭MS
U絶対アドレス,アクセスの属性情報などをMOVER
5に送るまでは、従来手順(図13のA1〜A3参照)
と同様に、コマンドワード4AをMSU3またはLBS
4上に作成し(図3のA11参照)、LBS4上にのみ
書き込み(図3のA12参照)、CPU1はMOVER
5にコマンドワード4Aの先頭MSU絶対アドレス,ア
クセスの属性情報などを送り、転送起動要求を発行する
(図2,図3のA13参照)。
アクセス要求をMOVER5に送った後、CPU1は、
従来のごとく直ちに停止(インタロック)状態にならな
い。CPU1は、LBS4のタグ部8Aをチェックする
ことによりコマンドワード4Aの先頭MSU絶対アドレ
スを含むブロックがLBS4に存在するかどうかを判断
し、コマンドワード4AがLBS4に含まれる時には、
LBS4にコマンドワード4AをMSU3へ転送するよ
うに指示し(図3のA14参照)、記憶ブロック転送機
能部1Aにより、コマンドワード4Aを含む記憶ブロッ
クをLBS4からMCU2を介してMSU3へ転送した
後(図2,図3のA15参照)、LBS4内のタグ部8
Aのコマンドワード4Aが保持されていたエントリを無
効化する内部命令を追加している。
VER5に送った後(図2,図3のA13参照)、上記
内部命令を実行することで、記憶ブロック転送機能部1
Aによりコマンドワード4AをLBS4からMSU3へ
転送する。また、コマンドワード4Aは、MSU3,E
SU6間転送のためにMSU3の絶対アドレスとESU
6の実アドレスとが対応付けられたフィールド(図11
参照)を有しており、MOVER5は、指定されたMS
U絶対アドレスとESU実アドレスとの間でデータ転送
を行なう。
へのデータ転送である時、コマンドワードの場合と同様
に、CPU1は、データをESU6に送る前に指定され
たMSU絶対アドレスのデータを上記内部命令を使用し
て、データがLBS4にある場合は自らの制御によりM
SU3に転送しておくことが可能である。このようにし
てコマンドワードおよびデータを全てLBS4からMS
U3Nい転送した後、CPU1は、インタロック状態に
入り、MOVER5が転送終了を示す割込みをかけるま
で(図2,図9のB18参照)停止状態になる。
たMOVER5では、その要求のもつ属性情報からその
アクセスが同期転送か非同期転送かを判別し(図3のA
16参照)、要求されたアクセスが実行可能な状態なら
ば、MCU2に対してコマンドワード4Aの読出を要求
する(図3のA17参照)。MCU2内にはそれぞれの
CPU1内のLBS4のタグ部8Aのコピーがタグ部8
Bに保持されているので、MCU2は、MOVER5か
らコマンドワード4Aの読出要求を受けると、タグ部8
Bを参照して、MSU3に対しコマンドワード読出要求
を発行する(図3のA18参照)。
ER5の処理と並行してCPU1のLBS4からMSU
3へコマンドワード4Aを転送する処理が行なわれてい
るので、前述のようにMCU2がMSU3に対してコマ
ンドワード読出要求を発行した時点では、コマンドワー
ド4AはMSU3に格納されている。従って、MSU3
は、MCU2からのコマンドワード読出要求を受ける
と、コマンドワード4AをMCU2に転送し(図3のA
19参照)、さらにMCU2は、そのコマンドワード4
AをMOVER5に転送する(図3のA20参照)。
様に、MOVER5において、MCWの内容がMSU3
からESU6へのデータ転送指定している場合、MCU
2から転送されてきたデータが、MSW,MCWである
のか、MSU3とESU6との間の転送対象データであ
るのかを判別し(図3のA21参照)、同期転送用のコ
マンドワードを解析し、現在実行中の命令ラッチを選択
して、ESU6を起動してMSU3とESU6との間の
データ転送を開始する(図3のA22参照)。
による内部命令の実行は、MOVER5へのコマンドワ
ード4Aの供給後、直ちにMOVER5の動作と並行し
て行なわれるので、MOVER5がMCU2に対してデ
ータの転送要求を発信するよりも、CPU1がこのデー
タをMSU3に転送し始める時間が十分に早い。従っ
て、MOVER5は大部分の必要な全てのデータがMS
U3上に存在していることになり、図13の従来例と図
3の本実施例とを比較しても明らかなように、データ転
送処理を高速に行なうことができる。
ク転送機能部1Aにより記憶ブロックをLBS4からM
SU3に転送する場合について説明したが、例えば、C
PU1が同期転送待機中の状態を利用して記憶ブロック
転送機能部1Aにより記憶ブロックをLBS4からMS
U3に転送するようにしてもよい。以下に、図4を参照
しながらこのような場合について説明する。
されている構成では、MOVER5がCPU1からコマ
ンドワード4Aの先頭アドレスと転送要求を受けた時
に、MOVER5は既に他のCPU1からの転送要求を
受けていて、先に受け付けた転送を実行中という状態で
ある場合、MOVER5が先に受け付けた実行中のデー
タ転送要求が同期転送であるときには、新たな転送要求
を受け付けてもその実行は実行中の同期転送が終了する
までCPU1は停止して待機することになるが、本実施
例では、MCU2が一定時間経過後に再要求を実行する
までの間に、同期転送終了待ちで実質的に停止状態にあ
るCPU1の記憶ブロック転送機能部1Aを利用して、
コマンドワードおよびデータを、LBS4からMSU3
に、はき出しておくことができる。
U1からの転送起動要求を受けた時(図16のC10参
照)、ESU6がMOVER5によりデータ転送中で新
たな転送起動要求を直ちに受け付けられないと判断した
場合(図16のC11参照)、MOVER5は、受け付
けられなかったことを示すコードをMCU2に返信し
(図16のC12参照)、さらにMCU2はMOVER
5からのコードをCPU1に通知する(図4のC13参
照)。
ロック状態を解除され、コマンドワード4Aおよびデー
タがLBS4にあるかMSU3にあるかをチェックし
(図4のC14参照)、LBS4にあれば、記憶ブロッ
ク転送機能部1Aによりその一部または全部をMSU3
に転送し(図4のC15参照)、CPU1は再度インタ
ロック状態になる。
けられなかった場合には、その旨を示すコードを受けた
MCU2は、しばらく待機し一定時間後にMOVER5
に再度転送要求を発行する(図4のC16参照)。この
再要求時にMOVER5が受け付け可能な状態であれ
ば、図3と同様に、MOVER5は、そのアクセスが同
期転送か非同期転送かを判別し、要求されたアクセスが
実行可能な状態ならば、MCU2に対してコマンドワー
ド4Aの読出を要求する(図4のC17参照)。
ンドワード4Aの読出要求を受けると、タグ部8Bを参
照して、MSU3に対しコマンドワード読出要求を発行
する(図3のA18参照)。このとき、本実施例では、
MOVER5が、他の転送要求を実行中のためにCPU
1からの転送要求を受け付けられない状態にある時に、
CPU1のインタロック状態を解除し、記憶ブロック転
送機能部1Aによりコマンドワード4Aおよびデータを
LBS4からMSU3に転送しているので、MOVER
5が新規命令を受け付け可能になった時に、コマンドワ
ード4AおよびデータをLBSからではなく、MSU3
から得ることができる。
ンドワード読出要求を受けると、コマンドワード4Aを
MCU2に転送し(図4のC19参照)、さらにMCU
2は、そのコマンドワード4AをMOVER5に転送す
る(図4のC20参照)。この後、MOVER5におい
て、MCWの内容がMSU3からESU6へのデータ転
送指定している場合、MCU2から転送されてきたデー
タが、MSW,MCWであるのか、MSU3とESU6
との間の転送対象データであるのかを判別し、同期転送
用のコマンドワードを解析し、現在実行中の命令ラッチ
を選択して、ESU6を起動してMSU3とESU6と
の間のデータ転送を開始する(図4のC21参照)。
送を受付可能な状態になりコマンドワード4Aまたはデ
ータの転送要求をMCU2に対して行なうまでの間に、
同期転送終了待ちで実質的に停止状態にあるCPU1を
利用して、コマンドワード4AまたはデータをLBS4
からMSU2に転送しておくことができ、MOVER5
は全てのデータがMSU3上に存在していることにな
り、図16の従来例と図4の本実施例とを比較しても明
らかなように、データ転送処理を高速に行なうことがで
きる。
ロック転送動作例の説明 ここで、再度、図4にて説明した例と同じ状況を考察し
てみると、MOVER5が同期転送実施中に他のCPU
1からデータ転送要求を受けた時、MOVER5は受け
付けることができない。しかし、MOVER5が新たな
データ転送を実行できない時には、CPU1はMOVE
R5が受け付け可能になるまで、MOVER5に対して
一定時間毎にデータ転送の起動を再試行する。
成したコマンドワード4Aの先頭絶対アドレスが送られ
ているのであるから、MOVER5とMCU2とに指定
されたMSU絶対アドレスを含むブロックを、記憶ブロ
ック転送機能部1AによりLBS4からMSU3に転送
するというオペレーションコードがあれば、MOVER
5は自装置がいずれ新規命令により事前にLBS4から
MSU3に転送しておくことが可能である。
のブロックを必要とする転送長で連続した絶対アドレス
のデータをESU6へ転送する場合について、図5に示
すフローチャートを参照しながら説明する。先頭MSU
絶対アドレスのデータと、先頭MSU絶対アドレスから
LBSブロックの容量分だけ離れたMSU絶対アドレス
のデータとは、先頭MSU絶対アドレスが属しているL
BSブロックと異なるエントリである。
にあるとき、MOVER5が先頭絶対アドレスの転送要
求をMCU2へ出力しESU6へデータを転送する時点
で、先頭MSU絶対アドレスを含むLBSブロックはL
BS4からMSU3へと転送され、以降、先頭MSU絶
対アドレスと同じLBSブロックからESU6へ転送さ
れる限りは、MSU3からデータが連続してESU6へ
転送される。
ロックに属していないデータがESU6への転送対象に
なった時、MOVER5がデータの転送要求をMCU2
に要求すると、データはLBS4に存在するので、ここ
で先頭MSU絶対アドレスの場合と同じように転送対象
MSU絶対アドレスのデータが属するLBSブロックが
LBS4からMSU3へと転送される。
アドレスと転送長とが分かっており、また、LBS4の
ブロックの容量も情報処理装置固有の値であるので、実
際にMOVER5がMCU2に転送要求を出力する前
に、先頭MSU絶対アドレスと別のLBSブロックに属
するデータのMSU絶対アドレスを判断することができ
る。
含むLBSブロックをLBS4からMSU3に転送する
オペレーションコードを、MOVER5のMCU2に対
するデータの転送要求に先立って出力しておくことで、
MOVER5がMCU2にデータの転送要求を出力する
前に、記憶ブロック転送機能部1Aにより、データをM
SU3に転送しておくことが可能になる。
成を考慮してみると、MOVER5は、MSU3からE
SU6へのデータ転送の際には、次の転送対象データが
格納されているMSU絶対アドレスを加算器59で計算
しつつ、その結果をMSUアクセス制御機構52に供給
してMCU2にデータの転送要求を発行している。ま
た、MSU3内のESU6への転送対象データのMSU
絶対アドレスにLBS4の記憶ブロックの容量分だけ加
算したアドレスで示される記憶位置は、確実に加算前の
MSU絶対アドレスで示される記憶位置とは別のLBS
4の記憶ブロック内に存在している。
Sブロックよりも大きい場合(図5のステップS1でY
ES判定の場合)には、転送開始時点でのMSU絶対ア
ドレスにLBS4の記憶ブロックの容量分だけ加算した
MSU絶対アドレスをレジスタ(図示せず)に保持する
とともに(図5のステップS2)、そのMSU絶対アド
レスを使用して、MOVER5からMCU2に、本実施
例で新規に追加したLBS4からMSU3へのはき出し
命令(オペレーションコード)を発行することにより、
レジスタのアドレスを含むLBSブロックを、記憶ブロ
ック転送機能部1AによりLBS4からMSU3に転送
する(図5のステップS3)。なお、残り転送長がLB
Sブロック以下の場合(図5のステップS1でNO判定
の場合)には、直ちに後述のステップS4へ移行する。
判定しながら(図5のステップS4)、0でなければ、
MCU2からMCWで送られたMSU転送開始アドレス
をデータ要求長ずつ加算器59で加算しつつ、MSUア
クセス制御機構52を介してMCU2にMSU3からの
データ読出を要求するとともに、MSUアドレスが加算
される時にアドレスが加算された分に対応して残り転送
長を減算する(図5のステップS5)。
保持されているMSU絶対アドレスと等しいか否かを判
定し(図5のステップS6)、等しくなければ、ステッ
プS4へ戻る一方、等しい場合には、ステップS1に戻
り、残り転送長が未だLBSブロックよりも大きい場合
には、そのアドレス一致のタイミングをトリガとして、
レジスタに保持してあるMSU絶対アドレスにLBS4
の記憶ブロックの容量分だけ加算したMSU絶対アドレ
スを使用して、LBS4のはき出し命令を発行し、加算
した結果のMSU絶対アドレスをレジスタに保持するこ
とを繰り返し行なう(図5のステップS2,S3)。
転送長が0であると判定されるまで、繰り返し実行され
る。このようにして、コマンドワード4Aおよびデータ
をMOVER5がMCU2にデータ転送要求を行なう前
に、当該LBS記憶ブロックのはき出しを行ない、コマ
ンドワード4Aおよびデータを高速にMOVER5に供
給することが可能である。
データ転送である時には、MCU2に送られたデータは
全てMSU3に格納されていたが、CPU1のESU6
に対する転送命令の幾つかには、転送終了後、直ちにC
PU1がESU6からMSU3に転送したデータを使用
する部分があり、このようなデータはESU6からMS
U3にストアするのではなく、LBS4に格納する方が
望ましい。
ARCHITECTURE/370, PRINCIPLES OFOPERATION”に掲載
されている“COMPARE AND SWAP”と一般に呼ばれる命令
を、1個または複数個のCPU1と、各CPU1に共用
されるMSU3と、このMSU3を含む記憶装置を制御
するMCU2とが相互に接続されている装置(クラス
タ,図2,図7参照)で実行する場合について以下に説
明する。
は、複数のCPU1によって共有されるMSU3上のア
ドレス(D2B2)と、D2B2で示されるアドレスに
格納されているであろう期待値(R1)と、D2B2で
示されるアドレスに新たにストアするデータ(R3)と
である。この命令のオペランドをCSとすると、そのフ
ォーマットは図6の(1)で示す通りである。
汎用レジスタを使用している。D2B2のアドレスは、
B2で示される汎用レジスタの内容にD2の値を加算す
ることにより得られ、MSU3の領域毎に特定のアドレ
スが割り当てられている。命令を実行すると、MSU3
のD2B2で示されたアドレスからデータをフェッチす
る。
レジスタの内容と比較し、フェッチされたデータとR1
レジスタの内容とが同じものであれば、R3レジスタの
内容をD2B2で示されたMSU3上のアドレスにスト
アし、更新に成功したことを示す条件コードをソフトウ
エアに通知する。同様に、フェッチされた内容とR1レ
ジスタの内容とが不一致の場合には、フェッチされた内
容がR1レジスタに格納され、更新不成功を示す条件コ
ードがソフトウエアに通知される。
いるデータを参照してからR1レジスタの内容と比較さ
れ、不一致の場合は比較されるまで、一致した場合はR
3レジスタの内容をD2B2で示されたアドレスに格納
するまで、他のCPU1のD2B2で示されたアドレス
に対する読出または書込は禁止される。PRINCIPLE OF O
PERATIONでは、上記の命令で指示されるアドレスは、1
個または複数のCPU1で共有されるMSUアドレスで
あるが、図7に示すように、ESU6を1個または複数
のクラスタ10−1,10−2で共有する場合にも、こ
の命令のアドレスの指示をESUアドレスとした同じ動
作をする拡張命令が考えられる。この拡張命令のオペラ
ンドをCDSEDとすると、そのフォーマットは図6の
(2)で示す通りである。ここで、R1,R3は上述し
たMSU3の場合と同じくCPU1のレジスタに格納さ
れるデータであり、D2B2はESU6のアドレスを示
している。そして、拡張命令の実際の使用例は以下の通
りである。
使用しようとする場合に、ある時点でクラスタ10−1
がESU6にある値(ここでは“1”とする)をストア
したとする。次に他のクラスタ10−2が同じアドレス
に違う値(ここでは“2”とする)をストアした時、後
にクラスタ10−1が先程データ“1”を書き込んだア
ドレスにはデータ“1”が書き込まれていると判断して
(実際にはデータ“2”がストアされている)プログラ
ムを実行すると、そこから得られた結果は期待される結
果と異なったものになる。
スタ10−1,10−2とESU6との間に拡張した命
令を使用し、ESU6のある領域を使用してクラスタ1
0−1が処理を行なう時に他のクラスタ10−2が同じ
領域を書き替えることがないように制御する。D2B2
で指定するアドレスは、ESU6の領域毎に特定のアド
レスが用意されている。ここでは、D2B2で示される
アドレスには、通常、“0”がストアされているとし、
R1レジスタには“0”が、クラスタ10−1のR3に
は“1”が、クラスタ10−2のR2レジスタには
“2”が設定されている。
使用する前に前記命令を実行する。そこで、R3レジス
タで示されたアドレスに従って記憶装置から現在ストア
されているデータをフェッチ(ここでは“0”)し(図
6の参照)、R1の値とフェッチした値とを比較する
が、この例ではR1の値が“0”であり、フェッチした
値も“0”なので、R3の値の“1”がD2B2(ロッ
クフラグ)にストアされ(図6の参照)、更新成功を
示すコードがソフトウエアに通知される。
PU1は、ESU6のある領域を使用する権利を得たこ
とになり(図6の参照)、ESU6の該領域を使用す
る処理を実行し、処理が終了した時点でD2B2で示さ
れたアドレスに“0”をストアする(図6の参照)。
もし、クラスタ10−1がESU6のある領域を使用中
に他のクラスタ10−2のCPU1が同じ領域を使用し
ようとした場合、クラスタ10−2のCPU1も、ES
U6の領域を使用する前に“COMPARE AND SWAP”の拡張
命令を前述したクラスタ10−1の場合と同様に実行す
る。
って記憶装置からのその時ストアされているデータをフ
ェッチし、MSU3上の所定の位置に格納する。このと
き、クラスタ10−1がそのアドレスを“1”に書き替
えているので、“1”がフェッチされる(図6の参
照)。そこで、R1の値とMSU3上に格納されたデー
タとが比較されるが、この場合、R1は“0”、MSU
3上に格納されたフェッチされたデータは“1”なの
で、不一致となり、更新不成功でR1には“1”が格納
され、更新不成功を示すコードがソフトウエアに通知さ
れる。
クラスタ10−1,10−2に固有の値が書かれていれ
ば、そのとき、該装置(ESU6)を使用しているクラ
スタを知ることができ、またR1を元の値(この例では
“0”)に書き替えて更新成功まで“COMPARE AND SWA
P”の拡張命令を繰り返し実行する。“COMPARE AND SWA
P”の拡張命令実行中は、他のクラスタ10−1のD2
B2で示されるアドレスの更新または参照は禁止される
ので、ロックフラグで管理する記憶領域の使用権を制御
することができる。
CPU1がESU6を使用する時は、前出の例に従って
“COMPARE AND SWAP”の拡張命令を発行し、ESU6の
使用したい領域の使用権を取ってからESU6にアクセ
スする(図7の参照)。その命令を実行した結果、不
一致であった場合、先の例によりフェッチしMSU3上
に格納されたデータをCPU1内のレジスタに格納する
必要がある(図7の参照)。このことは、このフェッ
チしMSU3上に格納されるデータは、CPU1のLB
S4にストアされる方がデータをレジスタに供給する時
間が短いので、命令を高速に実行することができること
を意味する。
後の転送状況通知以外は、データが、ESU6から、命
令を発行したCPU1に転送されることはないため、C
PU1は、本命令をESU6が実行中はデータをセレク
タ7を介してLBS4に無条件にストアするという属性
を加えることが可能である。そして、図7に示すよう
に、この属性情報を格納・保持しうる属性情報保持部5
AをMOVER5内にそなえ、コマンドワードの先頭ア
ドレスを通知する際にもしくはコマンドワード内でMO
VER5へ通知することにより、その属性情報を属性情
報保持部5Aに保持する。また、属性情報保持部5Aに
保持された属性情報をMCU2のセレクタ7に通知する
ための通知機能部5BをMOVER5〔MSUアクセス
制御機構(図12の符号52参照)〕にそなえておく。
がMCU2に対してデータを転送する際に、自身のMS
Uアクセス制御機構(図12の符号52参照)を使用し
てこの属性をMCU2に通知すれば、MCU2は、その
データをLBS4にストアするかMSU3にストアする
かを判断し、セレクタ7で切換転送することが可能であ
る。もしくは、MOVER5は、MSUアクセス制御機
構を使用して、転送データをESU6からMSU3に転
送する際にこの属性をMCU2に送ることができる。
の転送速度を高速化し、ロック保存期間を短縮すること
ができ、システムの性能を大幅に向上させることができ
る。 (f)同期転送終了時の他の動作例の説明 さて、CPU1のESU6に対する転送命令に際し、転
送終了後、直ちにCPU1がESU6からの転送データ
を使用すべく、データをESU6からLBS4に直接転
送・格納する例として、図6,図7では、“COMPARE AN
D SWAP”の拡張命令に際して更新不成功となり、その更
新不成功を示すコードを通知する場合について説明した
が、図14により前述したように、例えば、転送終了情
報(エラー情報等)を含むコマンドワードも、ESU6
からMSU3にストアするのではなく、LBS4に格納
する方が望ましい。
転送を要求する時にコマンドワードのフレーム(図2の
符号4A参照)を作成しフレームの先頭アドレスをMO
VER5に対して通知し、MOVER5は先頭アドレス
をMSU3またはLBS4からコマンドデータを得る。
そして、データ転送終了時には、ESU6は、エラー情
報などのデータ転送情報の要求を、受け付けた時と同じ
コマンドワードのフレームの定まったビット(MSW
内)にストアする。ESU6からMSU3へのデータ転
送時に、MOVER5からMCU2に転送されるデータ
は、転送対象データと転送終了情報である。
4に格納することは、前述したように、必要なキャッシ
ュエントリをLBS4からMSU3に追い出す事態を生
じることになり、逆にデータの処理性能を落としてしま
いかねないため、安易にESU6からのデータをLBS
4に登録するわけにはいかない。従って、本実施例で
も、転送対象データは、セレクタ7を介してMSU3に
格納される。
に比べてデータの大きさは小さく、転送終了の割込みが
CPU1にかかった後、すぐにCPU1は転送終了情報
を参照する。このとき、LBS4にデータを格納した方
がよいか、MSU3にデータを格納した方がよいかは、
ESU6とMSU3との間のデータ転送の命令の種類に
よらないので、CPU1が、データをLBS4に送るか
MSU3に送るかを示す属性を付与することは不可能で
ある。
5からMCU2に対する信号に、MOVER5からMC
U2に転送するデータはMSU3ではなくLBS4に転
送するという属性を示す信号を追加し、MOVER5
(MSUアクセス制御機構52)の通知機能部5Cによ
りその属性信号を各データに付与してMCU2のセレク
タ7に通知する。
属性を付与したいのであれば、終了情報をMCU2に転
送する際に、転送状態信号としてMOVER5に保持さ
れている残り転送長(図12により前述)に基づいて、
これからMCU2に転送する信号は転送終了情報である
か否かを判断することができる。これにより、MSUア
クセス制御機構52を使用して、データをLBS4に転
送するという信号をMCU2に通知することが可能にな
る。
すように、MOVER5はデータ転送終了時のデータ転
送情報をMCU2に転送する際に新規追加信号を使用し
て、MOVER5からコマンドワードの終了コードの格
納要求を受けたMCU2は、新規追加信号(属性)に応
じてセレクタ7をMSU3側からCPU1のLBS4側
に切り換えることにより、データをMSU3ではなくL
BS4に格納することが可能になる。
エラー検出時)における、転送終了コマンドとエラーな
どの終了情報をCPU1に転送する際の、本実施例の動
作について説明する。なお、この図9は、前述した図1
4にて説明した従来のものに対応している。MOVER
5は、最後のデータをESU6に転送した後に、全ての
データをESU6に転送したことを示すフラグをESU
6に送る。ESU6は、全データの処理を終了した後、
もしくは、エラーが検出された時に、転送終了コマンド
とエラーなどの終了情報をMOVER5に通知する(図
9のB12参照)。全データ転送終了後、MOVER5
は、コマンドワードのMSW内の定められたフィールド
にエラー情報などを書き込む(図9のB13参照)。
情報等を含むMSWのストア要求を行ない(図9のB1
4参照)、MOVER5からMCU2へデータが送られ
ると、MCU2は、図8に示すように、MOVER5か
らMSWに与えられた属性に従ってセレクタ7 を切り換
えることにより、MCU2からCPU1のLBS4に対
してMSWのストアを要求する(図9のB15参照)。
このとき、データは従来と同様に全てMSU3にストア
される。
CU2に正常終了通知を行ない(図9のB16参照)、
さらに、MCU2は、その正常終了通知をMOVER5
に対して行なう(図9のB17参照)。このようにして
エラー情報等を書き込まれたMSWのLBS3へのスト
アを終了し、正常終了通知を受けたMOVER5は、コ
マンドの転送終了をアクセス要求発信元のCPU1に割
込み発信し(図9のB18参照)、CPU1のインタロ
ックを解除する。
転送の終了情報をチェックするために、LBS4に対し
て転送の終了情報(エラー情報等)をもつMSWを要求
し(図9のB19参照)、MSWのエラー情報とステー
タス情報をチェックし同期転送を終了する(図9のB2
0参照)。以上、図6〜図9により説明した通り、本実
施例によれば、転送対象データについては従来通りMS
U3にストアするが、高速性を要求されるデータ要素
(更新不成功コードや転送終了情報など)については、
MOVER5に設定された属性に応じて、MSU3では
なくLBS4へ直接書き込むようにしたので、図14の
従来例と図9の本実施例とを比較しても明らかなよう
に、MSU3とESU6との間のデータ転送終了時にデ
ータ転送が終了したことを示す割込みがCPU1にかか
った後で、MSU3に格納したデータを参照する場合に
比べて、CPU1はより高速にデータ転送終了コードを
参照でき、システムの性能を大幅に向上させることがで
きる。
装置(請求項1)によれば、自中央演算処理部がデータ
転送制御部に対して主記憶部と外部記憶部との間の同期
転送命令を要求する際に、記憶ブロック転送手段によ
り、コマンドワードおよび転送多少データを含む記憶ブ
ロックがキャッシュメモリから主記憶部に転送されるの
で、データ転送制御部からの記憶制御部に対するコマン
ドワードおよび転送対象データのフェッチ要求が記憶制
御部に対して行なわれた時には、直ちにコマンドワード
および主記憶部上の転送対象となるデータを主記憶部か
らデータ転送制御部に供給することができ、データ転送
処理を高速に行なえる効果がある。
からの同期転送起動要求受信時にコマンドワードにより
指示されたデータ転送を即時に開始できない状態である
時に、データ転送制御部の処理開始前に、記憶ブロック
転送手段により、コマンドワードおよび転送対象データ
を含む記憶ブロックをキャッシュメモリから主記憶部に
転送することにより(請求項2)、データ転送制御部に
よる処理が開始可能となってコマンドワードおよび主記
憶部上の転送対象データのフェッチ要求が記憶制御部に
対して行なわれた時に、直ちにコマンドワードおよびデ
ータをデータ転送制御部に供給することができ、データ
転送処理を高速に行なえる効果がある。
対して発行するオペレーションコードに、データ転送制
御部が指定したアドレスを含む記憶ブロックをキャッシ
ュメモリから主記憶部に転送する要求コードをそなえる
ことにより、データ転送制御部から前記オペレーション
コードが発行された場合に、記憶ブロック転送手段によ
り、コマンドワードおよびデータを含む記憶ブロックを
キャッシュメモリから主記憶部に事前に転送することに
より(請求項3)、データ転送制御部によるコマンドワ
ードおよびデータの読出を直ちに行なうことができ、デ
ータ転送処理を高速に行なえる効果がある。
によれば、記憶制御部の切換転送手段により、外部記憶
部からのデータの転送格納先を主記憶部からキャッシュ
メモリに切り換えそのデータの一部または全部をキャッ
シュメモリに転送することができ、CPUの処理で高速
性を要求されるデータ要素を必要に応じてキャッシュメ
モリへ直接書き込むことができ、データ転送処理を高速
に行なえる効果がある。
ードにより指示されたデータ転送命令の種類から、中央
演算処理部が外部記憶部から主記憶部に転送したデータ
を転送終了後直ちに使用することが事前に判断できる場
合、切換転送手段により、必要とされるデータの一部ま
たは全部を主記憶部ではなくキャッシュメモリに転送す
ることで(請求項5)、データ転送終了後に中央演算処
理部がデータを直ちに処理することができ、データ転送
処理を高速に行なえる効果がある。
段に、中央演算処理部が外部記憶部から主記憶部に転送
されるデータを転送終了後直ちに使用することを属性情
報として保持し、その属性情報を通知手段により切換転
送手段に通知することにより(請求項6)、記憶制御部
の切換転送手段により、前記通知手段からの属性情報に
応じて切換転送動作が行なわれ、データ転送終了後に中
央演算処理部がデータを直ちに処理することができ、デ
ータ転送処理を高速に行なえる効果がある。
転送を行なう際に、データ転送制御部の通知手段によ
り、所定のデータ単位毎にそのデータの転送格納先を切
換転送手段に通知することで(請求項7)、記憶制御部
の切換転送手段により、所定のデータ単位毎に付与され
た属性情報に従って、各データがキャッシュメモリまた
は主記憶部に切り換えて転送され、データ転送終了後に
中央演算処理部がデータを直ちに処理することができ、
データ転送処理を高速に行なえる効果がある。
を示すブロック図である。
めの図である。
めの図である。
ロック転送動作を説明するためのフローチャートであ
る。
ロック図である。
ロック図である。
めの図である。
ク図である。
る。
構成を示すブロック図である。
めの図である。
めの図である。
めの図である。
段) 2 記憶制御部(MCU) 3 主記憶部(MSU) 4 キャッシュメモリ(ローカルバッファ記憶部,LB
S) 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】 複数の中央演算処理部(11)と、該複
数の中央演算処理部(11)に共用される主記憶部(1
3)と、各中央演算処理部(11)と該主記憶部(1
3)との間でデータの転送を制御する記憶制御部(1
2)とをそなえ、 前記の各中央演算処理部(11)が、該記憶制御部(1
2)を介して該主記憶部(13)から転送されてきたデ
ータをスワップ方式で保持するキャッシュメモリ(1
4)を有するとともに、 前記の各中央演算処理部(11)からの起動指示を契機
として、前記の各中央演算処理部(11)が該キャッシ
ュメモリ(14)もしくは該主記憶部(13)内に作成
したコマンドワードを参照して、該記憶制御部(12)
を介して該主記憶部(13)と外部記憶部(16)との
間のデータ転送制御を行なうデータ転送制御部(15)
をそなえてなる情報処理装置において、 前記の各中央演算処理部(11)に、 自中央演算処理部(11)が該データ転送制御部(1
5)に対して該主記憶部(13)と該外部記憶部(1
6)との間の同期転送命令を要求する際に、前記コマン
ドワードおよび転送対象データを含む記憶ブロックを該
キャッシュメモリ(14)から該主記憶部(13)に転
送する記憶ブロック転送手段(11A)がそなえられて
いることを特徴とする、情報処理装置。 - 【請求項2】 該中央演算処理部(11)が該データ転
送制御部(15)に対して同期転送命令の起動を要求し
た場合に、該データ転送制御部(15)が該中央演算処
理部(11)からの起動要求受信時に前記コマンドワー
ドにより指示されたデータ転送を即時に開始できない状
態である時に、 該中央演算処理部(11)の該記憶ブロック転送手段
(11A)が、該データ転送制御部(15)の処理を開
始する前に、前記コマンドワードおよび転送対象データ
を含む記憶ブロックを該キャッシュメモリ(14)から
該主記憶部(13)に転送することを特徴とする、請求
項1記載の情報処理装置。 - 【請求項3】 該データ転送制御部(15)が該中央演
算処理部(11)によって作成されるコマンドワードお
よびデータの記憶アドレスを解析して該データ転送制御
部(15)が該記憶制御部(12)に対して発行するオ
ペレーションコードに、該データ転送制御部(15)が
指定したアドレスを含む記憶ブロックを該キャッシュメ
モリ(14)から該主記憶部(13)に転送する要求コ
ードをそなえ、 該データ転送制御部(15)が該中央演算処理部(1
1)からの起動指示を受信した後に該記憶制御部(1
2)に対して前記オペレーションコードを発行した場合
に、該中央演算処理部(11)の該記憶ブロック転送手
段(11A)が、コマンドワードおよびデータを含む記
憶ブロックを該キャッシュメモリ(14)から該主記憶
部(13)に転送することを特徴とする、請求項1記載
の情報処理装置。 - 【請求項4】 複数の中央演算処理部(11)と、該複
数の中央演算処理部(11)に共用される主記憶部(1
3)と、各中央演算処理部(11)と該主記憶部(1
3)との間でデータの転送を制御する記憶制御部(1
2)とをそなえ、前記の各中央演算処理部(11)が、
該記憶制御部(12)を介して該主記憶部(13)から
転送されてきたデータをスワップ方式で保持するキャッ
シュメモリ(14)を有するとともに、 前記の各中央演算処理部(11)からの起動指示を契機
として、前記の各中央演算処理部(11)が該キャッシ
ュメモリ(14)もしくは該主記憶部(13)内に作成
したコマンドワードを参照して、該記憶制御部(12)
を介して該主記憶部(13)と外部記憶部(16)との
間のデータ転送制御を行なうデータ転送制御部(15)
をそなえてなる情報処理装置において、 該外部記憶部(16)からのデータの転送格納先を該主
記憶部(13)から該キャッシュメモリ(14)に切り
換え当該データの一部または全部を該キャッシュメモリ
(14)に転送する切換転送手段(12A)が、該記憶
制御部(12)にそなえられていることを特徴とする、
情報処理装置。 - 【請求項5】 該切換転送手段(12A)が、 該中央演算処理部(11)が該外部記憶部(16)から
該主記憶部(13)に転送されるデータを転送終了後直
ちに使用することを、該中央演算処理部(11)から前
記コマンドワードにより指示されたデータ転送命令の種
類に基づいて判断できる場合に、当該データの転送格納
先を該主記憶部(13)から該キャッシュメモリ(1
4)に切り換え当該データの一部または全部を該キャッ
シュメモリ(14)に転送することを特徴とする、請求
項4記載の情報処理装置。 - 【請求項6】 該データ転送制御部(15)に、 該中央演算処理部(11)が該外部記憶部(16)から
該主記憶部(13)に転送されるデータを転送終了後直
ちに使用することを、属性情報として保持する属性情報
保持手段と、 該属性情報保持手段に保持された属性情報を該記憶制御
部(12)の該切換転送手段(12A)に通知する通知
手段とがそなえられ、 該記憶制御部(12)の該切換転送手段(12A)が、
該通知手段からの属性情報に応じて切換転送動作を行な
うことを特徴とする、請求項5記載の情報処理装置。 - 【請求項7】 該データ転送制御部(15)に、 該外部記憶部(16)から該主記憶部(13)へデータ
転送を行なう際に、所定のデータ単位毎に当該データの
転送格納先を該記憶制御部(12)の該切換転送手段
(12A)に通知する通知手段がそなえられ、 該記憶制御部(12)の該切換転送手段(12A)が、
該通知手段からの属性情報に応じて切換転送動作を行な
うことを特徴とする、請求項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 true JPH07253924A (ja) | 1995-10-03 |
| JP3566746B2 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 |
|---|---|
| JP3566746B2 (ja) | 2004-09-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100567099B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
| KR100704089B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치 | |
| US7533197B2 (en) | System and method for remote direct memory access without page locking by the operating system | |
| EP0349123B1 (en) | Multi-processor computer systems having shared memory and private cache memories | |
| US8255591B2 (en) | Method and system for managing cache injection in a multiprocessor system | |
| JPH10133943A (ja) | リンクリスト形成方法 | |
| JPS6149709B2 (ja) | ||
| JPH06236322A (ja) | ディスクアレイ用キャッシュシステム | |
| JPH07311713A (ja) | 階層キャッシュ・システム及びバッファリング・システム | |
| US6874065B1 (en) | Cache-flushing engine for distributed shared memory multi-processor computer systems | |
| CN101546293B (zh) | 缓存控制装置、信息处理装置和缓存控制方法 | |
| WO2025138722A1 (zh) | 访存失效队列处理方法、装置及电子设备 | |
| JP3460617B2 (ja) | ファイル制御装置 | |
| US6658537B2 (en) | DMA driven processor cache | |
| JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
| US6973541B1 (en) | System and method for initializing memory within a data processing system | |
| US6782444B1 (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stored records | |
| JPH0567976B2 (ja) | ||
| US6976128B1 (en) | Cache flush system and method | |
| JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
| US6704833B2 (en) | Atomic transfer of a block of data | |
| US20250258671A1 (en) | Systems and methods for cache management of tiered storage devices | |
| JP2006252358A (ja) | ディスクアレイ装置及びその共有メモリ装置、ディスクアレイ装置の制御プログラム及び制御方法 | |
| JP4302083B2 (ja) | キャッシュシステムおよびキャッシュシステム制御方法 | |
| JP2004206424A (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 |