JPH0564824B2 - - Google Patents

Info

Publication number
JPH0564824B2
JPH0564824B2 JP62214502A JP21450287A JPH0564824B2 JP H0564824 B2 JPH0564824 B2 JP H0564824B2 JP 62214502 A JP62214502 A JP 62214502A JP 21450287 A JP21450287 A JP 21450287A JP H0564824 B2 JPH0564824 B2 JP H0564824B2
Authority
JP
Japan
Prior art keywords
block
data
processor
area
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP62214502A
Other languages
English (en)
Other versions
JPS6458045A (en
Inventor
Shunichiro Nakamura
Harumi Minemura
Tatsuo Minohara
Tomohito Saito
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP62214502A priority Critical patent/JPS6458045A/ja
Publication of JPS6458045A publication Critical patent/JPS6458045A/ja
Publication of JPH0564824B2 publication Critical patent/JPH0564824B2/ja
Granted legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はマスタプロセツサ構成のデータ処理
装置におけるプロセツサ間のデータ転送方式に関
するものである。
〔従来の技術〕
近年、マルチプロセツサの進歩により、安価で
高性能なマルチプロセツサを複数個接続したいわ
ゆるマルチプロセツサ構成のデータ処理装置が多
く開発されるようになつた。このようなマルチプ
ロセツサで問題となるのがプロセツサ間のデータ
の受け渡し方法である。受け渡されるデータとし
て例えば、メールボツクスのような少量で固定長
のデータは、コモンメモリ上に常駐させておけば
よいので特に問題とはならない。これに対し例え
ばプロセツサAがデータ処理を行い、その結果生
成されたデータをプロセツサBに渡す場合、この
データ量は一般に未知なことが多い。例えばプロ
セツサAがフアイル上のレコードを検索し、その
検索結果をプロセツサBに渡す場合、その検索結
果が数レコードであるか、数万レコードであるか
はやつてみなければわからない。このために最大
の場合に合わせてコモンメモリ上にデータ領域を
用意しておくのは大変無駄であるし、又不可能な
ことが多い。このため従来はデータをブロツク化
して受け渡すという方法が用いられていた。第1
0図はこれを説明するためにある種のマルチプロ
セツサ構成のデータ処理装置を示したブロツク図
である。
図中の5はマスタプロセツサ、1〜4はそれぞ
れスレーブプロセツサであり、7はコモンメモ
リ、8は上記5つのプロセツサ1〜5がコモンメ
モリ7にアクセスするためのバス、6はマスタプ
ロセツサ5につながるデイスク装置(外部記憶媒
体)である。9〜12はマスタプロセツサ5と各
スレーブプロセツサ1〜4の間の双方の割り込み
信号、14はコモンメモリ7上に設けられたメー
ルボツクス領域である。割り込み信号9〜12と
メールボツクス領域14とを用いて、マスタプロ
セツサ5とそれぞれのスレーブプロセツサ1〜4
は通信を行うことができる。例えばマスタプロセ
ツサ5はメールボツクス領域14中の該当の場所
に通知すべき制御情報をセツトし、スレーブプロ
セツサ1に割り込みをかけることにより、スレー
ブプロセツサ1に対して制御情報を伝達すること
ができる。同様にしてスレーブプロセツサ1から
マスタプロセツサへも制御情報を伝えることがで
きる。21〜24はそれぞれスレーブプロセツサ
1〜4に割り当てられたコモンメモリ7上のデー
タ受け渡し領域である。25〜28はそれぞれデ
ータ受け渡し領域21〜24に対応したデイスク
装置6上の退避領域であり、それぞれ1本のシー
ケンシヤルフアイルと見ることができる。
さてマスタプロセツサ5により指示されると、
各スレーブプロセツサ1〜4はいつせいに処理を
開始し、処理結果を順次データの受け渡し領域2
1〜24にストアしていく。第10図でスレーブ
プロセツサ1は、ちようどデータの受け渡し領域
21へデータをストアしていつて一杯になつたこ
とを示している。ここでまだ転送データがある時
はスレーブプロセツサ1からマスタプロセツサ5
に、前記の通信手段を用いてこの旨を伝える。こ
れを受けてマスタプロセツサ5はデータ受け渡し
領域21上のデータを、デイスク装置6上の退避
領域25の一番上のブロツクの部分にストアす
る。同様に前記手段を使つてマスタプロセツサ5
がこれを終了した旨をスレーブプロセツサ1に伝
えると、スレーブプロセツサ1は再びデータの受
け渡し領域21に引き続くデータをストアしてい
く。第10図でスレーブプロセツサ2はこのデス
ク装置6への退避操作をすでに2回行つたことを
示している。このようにしてスレーブプロセツサ
1〜4からマスタプロセツサ5に受け渡すデータ
は、データ量が少ない時はコモンメモリ7上の領
域21〜24のみに、データ量が多い時にはこの
他にデイスク装置6上の退避領域25〜28に転
送される。一般にこれらりデータがすべてそろう
と、マスタプロセツサ5はこれらのデータに対し
処理を開始する。
〔発明が解決しようとする問題点〕
ところで、上記各スレーブプロセツサ1〜4は
1種類のデータをマスタプロセツサ5に送つた例
を示したが、一般には何種類ものデータを同時に
送ることもある。この場合、コモンメモリ7上の
データ受け渡し領域21〜24とデイスク装置6
上の退避領域25〜28が(同時に転送されるデ
ータの種類)×(スレーブプロセツサの数)個だけ
それぞれ必要になる。即ち、最大数に合わせて退
避領域25〜28をデイスク装置6に用意してお
く必要がある。
従つて、従来のデータ転送方式ではコモンメモ
リ領域を無駄に使用することが多く、特に転送さ
れるデータの本数が多い時は、データ量の多いも
のから少ないものまで様々であり、合計すれば
楽々とコモンメモリに入るような場合でも、多く
のデータが外部記憶媒体(デイスク装置)に吐き
出されることが多く、これによりコモンメモリや
外部記憶媒体に転送データを格納する独立データ
領域を確保しなければならずソフトウエア的にも
わずらわしいという問題点があつた。
この発明は上記のような問題点を解消するため
になされたもので、データ受け渡し用に用意され
たコモンメモリ領域を無駄なく最大限に利用で
き、また、コモンメモリおよび外部記憶媒体のデ
ータ領域を何本にも分けることなく一元化して確
保できるようなデータ転送方式を提供することを
目的とする。
〔問題点を解決するための手段〕
この発明に係るデータ転送方式は、マスタプロ
セツサ5とスレーブプロセツサ1〜4とを備え、
マスタプロセツサ5に接続された外部記憶媒体
(デイスク装置6)上に複数のブロツクに分割さ
れた退避領域13を設け、コモンメモリ7上に複
数のブロツクに分割されたデータ受け渡し領域
(キヤツシユ領域17)と、当該データ受け渡し
領域(キヤツシユ領域17)及び上記退避領域1
3を管理するための管理領域(キヤツシユフアイ
ルテーブル15、キヤツシユデイレクトリ16、
デイスクブロツクテーブル18)を設けるととも
に、マスタプロセツサ5上に上記管理領域(キヤ
ツシユフアイルテーブル15、キヤツシユデイレ
クリト16、デイスクブロツクテーブル18)を
用いてデータ受け渡し領域(キヤツシユ領域1
7)及び退避領域13を管理するプログラムを設
け、プロセツサ間でデータの受け渡しを行う時、
送出側プロセツサは上記プログラムにブロツク書
き込み要求を出し、この要求を受けてプログラム
はデータ受け渡し領域(キヤツシユ領域17)中
の未使用の1ブロツクを選択し、未使用のブロツ
クがなければ使用中の1ブロツクを選択してその
内容を外部記憶媒体(デイスク装置6)上の退避
領域13に書き出した後、コモンメモリ7上のそ
の1ブロツク位置を送出側プロセツサに教え、こ
の送出側プロセツサはコモンメモリ7上のその1
ブロツクに送出データを書き込んでいき、その1
ブロツクが一杯になつて更に送出データが続く時
は、再び送出側プロセツサがプログラムに対して
ブロツク書き込み要求を出すという処理を繰り返
して、全送出データを順々にブロツクに書き込
み、次に、受け取り側プロセツサは、そのデータ
に対するブロツク読み出し要求をプログラムに対
して出し、プログラムはそのデータの先頭ブロツ
クがコモンメモリ7のデータ受け渡し領域(キヤ
ツシユ領域17)上になければコモンメモリ7上
の受け渡し領域(キヤツシユ領域17)から未使
用の1ブロツクを選択し、未使用のブロツクがな
ければ使用中の1ブロツクを選択してその内容を
外部記憶媒体(デイスク装置6)の退避領域13
に書き出した後、この外部記憶媒体(デイスク装
置6)にセーブされている上記先頭ブロツク内容
を、選択した受け渡し領域(キヤツシユ領域1
7)の1ブロツクにロードし、この1ブロツク位
置を受け取り側プロセツサに教え、この受け取り
側プロセツサはコモンメモリ7の受け渡し領域
(キヤツシユ領域17)のその1ブロツクからデ
ータを全部読み出し、更に読み出すべきデータの
続きがある場合には再びプログラムに対してブロ
ツク読み出し要求を出し、プログラムはそのデー
タの2番目のブロツクを同様にしてコモンメモリ
7の受け渡し領域(キヤツシユ領域17)の1ブ
ロツクに用意してこの1ブロツク位置を読み出し
側プロセツサに教えるという処理を繰り返し、受
け取り側プロセツサがその読み出しデータを全部
読み取れるようにしたものである。
〔作用〕
例えば、スレーブプロセツサ1からマスタプロ
セツサ5にデータを転送する場合、スレーブプロ
セツサ1はマスタプロセツサ5上のプログラムに
ブロツク書き込み要求を出す。これにより、コモ
ンメモリ7のデータ受け渡し領域(キヤツシユ領
域17)中の未使用の1ブロツクが選択され、未
使用のブロツクがなければ使用中の1ブロツクが
選択されてその内容が外部記憶媒体(デイスク装
置6)上の退避領域13に書き込まれる。次に、
スレーブプロセツサ1はその選択された1ブロツ
クの位置を確認し、この1ブロツクに送出データ
を書き込んでいく。そしてこの1ブロツクにデー
タが一杯書き込まれ、更に送出データが続く時
は、再びスレーブプロセツサ1はプログラムに対
してブロツク書き込み要求を出す。
これにより、同様な処理を行い送出データの全
部が1ブロツクに書き込まれる。次に、マスタプ
ロセツサ5はその送出データに対するブロツク読
み出し要求をプログラムに対して出し、これによ
りデータ受け渡し領域(キヤツシユ領域17)か
らそのデータの先頭ブロツクが指定されるが、こ
の先頭ブロツクがデータ受け渡し領域(キヤツシ
ユ領域17)上になければデータ受け渡し領域
(キヤツシユ領域17)から未使用の1ブロツク
が選択され、未使用のブロツクがなければ使用中
の1ブロツクが選択されてその内容が外部記憶媒
体(デイスク装置6)の退避領域13に書き込ま
れ、その後、外部記憶媒体(デイスク装置6)に
セーブされている先頭ブロツク内容は上記選択さ
れた1ブロツクにロードされる。マスタプロセツ
サ5はこの1ブロツク位置を認識し、このブロツ
クから受け取りデータを全部読み出す。更に読み
出すべきデータの続きがある場合には、マスタプ
ロセツサ5はプログラムに対してブロツク読み出
し要求を再び出す。これにより、マスタプロセツ
サ5は同様な処理を行い、読み出しデータの全部
を読み取る。
〔発明の実施例〕
以下この発明の一実施例を図について説明す
る。第1図において、5はマスタプロセツサ、1
〜4はそれぞれスレーブプロセツサ、6はマスタ
プロセツサに接続されるデイスク装置、7はコモ
ンメモリ、8は5つのプロセツサ1〜5からコモ
ンメモリ7へアクセスするためのバス、9〜12
はそれぞれマスタプロセツサ5とスレーブプロセ
ツサ1〜4の間の双方向な割り込み信号、13は
デイスク装置6上の退避領域、14〜18はコモ
ンメモリ7上に設けられたデータ領域であり、1
4はメールボツクス領域、15はキヤツシユフア
イルテーブル、16はキヤツシユデイレクトリ、
17はキヤツシユ領域、18デイスクブロツクテ
ーブルである。第2図は図示のように8区画から
成るメールボツクス領域14の内容を示す図であ
る。各区画にはマスタプロセツサ5からスレーブ
プロセツサ1〜4に、スレーブプロセツサ1〜4
からマスタプロセツサ5に送られる制御情報が入
れられる。第3図はキヤツシユフアイルテーブル
15の内容を示す図である。この実施例では100
エントリから成つており、100本までのキヤツシ
ユフアイルがサポートされる。上から順番に0番
のキヤツシユフアイル〜99番のキヤツシユフアイ
ルと呼ぶことにする。キヤツシユフアイルとは本
実施例で仮に付けた名前であり、各プロセツサの
間で受け渡される一まとまりのデータのことをい
う。デイスクキヤツシユを利用したフアイルとい
うような意味である。V項目が“1”の時はこの
キヤツシユフアイルは使用中、“0”の時は使用
中でないことを示す。
CB項目は1から教えたこのキヤツシユフアイ
ルのカレントブロツク番号を示している。即ち、
プログラムがデータを書き込み中又は読み出し中
のブロツク番号を表す。その右にC項目、BNO
項目のペアが100ペア存在する。これはそのキヤ
ツシユフアイルの各ブロツクの情報を示すもので
左から第1ブロツク、第2ブロツク、……第100
ブロツクとなる。即ち、このキヤツシユフアイル
は最大100ブロツク長まで可能である。C項目が
“1”の時はブロツクのデータは、BNO番目のキ
ヤツシユブロツク上に存在し、C項目が“0”の
時はデイスク退避領域13のBNO番目のブロツ
クに存在する。
第4図はキヤツシユデイレクトリ16の内容及
びキヤツシユ領域17との対応を示す図である。
V項目が“1”の時はそのキヤツシユブロツクは
使用中、“0”の時は使用中でないことを示す。
以下はV=1の時に意味有りの項目で、ACT項
目はキヤツシユフアイルテーブル15のCB項目
が指しているブロツクに対応するキヤツシユブロ
ツクに対して“1”、そうでない時“0”となる。
即ち書き込み中ないし読み出し中のブロツクに対
してACT=1となる。CFNO項目はそのキヤツ
シユブロツクが割り当てられているキヤツシユフ
アイル番号、FBNOはそのキヤツシユフアイル
中のブロツク番号を表す。MRU(Most
Recently Used)ポインタはV=1のエントリを
ポインタで結ぶものであり、新しく作られたエン
トリから順にポインタで結ばれる。キヤツシユデ
イレクトリ16の各エントリは第4図に示すよう
にそれぞれキヤツシユ領域17の各ブロツクに対
応する。各キヤツシユブロツクは10kバイトから
なる区画であり受け渡しデータがここに入れられ
る。第5図はデイスクブロツクテーブル18の内
容及びデイスク退避エリア13との対応を示すも
のである。これはV項目が1000エントリから成
り、各エントリはデイスク退避エリア13の1ブ
ロツク(10kバイト)に対応する。V=1の時こ
のデイスクブロツクにデータが退避されているこ
とを示す。
マスタプロセツサ5および各スレーブプロセツ
サ1〜4はローカルメモリをそれぞれ持つてお
り、プログラムはそれぞれのローカルメモリにス
トアされている。マスタプロセツサ5上にはキヤ
ツシユフアイルを一元化して管理するキヤツシユ
フアイルマネージヤ(プログラム)が存在する。
マスタプロセツサ5ないしスレーブプロセツサ1
〜4上のタスクはキヤツシユフアイルマネージヤ
に要求を出すことによつて、キヤツシユフアイル
を使用することができる。キヤツシユフアイル要
求には大きく分けてWrite要求とRead要求とが
ある。最も多いパターンは、スレーブプロセツサ
1〜4上のタスクがWrite要求を出してキヤツシ
ユフアイルにデータを書き込み、マスタプロセツ
サ5上のタスクがRead要求を出してこれを読み
込むというものであるが、例えばマスタプロセツ
サ5上のタスクがWrite要求でキヤツシユフアイ
ルに書き込み、再びマスタプロセツサ5上のタス
クがRead要求でこれを読み込むというようなこ
とも可能である。
さて第6図はキヤツシユフアイルをWrite/
Readする手順を示したものであり、この図にお
いて左側が要求元の動作を、右側がキヤツシユフ
アイルマネージヤCFMの動作を示す。キヤツシ
ユフアイルマネージヤとは、コモンメモリ7上の
データ受け渡し領域を管理するマスタプロセツサ
5上のプログラムをいう。スレーブプロセツサ1
〜4からマスタプロセツサ5にデータを転送する
場合について以下その動作を説明する。キヤツシ
ユフアイルにデータを書き込もうとするタスク
(ここではスレーブプロセツサ上のタスク)はa
でキヤツシユフアイル使用要求を出す。即ち、メ
ールボツクス14上にCMD(Command)=01を
セツトして、マスタプロセツサ5に割り込みをか
ける。これを受けて、マスタプロセツサ5上のキ
ヤツシユフアイルマネージヤは、使用を許可する
キヤツシユフアイル番号CFNO、その最初のブロ
ツクとなるキヤツシユブロツク番号CBNOと
CMD=00とをメールボツクス14にセツトして
該スレーブプロセツサに割り込みをかける。ここ
でキヤツシユフアイル番号の選択法は、キヤツシ
ユフアイルテーブル15を上から見ていき、V=
0のエントリがあつたらこれを使うものとし、こ
の行番がキヤツシユフアイル番号となる(キヤツ
シユフアイルは100本以上使用しないようにする
ため必ずV=0のエントリはある)。そこで、こ
の行のV項目を“1”にセツトする。次にこのキ
ヤツシユフアイルの先頭のブロツクとなるキヤツ
シユブロツクをキヤツシユデイレクトリ16から
第7図に示すアルゴリズムによつてさがし出す。
次にキヤツシユフアイルテーブル15のこのエン
トリのCB項目を“1”(Carrent Block=1)
に、最初のC項目を“1”(キヤツシユ上に有り)
に、最初のBNO項目に上記で得たキヤツシユブ
ロツク番号をそれぞれセツトする。以上の操作を
終了するとキヤツシユフアイルマネージヤCFM
はCMD=00(レデイ)、キヤツシユフアイル番号、
キヤツシユブロツク番号を該当するメールボツク
スにセツトして割り込みをかける。bでスレーブ
プロセツサは与えられたキヤツシユブロツク番号
から該当するキヤツシユブロツクのメモリアドレ
スを計算し、そのアドレスを基にこのキヤツシユ
ブロツクにデータを順次書き込んでいく。dでは
途中でキヤツシユブロツクが終りになつてしまつ
た時はキヤツシユフアイルマネージヤCFMに対
して次のブロツク要求(CMD=02)を出す。こ
れを受けてキヤツシユフアイルマネージヤCFM
はaと同様第7図に示すアルゴリズムによりキヤ
ツシユブロツクを1つ選択し、この番号をCMD
=00と共に返す。これを受けてスレーブ上のタス
クはbに飛ぶ。データが続く限りこれをくり返
す。cでデータが途中で終になるとfへ飛びスレ
ーブプロセツサ上のタスクはWrite終了通知
(CMD=03)を出す。これによりキヤツシユフア
イルマネージヤCFMはこのキヤツシユフアイル
をリワインド(0→CB)してCMD=00を返す。
以上がスレーブプロセツサ上のタスクが1つのキ
ヤツシユフアイルにデータを書き込む操作であ
る。
ここで、第7図に示すフローチヤートを説明す
る。ステツプS1ではキヤツシユフアイルの先頭
のブロツクとなるキヤツシユブロツクを選択し、
そのブロツクが使用中であるか否かを調べるため
に、キヤツシユデイクトリ16上にV=0のエン
トリが有るか否かを判定し、有ればそのブロツク
が不使用なのでステツプS6に移り、無ければ全
てのブロツクが使用中なのでステツプS2に移る。
ステツプS2ではMRUポインタをたどりACT=
0の最新エントリを選択し、ステツプS3ではデ
イスクブロツクテーブル18上でV=0のエント
リを選びそのエントリをV=1にセツトする。ス
テツプS4では上記キヤツシユブロツクのデータ
をデイスクブロツクに転送する。即ち、選択した
キヤツシユ領域17内の1ブロツクの内容をデイ
スク装置6の退避領域13に書き出す。ステツプ
S5では、キヤツシユデイレクトリ16のこのエ
ントリのキヤツシユフアイル番号CFNOおよびブ
ロツク番号FBNOからキヤツシユフアイルテー
ブル15上で該当C項目およびBNO項目(キヤ
ツシユブロツク番号)を求め、C=0,BNO=
デイスクブロツク番号にセツトする。ステツプ
S6ではステツプS1でのキヤツシユブロツクある
いはステツプS4でのキヤツシユブロツクを新た
にキヤツシユフアイルの格納用に使用し、ステツ
プS7ではキヤツシユデイレクトリ16上でV=
1,ACT=1,CFNO,FBNO,MRUポインタ
をセツトする。ステツプS8ではキヤツシユフア
イルの要求元にこのキヤツシユブロツク番号を知
らせる。即ち、コモンメモリ7上のそのキヤツシ
ユブロツク位置を要求元の送出側プロセツサに教
える。
次に第8図に基づいてマスタプロセツサ5上の
タスクがこのキヤツシユフアイルのデータを読み
出す動作を説明する。なお、書き手のスレーブプ
ロセツサ上のタスクと読み手のマスタプロセツサ
5上のタスクの間では、別途キヤツシユフアイル
番号及びデータ長の情報は受け渡されているもの
とする。第8図のgで読み手のタスクはCMD=
04とキヤツシユフアイル番号CFNOを与えて
CFM(キヤツシユフアイルマネージヤ)にサービ
スを要求する。この場合の処理はマスタプロセツ
サ5内で行なわれるのでメールボツクス領域14
は使用しない。CFMは第9図に示すアリゴリズ
ムにより、該キヤツシユフアイルの先頭ブロツク
をキヤツシユ領域17上に用意し、そのキヤツシ
ユブロツク番号を返す。読み手のタスクは該キヤ
ツシユブロツク番号からそのメモリアドレスを計
算し、そのアドレスを基にコモンメモリ7から順
次データを読み出すh。このキヤツシユブロツク
のデータを全て読み出しても、まだデータがある
時jは再びgに行き次ブロツクRead要求を出す。
CFMは前記と同様に該キヤツシユブロツクを用
意するが、この時直前に読み終えたキヤツシユブ
ロツクに対応するキヤツシユデイレクトリ16の
Vビツトを0にする(解放する)。以上の処理を
くり返してデータをすべて読み終えた時iは、読
み手のタスクはCMD=05を繰り返すk。これを
受けてCFMはキヤツシユデイレクトリ16上の
該エントリのV項目を0にすると共に、キヤツシ
ユフアイルテーブル15上の該エントリのV項目
を0にして処理を終了する。
ここで、第9図に示すフローチヤートについて
説明する。ステツプN1ではブロツク読み出し要
求に対するデータの先頭ブロツクがキヤツシユ領
域17上にあるかを調べるために、キヤツシユフ
アイルマネージヤCFMがキヤツシユフアイルテ
ーブル15上でキヤツシユフアイルのブロツク位
置(CBに対応するC,BNO)を調べ、ステツプ
N2ではそのCが“1”であるか否かを判定する。
即ち、Cが“1”のときはそのブロツクのデータ
はBNO番目のキヤツシユブロツク上に存在し、
Cが“0”のときはデイスク退避領域13の
BNO番目のブロツクに存在するので、Cが“1”
であるか否かを判定する。Cが“1”でないとき
即ち“0”であるときステツプN3に移り、キヤ
ツシユデイレクトリ16上にV=0のエントリが
有るか否かを判定する。V=0のエントリがある
とき、即ち、キヤツシユ領域17上に不使用のキ
ヤツシユブロツクがあるときステツプN9に移り
上記キヤツシユブロツクを使用する。また、V=
0のエントリがないとき、即ち、キヤツシユ領域
17上の全てのキヤツシユブロツクが使用中であ
るときステツプN4に移りMRUポインタをたどり
ACT=0の最新エントリを選択する。ステツプ
N5ではデイスクブロツクテーブル18上でV=
0のエントリを選びそのエントリをV=1にセツ
トする。ステツプN6では使用中であつたキヤツ
シユブロツク内容をデイスク退避領域13上に書
き出すため、キヤツシユブロツクのデータをデイ
スクブロツクに転送する。ステツプN7ではキヤ
ツシユデイレクトリ16のこのエントリの
CFNO,FBNOからキヤツシユフアイルテーブ
ル15上で該当するC,BNO項目を求め、C=
0,BNO=デイスクブロツク番号にセツトする。
ステツプN8ではステツプN1で調べたBNOに対
応するデイスクブロツクテーブル18のエントリ
のを1から0にし、このデイスクブロツクのデ
ータを上記で求めたキヤツシユブロツクにロード
する。そしてこの情報をキヤツシユフアイルテー
ブル15およびキヤツシユデイレクトリ16に反
映する。即ちステツプN7,N8ではデイスク退避
領域13にセーブされているデータの先頭ブロツ
ク内容を選択したキヤツシユ領域17の1ブロツ
クにロードする。ステツプN10では、ステツプ
N1でのブロツク位置を示すキヤツシユブロツク
番号、あるいはステツプN8でのキヤツシユブロ
ツク番号をブロツク読み出し要求元に知らせる。
即ち、ステツプN10ではデイスク退避領域13上
のキヤツシユブロツクのキヤツシユフアイル(受
け渡しデータ)を受け取り側プロセツサに転送す
るため、そのブロツク番号をそのプロセツサに知
らせる。
上記実施例においては、異常等のようにしてス
レーブプロセツサからマスタプロセツサへのデー
タ転送が行われる。ここでは1つのスレーブプロ
セツサが1本のキヤツシユフアイルを介してマス
タプロセツサにデータを送る場合を示した。一般
には、1つのスレーブプロセツサがn種類のデー
タをn本のキヤツシユフアイルを用いて、同時並
行的にマスタプロセツサに送る場合がある。4つ
のスレーブプロセツサが同様の操作をすれば、合
計4n種類のデータが4n本のキヤツシユフアイル
を使つて転送されることになる。上記アリゴリズ
ムによれば、キヤツシユフアイル数≦100、転送
データの全ブロツク数≦1000であればこのような
転送が可能である。この時4n本の転送データの
データ長は様々であるが、これらが1つのキヤツ
シユ領域17、あるいは1つのデイスク退避領域
13にまぜ合わさつて無駄なく配置されるため、
コモンメモリ領域及びデイスク領域が最大限有効
利用されることになる。
なお、上記実施例ではスレーブプロセツサが4
個の場合を示したが、これは何個でもよい。又も
マスタ/スレーブという呼び名は特にこだわる必
要がなく、キヤツシユフアイルマネージヤプログ
ラムが走る1つのプロセツサ(マスタ)と、他に
各種のプロセツサ(スレーブ)がつながるような
場合にも適用できる。又、上記実施例では各プロ
セツサは共通バス8でコモンメモリ7にアクセス
したが、例えばコモンメモリ7はバスでなくマル
チポートメモリの形態でアクセスされてもよい。
又、キヤツシユフアイルテーブル15のエントリ
数=100、デイスクブロツクテーブル18のエン
トリ数=1000等のサイズは1つの例として示した
ものであり、一般にどのようなサイズであつても
よい。又、キヤツシユフアイルテーブル15等の
フオーマツトについても1つの例を示したもので
あり、例えばこれはV,CB項目を含む1つのテ
ーブルと、C,BNO項目を含む他のテーブルの
2つに分けることも可能である。又、書き込み側
プロセツサと読み出し側プロセツサとしては、自
分自身から自分自身に送る場合を含めて、マス
タ、スレーブの任意の組み合せが可能である。
〔発明の効果〕
以上のように本発明によれば、プロセツサ間で
データの受け渡しを行う時、プログラムはコモン
メモリのデータ受け渡し領域中の未使用の1ブロ
ツクを選択し、未使用のブロツクがなければ使用
中の1ブロツクを選択してその内容を外部記憶媒
体上の退避領域に書き出し、その後、送出側プロ
セツサからの送出データをデータ受け渡し領域中
の選択された1ブロツクに書き込んでいき、更に
送出データが続くときは同様な処理により順次ブ
ロツクに書き込み、次に、受け取り側プロセツサ
はそのデータに対するブロツク読み出し要求をプ
ログラムに出すと、プログラムはそのデータの先
頭ブロツクがコモンメモリのデータ受け渡し領域
上になければコモンメモリ上の受け渡し領域から
未使用の1ブロツクを選択し、未使用のブロツク
がなければ使用中の1ブロツクを選択してその内
容を外部記憶媒体の退避領域に書き出し、この外
部記憶媒体にセーブされている先頭ブロツク内容
を選択した受け渡し領域の1ブロツクにロード
し、受け取り側プロセツサはコモンメモリ上の受
け渡し領域のその1ブロツクから受け取りデータ
を全部読み出し、更に読み出すべきデータの続き
がある場合には再び同様な処理により受け取りデ
ータを読み出すようにしたので、データ受け渡し
用に用意されたコモンメモリ領域を無駄なく最大
限に利用でき、また、コモンメモリおよび外部記
憶媒体のデータ領域を何本にも分けることなく一
元化して確保でき、従つてプロセツサ間のデータ
転送処理の容易化を図ることができるという効果
が得られる。
【図面の簡単な説明】
第1図はこの発明の一実施例に係るデータ転送
方式を採用したデータ処理装置の構成を示すブロ
ツク図、第2図は第1図のメールボツクス領域を
示す図、第3図は第1図のキヤツシユフアイルテ
ーブルを示す図、第4図は第1図のキヤツシユデ
イレクトリとキヤツシユ領域とを示す図、第5図
は第1図のデイスクブロツクテーブルとデイスク
退避領域とを示す図、第6図はこの実施例におけ
るキヤツシユフアイルにデータを書き込む手順を
示す図、第7図はこの実施例において書き込み時
に新たなキヤツシユブロツクを選択する手順を示
すフローチヤート、第8図はこの実施例における
キヤツシユフアイルからデータを読み込む手順を
示す図、第9図はこの実施例において読み込み時
に該当するキヤツシユブロツクを選択する手順を
示すフローチヤート、第10図は従来のデータ転
送方式を採用したデータ処理装置の構成を示すブ
ロツク図である。 1〜4……スレーブプロセツサ、5……マスタ
プロセツサ、6……デイスク装置(外部記憶媒
体)、7……コモンメモリ、17……キヤツシユ
領域(データ受け渡し領域)。

Claims (1)

    【特許請求の範囲】
  1. 1 外部記憶媒体に接続され所定のデータ処理を
    行うマスタプロセツサと、このマスタプロセツサ
    からの依頼処理を受ける少なくとも1つのスレー
    ブプロセツサとがコモンメモリに接続され、マス
    タプロセツサとスレーブプロセツサとがコモンメ
    モリを用いてデータ転送を行うマルチプロセツサ
    構成のデータ処理装置において、上記外部記憶媒
    体上に複数のブロツクに分割された退避領域を設
    け、上記コモンメモリ上に複数のブロツクに分割
    されたデータ受け渡し領域と、当該データ受け渡
    し領域及び上記退避領域を管理するための管理領
    域を設けるとともに、上記マスタプロセツサ上に
    上記管理領域を用いて上記データ受け渡し領域及
    び退避領域を管理するプログラムを設け、プロセ
    ツサ間でデータの受け渡しを行う時、送出側プロ
    セツサは上記プログラムにブロツク書き込み要求
    を出し、この要求を受けてプログラムは上記デー
    タ受け渡し領域中の未使用の1ブロツクを選択
    し、未使用のブロツクがなければ使用中の1ブロ
    ツクを選択してその内容を上記外部記憶媒体上の
    退避領域に書き出した後、コモンメモリ上のその
    1ブロツク位置を上記送出側プロセツサに教え、
    この送出側プロセツサはコモンメモリ上のその1
    ブロツクに送出データを書き込んでいき、その1
    ブロツクが一杯になつて更に送出データが続く時
    は、再び上記送出側プロセツサが上記プログラム
    に対してブロツク書き込み要求を出すという処理
    を繰り返して、全送出データを順々にブロツクに
    書き込み、次に、受け取り側プロセツサは、その
    データに対するブロツク読み出し要求を上記プロ
    グラムに対して出し、そのプログラムはそのデー
    タの先頭ブロックがコモンメモリのデータ受け渡
    し領域上になればコモンメモリ上の受け渡し領域
    から未使用の1ブロツクを選択し、未使用のブロ
    ツクがなければ使用中の1ブロツクを選択してそ
    の内容を上記外部記憶媒体の退避領域に書き出し
    た後、この外部記憶媒体にセーブされている上記
    先頭ブロツクの内容を上記選択した受け渡し領域
    の1ブロツクにロードし、この1ブロツク位置を
    受け取り側プロセツサに教え、この受け取り側プ
    ロセツサはコモンメモリ上の受け渡し領域のその
    1ブロツクから受け取りデータを全部読出、更に
    読み出すべきデータの続きがある場合には再び上
    記プログラムに対しブロツク読み出し要求を出
    し、このプログラムはそのデータの2番目のブロ
    ツクを同様にしてコモンメモリの受け渡し領域の
    1ブロツクに用意してこの1ブロツク位置を上記
    読み出し側プロセツサに教えるという処理を繰り
    返し、上記受け取り側プロセツサがその読み出し
    データを全部読み取れるようにしたことを特徴と
    するデータ転送方式。
JP62214502A 1987-08-28 1987-08-28 Data transfer system Granted JPS6458045A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62214502A JPS6458045A (en) 1987-08-28 1987-08-28 Data transfer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62214502A JPS6458045A (en) 1987-08-28 1987-08-28 Data transfer system

Publications (2)

Publication Number Publication Date
JPS6458045A JPS6458045A (en) 1989-03-06
JPH0564824B2 true JPH0564824B2 (ja) 1993-09-16

Family

ID=16656775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62214502A Granted JPS6458045A (en) 1987-08-28 1987-08-28 Data transfer system

Country Status (1)

Country Link
JP (1) JPS6458045A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677034B2 (en) * 2006-04-28 2014-03-18 Hewlett-Packard Development Company, L.P. System for controlling I/O devices in a multi-partition computer system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59220853A (ja) * 1983-05-27 1984-12-12 Toshiba Corp デイスクキヤツシユシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59220853A (ja) * 1983-05-27 1984-12-12 Toshiba Corp デイスクキヤツシユシステム

Also Published As

Publication number Publication date
JPS6458045A (en) 1989-03-06

Similar Documents

Publication Publication Date Title
US5870625A (en) Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command
JPS6217876Y2 (ja)
US5796979A (en) Data processing system having demand based write through cache with enforced ordering
WO2001029674A1 (en) Multi-processor system and method of accessing data therein
EP0037264A2 (en) Associative memory system
JPH0564824B2 (ja)
JPH01125644A (ja) データ転送装置
JP2994917B2 (ja) 記憶システム
JP2866376B2 (ja) ディスクアレイ装置
JPH0750466B2 (ja) 並列計算機キャッシュ・メモリ制御方式
JP3157513B2 (ja) 拡張記憶装置
JPS6368960A (ja) 共用記憶媒体の順次アクセス制御装置
JP2615046B2 (ja) レコード追加処理方法
JP2735400B2 (ja) 非同期入出力制御方式
JP2540844B2 (ja) デ−タ転送制御方法
JP2798140B2 (ja) 仮想空間制御方式
JPH0387941A (ja) 分散データベース処理方式
KR0171771B1 (ko) 컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치
EP0545822B1 (en) A common file access system and a common file access method in a distributed memory type computer system
JPS62160545A (ja) 直接アクセス記憶装置の未使用領域管理方式
JPH01276348A (ja) 2次キャッシュメモリ方式
JPS62107364A (ja) コンピュータシステムにおけるノード間のアクセス方法
JPH04362764A (ja) 情報処理装置
JPS62241047A (ja) デ−タベ−ス管理システムによる入出力バツフアの共用制御方法
JPS63192126A (ja) デ−タセツトのスペ−ス管理処理方式