JP3251147B2 - プロセッサ間データ転送方法およびその装置 - Google Patents

プロセッサ間データ転送方法およびその装置

Info

Publication number
JP3251147B2
JP3251147B2 JP11374295A JP11374295A JP3251147B2 JP 3251147 B2 JP3251147 B2 JP 3251147B2 JP 11374295 A JP11374295 A JP 11374295A JP 11374295 A JP11374295 A JP 11374295A JP 3251147 B2 JP3251147 B2 JP 3251147B2
Authority
JP
Japan
Prior art keywords
processor
data
packets
packet
inter
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
Application number
JP11374295A
Other languages
English (en)
Other versions
JPH08287031A (ja
Inventor
哲也 広瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP11374295A priority Critical patent/JP3251147B2/ja
Publication of JPH08287031A publication Critical patent/JPH08287031A/ja
Application granted granted Critical
Publication of JP3251147B2 publication Critical patent/JP3251147B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサがプ
ロセッサ間ネットワークによって結合された並列計算機
におけるプロセッサ間データ転送技術に関する。
【0002】
【従来の技術】一般にプロセッサ間ネットワーク内を転
送されるパケットには、その語数について制限がある。
このため、複数のプロセッサがプロセッサ間ネットワー
クによって結合された並列計算機において、プロセッサ
間で大量のデータを転送する場合、複数のパケットに分
割してプロセッサ間ネットワークを通じて転送する必要
がある。
【0003】またプロセッサ間ネットワークからデータ
を受信したプロセッサ側では、その旨を当該プロセッサ
内のCPUに通知するために一般にCPUに割り込みが
かけられるが、前述のように複数のパケットに分割され
て転送されるデータに関しては、割り込みをかける方式
として、次の2通りの方式がある。
【0004】その1つは、個々のパケットを受信する毎
に、そのパケットのデータを主記憶に格納してCPUに
割り込みをかける方式である。
【0005】他の方式は、本出願人が先に提出した特願
平6−138822号に開示するように、一連のパケッ
トのうちの最後のパケットのデータを主記憶に格納した
時点でCPUに割り込みをかける方式である。
【0006】なお、何れの方式においても、受信したパ
ケットを一時的に蓄えておくバッファメモリは設けられ
ておらず、受信したパケットのデータを主記憶に直接に
書き込む方式が採用されている。
【0007】前者のように各パケット受信毎にCPUに
割り込みをかけると、その度にCPUの処理が中断さ
れ、レジスタ退避などのオーバヘッドが発生して処理の
効率が低下する問題がある。これに対し、後者のように
最後のパケットを受信した時点でCPUに割り込みをか
ける方式によれば、不必要な割り込みによるCPUの処
理の中断を防ぐことができる。
【0008】
【発明が解決しようとする課題】ところで、一般に並列
計算機において、各プロセッサが遠隔のデータにアクセ
スするのに、その都度ネットワークを介してデータ転送
するのは効率的でない。そこで、自プロセッサの主記憶
上にそのコピーを保持しておき、可能なかぎりそのコピ
ーを利用することで実質的なデータアクセス時間を短縮
している。このとき問題となるのが主記憶とキャッシュ
メモリとの一貫性の維持である。即ち、キャッシュメモ
リは主記憶の一部のコピーを保持しているため、転送さ
れてきたデータによって主記憶が書き替えられた場合、
そのコピー部分がキャッシュメモリ上に存在していれば
矛盾が生じることになる。そこで、主記憶のデータが書
き替えられた場合、何らかの手段でその領域がキャッシ
ュメモリに存在するか否かを調べ、若し存在すればその
一貫性を保つ処理を行う必要がある。ハードウェアでこ
の処理を行う事は、キャッシュ処理速度は早くなるが、
コスト高や、バスの使用量の増大により全体の性能を落
とす可能性がある。一方、CPUによるソフトウェア処
理によってこの処理を行う場合、従来のプロセッサ間デ
ータ転送方法を採用している関係上、以下のような問題
があった。
【0009】データを複数のパケットに分割して転送
し、その個々のパケットの受信時にCPUに割り込みを
かける方法では、頻繁な割り込みによってオーバヘッド
が増大するのに加え、割り込みがかかったCPUがキャ
ッシュ処理を行っている期間中は、次の受信パケットの
データを主記憶へ格納することができないため、実質的
なパケットの転送時間間隔が長くなり、データ転送速度
が低下するという問題がある。
【0010】他方、データを複数のパケットに分割して
転送し、その最後のパケットの受信時にのみCPUに割
り込みをかける方法では、CPUによるキャッシュ処理
のための主記憶からのデータの読み出しと受信したパケ
ットの主記憶への書き込みとが競合することはないが、
キャッシュ処理が全データの受信後に実施されるため、
キャッシュ処理の完了が遅延するという問題がある。
【0011】本発明はこのような従来の問題点を解決し
たものであり、その目的は、データ転送速度を向上し得
ると共に、受信側で一貫性を維持するためのキャッシュ
処理を速やかに完了し得るようにすることにある。
【0012】
【課題を解決するための手段】本発明は上記の目的を達
成するために、CPUと主記憶とその一部のコピーを保
持するキャッシュメモリとを備えた第1のプロセッサの
前記主記憶に書き込むべきデータを複数のパケットに分
割して第2のプロセッサからプロセッサ間ネットワーク
を介して前記第1のプロセッサに転送するプロセッサ間
データ転送方法において、前記第2のプロセッサは、前
記データを前記プロセッサ間ネットワークの転送速度,
前記第1のプロセッサのバッファメモリ容量および前記
第1のプロセッサの処理速度から決まる最適な大きさの
複数のブロックに分割すると共に個々のブロックを複数
のパケットに分割し、各ブロックの複数のパケットのう
ち最後に転送するパケットのヘッダ部の受信終了割り込
みフラグを1、その他のパケットのヘッダ部の受信終了
割り込みフラグは0にして、前記プロセッサ間ネットワ
ークを介して前記第1のプロセッサにそれらのパケット
を順次に転送し、前記第1のプロセッサにおいては、前
記プロセッサ間ネットワークを介して受信したパケット
をバッファメモリに蓄積する処理と並行して、該蓄積さ
れたパケットに格納されているデータを主記憶に格納す
る処理を実行し、且つ、ヘッダ部の受信終了割り込みフ
ラグが1になっているパケットに格納されていたデータ
を主記憶に格納し終わる毎にCPUに割り込みをかけ、
該CPUは割り込みをかけられる毎に主記憶に格納され
たデータに基づいてキャッシュメモリの一貫性を保つ処
理を実行するようにしている。
【0013】そして、このようなプロセッサ間データ転
送方法を実施するために、本発明のプロセッサ間データ
転送装置は、第2のプロセッサに、データをプロセッサ
間ネットワークの転送速度,第1のプロセッサのバッフ
ァメモリ容量および第1のプロセッサの処理速度から決
まる最適な大きさの複数のブロックに分割すると共に個
々のブロックを複数のパケットに分割し、各ブロックの
複数のパケットのうち最後に転送するパケットのヘッダ
部の受信終了割り込みフラグを1、その他のパケットの
ヘッダ部の受信終了割り込みフラグは0にして、前記プ
ロセッサ間ネットワークを介して前記第1のプロセッサ
にそれらのパケットを順次に転送する送信装置を備え、
第1のプロセッサに、プロセッサ間ネットワークを介し
て受信したパケットを蓄積するバッファメモリを有し、
このバッファメモリに蓄積されたパケットに格納されて
いるデータを主記憶に格納し、ヘッダ部の受信終了割り
込みフラグが1になっているパケットに格納されていた
データを主記憶に格納する毎に、その格納データに基づ
いてキャッシュメモリの一貫性を保つ処理を起動するた
めにCPUに割り込みをかける受信装置とを備えてい
る。
【0014】なお、データの転送は相互に行われること
が一般的であるため、各プロセッサには、上述した送信
装置と受信装置から構成されるプロセッサ間データ転送
装置が備えられる。
【0015】
【作用】本発明においては、第1のプロセッサの主記憶
ヘ書き込むべきデータを第2のプロセッサから転送する
際、第2のプロセッサに設けられた送信装置が、データ
を複数のブロックに分割すると共に個々のブロックを複
数のパケットに分割し、各ブロックの複数のパケットの
うち最後に転送するパケットのヘッダ部の受信終了割り
込みフラグを1、その他のパケットのヘッダ部の受信終
了割り込みフラグは0にして、プロセッサ間ネットワー
クを介して第1のプロセッサにそれらのパケットを順次
に転送し、第1のプロセッサに設けられた受信装置にお
いて、プロセッサ間ネットワークを介して受信したパケ
ットをバッファメモリに蓄積すると共に、それと並行し
て、バッファメモリに蓄積されたパケットに格納されて
いるデータを主記憶に格納し、ヘッダ部の受信終了割り
込みフラグが1になっているパケットに格納されていた
データを主記憶に格納し終わる毎に、CPUに割り込み
をかけ、CPUがその割り込み時に主記憶に格納された
データに基づいてキャッシュメモリの一貫性を維持する
処理を実行する。
【0016】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0017】図1は本発明を適用した並列計算機の構成
例を示すブロック図である。この例の並列計算機は、N
台のプロセッサ1−1〜1−Nをプロセッサ間ネットワ
ーク2によって相互に接続したものである。プロセッサ
1−1〜1−Nは全て同じ構成を有しており、図1には
プロセッサ1−1を例にその内部構成を示してある。
【0018】図1に示すように、各プロセッサ1−1〜
1−Nは、CPU7と、主記憶3と、プロセッサ間デー
タ転送装置4と、これらを結ぶバス5と、CPU7に接
続されたキャッシュメモリ6とで構成される。また、プ
ロセッサ間データ転送装置4は、送信装置41および受
信装置42で構成される。
【0019】CPU7は演算処理等を司ると共に、主記
憶3上のデータを他のプロセッサに転送する際の起動処
理および他のプロセッサから転送されてきたデータに基
づくキャッシュ処理を司る。
【0020】他のプロセッサに転送する際の起動処理で
は、CPU7は、主記憶3上に転送データ用のヘッダを
作成し、バス5を介してプロセッサ間データ転送装置4
の送信装置41を起動する。
【0021】図2に主記憶上に作成される転送データ用
のヘッダ31の例を示す。同図に示すように、ヘッダ3
1は、宛先プロセッサ指定情報311と、転送すべき一
連のデータの語数を指定したデータ長312と、受信終
了割り込みフラグ313と、一連のデータの主記憶3上
の先頭アドレスを指し示すソースアドレス314と、受
信側プロセッサにおいて転送されてきたデータをその主
記憶に書き出す先頭アドレスを指し示すデスティネーシ
ョンアドレス315と、その他の情報316とで構成さ
れている。ここで、受信終了割り込みフラグ313は、
2または1または0の値をとり、2のときに本発明にお
ける転送方法が有効となる。なお、1のときは例えば一
連のデータをパケットに分割して転送する際の最後のパ
ケットの受信終了時に割り込みを発生させる従来の方法
が有効となり、0の場合は受信終了時に割り込みを発生
させない。なお、本発明の特徴は受信終了割り込みフラ
グ313が2の場合にあるので、以下では受信終了割り
込みフラグ313が2になっている場合に限って説明す
る。
【0022】また、他のプロセッサから転送されてきた
データに基づくキャッシュ処理は、受信装置42からの
受信終了割り込みを契機に開始される。キャッシュ処理
では、CPU7は、受信終了割り込みにて指定された主
記憶3上の領域のコピーがキャッシュメモリ6に存在す
るか否かを調査し、若しコピーが存在すればそれを無効
化する。
【0023】プロセッサ間データ転送装置4の送信装置
41は、他のプロセッサに転送すべき一連のデータを複
数のブロックに分割すると共に個々のブロックを複数の
パケットに分割し、各ブロックの複数のパケットのうち
最後に転送するパケットのヘッダ部の受信終了割り込み
フラグを1、その他のパケットのヘッダ部の受信終了割
り込みフラグは0にして、プロセッサ間ネットワーク2
を介して他のプロセッサにそれらのパケットを順次に転
送する装置であり、本実施例の場合、バスインタフェイ
ス411と、送信制御部412と、レジスタ群413
と、ネットワークインタフェイス414とで構成されて
いる。ここで、バスインタフェイス411は、バス5を
通じてCPU7と信号の授受を行うと共に主記憶3から
のデータの読み出しを行う部分であり、レジスタ群41
3は送信処理に際して必要な種々のデータを一時的に保
持する部分であり、ネットワークインタフェイス414
は作成したパケットをプロセッサ間ネットワーク2に送
出する部分であり、送信制御部412は送信装置41全
体の制御を司る部分である。
【0024】図3にプロセッサ間ネットワーク2を転送
されるパケットの構成例を示す。同図に示すように、パ
ケット32は、パケットヘッダ321と転送データが格
納されるパケット本体322とから構成される。また、
パケットヘッダ321は、宛先プロセッサ指定情報32
11,送り元プロセッサ3212,パケット本体322
に格納されているデータの語数を示すパケット語数32
13,受信終了割り込みフラグ3214,及び当該パケ
ット本体322のデータを書き込むべき受信側の主記憶
の先頭アドレスを指し示すデスティネーションアドレス
3215,その他の情報3216で構成される。ここ
で、受信終了割り込みフラグ3214は1または0の値
をとり、1のときに受信終了割り込みが有効となり、0
のときに無効となる。
【0025】また図4に送信装置41の送信制御部41
2の処理例を示す。各ステップでは以下のような処理が
行われる。処理S1では、主記憶3から転送データ用の
ヘッダ31(図2参照)を読み出して解析する。処理S
2では、ヘッダ31に設定されたデータ長312を残デ
ータ長Aに、ソースアドレス314を現ソースアドレス
Bに、デスティネーションアドレス315を現デスティ
ネーションアドレスCにそれぞれ初期設定する。
【0026】処理S3では、転送データ長Aをブロック
サイズ(分割単位語数)Pで除算してその余りを切り上
げることで、転送する一連のデータを何ブロックに分け
て送るか求め、ブロック数Nとする。
【0027】このブロックサイズ(分割単位語数)P
は、プロセッサ間ネットワーク2の実行転送速度,受信
装置内のバッファメモリの容量,受信装置のメモリ転送
速度,受信側CPUによるキャッシュ処理の速度,割り
込み等の遅延時間によって最適値が求められる。例え
ば、ネットワークがN(B/s),メモリ転送速度がM
(B/s),バッファメモリがB(B)、受信側のキャ
ッシュ処理速度がI(B/s),割り込み等の遅延時間
をD(s)とすると、Pは次のように求められる。
【0028】L=[M×min〔N{(x/I)+
D},B〕]/(M−N) として、x≦Lである場合には、 y=x/{(x/M)+(x/I)+D} x>Lである場合には、 y=x/〔(L/M)+{(x−L)/N}+(x/
I)+D〕 で表される値yを、最大とする値xをPとする。但し、
このブロックサイズ(分割単位語数)Pは、予め送信装
置41に設定されたパケット語数Qの倍数とし、この値
も予め送信装置41に設定しておく。
【0029】処理S4〜処理S12は、1つのブロック
を転送する手順である。処理S4では、1つのブロック
(1分割単位)当たりのパケット数Rを求める。Rは、
基本的にはブロック語数(分割単位語数)Pをパケット
語数Qで除算することで求める。最後のブロックの場合
は残データ長AがブロックサイズPより小さいことがあ
る。このような場合は残データ長Aをパケット語数Qで
除算してその余りを切り上げることで、Rを求める。
【0030】処理S5では、Rの値(その初期値は処理
S4で設定されるが、後述する処理S8で減算されるの
で変化する)が1になったか否かを、即ち次に送出すべ
きパケットが転送中のブロックにおける最後のパケット
であるか否かを判定する。処理S6では、送出する1つ
のパケットを生成する。このとき生成されるパケット
は、図3の受信終了割り込みフラグ3214が0となる
パケットであり、またパケット語数3213はパケット
語数Q、デスティネーションアドレス3215は現デス
ティネーションアドレスC、パケット本体は主記憶3の
現ソースアドレスBから始まる語数Qのデータである。
処理S7では、作成したパケットをネットワークインタ
フェイス414によってプロセッサ間ネットワーク2に
送出する。処理S8では、パケット語数Qのパケットを
1つ送出したので、残データ長A,現ソースアドレス
B,現デスティネーションアドレスCをそれぞれパケッ
ト語数Q分だけ変更し、ブロック当たりのパケット数R
の値を−1する。
【0031】他方、処理S9〜処理S12では、各ブロ
ックの最後のパケットの送出の手順である。処理S9で
は、Nの値(その初期値は処理S3で設定されるが、後
述する処理S12で減算されるので変化する)が1にな
ったか否か、即ち転送中のブロックが全転送データ中の
最後のブロックであるか否かを判定する。処理S10で
は、送出する1つのパケットを生成する。このとき生成
されるパケットは、図3の受信終了割り込みフラグ32
14が1となるパケットであり、またパケット語数32
13はパケット語数Q、デスティネーションアドレス3
215は現デスティネーションアドレスC、パケット本
体は主記憶3の現ソースアドレスBから始まる語数Qの
データである。処理S11では、作成したパケットをネ
ットワークインタフェイス414によってプロセッサ間
ネットワーク2に送出する。処理S12では、パケット
語数Qのパケットを1つ送出したので、残データ長A,
現ソースアドレスB,現デスティネーションアドレスC
をそれぞれパケット語数Q分だけ変更し、転送ブロック
数Nの値を−1する。
【0032】処理S13と処理S14は、最後のブロッ
クの最後のパケットの送出手順である。処理S13で送
出する1つのパケットを生成し、処理S14でそのパケ
ットをネットワークインタフェイス414によってプロ
セッサ間ネットワーク2に送出する。このとき生成され
るパケットは、図3の受信終了割り込みフラグ3214
が1となるパケットであり、またパケット語数3213
は残データ長A(この時点でAは、パケット語数Q以下
となっている)、デスティネーションアドレス3215
は現デスティネーションアドレスC、パケット本体のデ
ータは、主記憶3の現ソースアドレスBから始まる語数
Aのデータである。
【0033】次に、図1における受信装置42は、プロ
セッサ間ネットワーク2を介して受信したパケットをバ
ッファメモリに蓄積する処理と並行して、この蓄積され
たパケットに格納されているデータを主記憶3に格納す
る処理を実行し、且つ、受信終了割り込みフラグが1に
なっているパケットに格納されていたデータを主記憶3
に格納し終わる毎にCPU7に受信終了割り込みをかけ
る装置であり、本実施例の場合、バスインタフェイス4
21と、受信制御部422と、バッファメモリ423
と、ネットワークインタフェイス425とで構成され
る。ここで、バスインタフェイス421は、バス5を通
じてCPU7と信号の授受を行うと共に主記憶3へのデ
ータの書き込みを行う部分であり、バッファメモリ42
3は受信したパケットを一時的に蓄積する十分な容量を
有するFIFO等であり、ネットワークインタフェイス
425はプロセッサ間ネットワーク2から自プロセッサ
宛のパケットを受信しバッファメモリ423に格納する
部分であり、受信制御部422は受信装置42全体の制
御を司る部分である。
【0034】図5は受信装置42における受信制御部4
22の処理例を示すフローチャートである。プロセッサ
間ネットワーク2から受信されたパケットがバッファメ
モリ423に蓄積され始めてバッファメモリ423が空
でなくなると、バッファ制御部424からのその旨の信
号によって受信制御部422が図5に示す処理を開始す
る。先ず、処理S21では、バッファメモリ423から
受信パケットのパケットヘッダを読み出す。処理S22
では、受信パケットのパケット本体のデータをバッファ
メモリ423から読み出し、前記パケットヘッダの図3
のデスティネーションアドレス3215が指し示す主記
憶3のアドレス以降に、その読み出したパケット本体の
データをバスインタフェイス421およびバス5を介し
て書き込む。処理S23では、今回処理したパケットヘ
ッダの図3の受信終了割り込みフラグ3214を調べ、
0であれば、今回のデスティネーションアドレス321
5を記憶しておいて、処理S21に戻って次のパケット
を処理する。
【0035】他方、受信終了割り込みフラグ3214が
1であれば、処理S24で、バスインタフェイス421
およびバス5を通じてCPU7に受信終了割り込みをか
ける。この割り込みでは、今回のデスティネーションア
ドレス3215及びパケット語数3214と、起動時あ
るいは前回の割り込み時より記憶しておいた以前の書き
込み時のデスティネーションアドレス3215とから、
データを格納した主記憶3のアドレス範囲を示す情報を
作成し、これが併せて通知される。そして、処理S25
でCPU7からの再起動を待つ。CPU7からの再起動
は、CPU7が今回のキャッシュ処理を終えた時点で、
バス5およびバスインタフェイス421を通じて受信制
御部422に与えられる。受信制御部422は、再起動
されると、処理S21に戻って次の受信パケットを処理
する。この時、ネットワークインタフェイス425は独
立して動いていてバッファメモリ423に空きがある限
り、ネットワークからのパケットをバッファメモリ42
3に蓄積する処理を行う。
【0036】図6は、プロセッサ間データ転送の手順の
概要を示しており、例として図1のプロセッサ1−1を
送信側プロセッサ、プロセッサ1−Nを受信側プロセッ
サとしたものである。以下、プロセッサ1−1からプロ
セッサ1−Nにデータを転送する場合を例にして本実施
例の動作を説明する。
【0037】送信側プロセッサ1−1のCPU7は、図
6に示すように、主記憶3上の連続したアドレス空間上
に存在する一連のデータ33をプロセッサ1−Nへ転送
する場合、主記憶3上に図2で説明したようなヘッダ3
1を作成し、このヘッダ31のアドレスを通知してプロ
セッサ間データ転送装置4の送信装置41を起動する。
【0038】送信装置41の送信制御部412は、起動
をかけられると、主記憶3からヘッダ31を読み出して
解析し(図4のS1)、次いで、そのヘッダ31のデー
タ長312,ソースアドレス314,デスティネーショ
ンアドレス315から残データ長A,現ソースアドレス
B,現デスティネーションアドレスCを初期設定し(S
2)、転送ブロック数を決定する(S3)。そして、図
4の処理S4〜S14を実行することにより、主記憶上
のデータ32を複数のブロックに分割した場合の個々の
ブロックを複数のパケットに分割してプロセッサ間ネッ
トワーク2に送出する。図6のプロセッサ間ネットワー
ク2内に図示したパケット列P1〜Pmは、このように
して送出された一連のパケットを示しており、各パケッ
ト列P1〜Pmがそれぞれ1ブロックに対応しており、
各パケット列P1〜Pmの複数のパケットのうち最後に
転送されるパケットのみが受信終了割り込みフラグ=1
になっている。
【0039】さて、送信側プロセッサ1−1からプロセ
ッサ間ネットワーク2に順次に送出されたパケットはそ
の送出順に受信側プロセッサ1−Nの受信装置42にお
けるネットワークインタフェイス425で受信され、バ
ッファメモリ423に蓄積されていく。
【0040】受信装置42の受信制御部422は、バッ
ファメモリ423にパケットが蓄積され始めると、図5
に示す処理を開始し、受信したパケットのパケット本体
のデータをバッファメモリ423から読み出して、その
パケットヘッダのデスティネーションアドレス315で
指定された主記憶3のアドレス以降にバスインタフェイ
ス421およびバス5を介して順次に書き込んでいく。
そして、今回書き込んだパケットの受信終了割り込みフ
ラグ3214が0のときは、CPU7に受信終了割り込
みをかけることなく次の受信パケットのバッファメモリ
423からの読み出しと主記憶3への書き込みを続ける
が、受信終了割り込みフラグ3214が1であると、バ
スインタフェイス421およびバス5を介してCPU7
に受信終了割り込みをかける。従って、図6に示した一
連のパケットの転送においては、最初のパケット列P1
の最後のパケットのデータを主記憶3に書き込んだ時点
でCPU3に受信終了割り込みがかけられることにな
る。
【0041】CPU7は、受信装置42から受信終了割
り込みがかけられると、その割り込み時に通知された主
記憶3の書き込み範囲を示すアドレス範囲情報に従っ
て、主記憶3に今回書き込まれた範囲を認識し、その部
分に関してのキャッシュ処理を実行する。即ち、その範
囲内のデータのコピーがキャッシュメモリ6に存在する
か否かを調べ、若し存在する場合にはそのコピーを無効
化する。そして、今回書き込まれたデータに関するキャ
ッシュ処理を終えると、バス5を介して受信装置42を
再起動する。
【0042】この再起動により、受信装置42の受信制
御部422は、次の受信パケットのバッファメモリ42
3からの読み出しと主記憶3への書き込みを再開する。
【0043】以上のような処理によって、図6に示され
た次のパケット列P2以降の各パケット列の受信毎に、
CPU7によるキャッシュ処理が行われる。なお、受信
制御部422は最終のパケットを処理し終えると処理を
終了する。
【0044】図7(a)に本発明のプロセッサ間データ
転送方法を適用した場合の受信側での動作タイミングチ
ャートを示す。同図に示すように、本発明では、キャッ
シュ処理中においてもバッファメモリへの書き込み、即
ちパケットの受信が可能であり、またキャッシュ処理を
開始させる契機となるCPU割り込みがパケット単位で
なくブロック単位で発生するため、割り込み時における
レジスタ退避等のオーバヘッドも低減され、パケットの
受信完了後、速やかにキャッシュ処理が完了している。
なお、主記憶への書き込み速度は、バッファメモリにデ
ータがなければ、ほぼバッファメモリへの書き込み速度
(つまりネットワーク転送速度)に等しくなるが、バッ
ファメモリにデータが蓄積されている再起動時点ではネ
ットワーク転送速度より速い速度でバッファメモリから
主記憶へデータを書き込むことができる。
【0045】これに対して、各パケットの受信毎にCP
Uに割り込みをかけてキャッシュ処理を行わせる方法で
は、受信側の動作タイミングチャートは図7(b)に示
すようになり、キャッシュ処理中には主記憶への書き込
み(つまりパケットの受信)が行えないこと、頻繁に割
り込みがかかるためレジスタ退避等によるオーバヘッド
が増大することから、一連のデータの受信完了およびキ
ャッシュ処理完了までに多くの時間を必要とする。
【0046】更に、一連のデータの最後のパケットの受
信時点でのみCPUに割り込みをかけてキャッシュ処理
を行わせる方法では、受信側の動作タイミングチャート
は図7(c)に示すようになり、キャッシュ処理が全デ
ータ受信後に開始されるために、キャッシュ処理が完了
するまでの時間が長くなる。
【0047】
【発明の効果】以上説明したように本発明によれば、受
信装置にプロセッサ間ネットワークから受信したパケッ
トを蓄積するバッファメモリを設け、受信したパケット
をバッファメモリに蓄積する処理と並行して、その蓄積
されたデータの主記憶への格納処理を実行して幾つかの
パケットのデータを主記憶へ格納する毎にCPUにキャ
ッシュ処理を行わせるものであり、CPUがキャッシュ
処理を行っている期間中においても後続のパケットをバ
ッファメモリにて受信できるため、パケットの連続受信
が可能となり、データ転送速度が向上すると共に、キャ
ッシュ処理がデータ転送と並行して進められるため、全
体のデータ転送処理を速やかに完了し得る効果がある。
【図面の簡単な説明】
【図1】発明を適用した並列計算機の構成例を示すブロ
ック図である。
【図2】送信側プロセッサが一連のデータを転送する際
に作成するヘッダの構成例を示す図である。
【図3】パケットの構成例を示す図である。
【図4】プロセッサ間データ転送装置の送信装置におけ
る送信制御部の処理例を示すフローチャートである。
【図5】プロセッサ間データ転送装置の受信装置におけ
る受信制御部の処理例を示すフローチャートである。
【図6】プロセッサ間データ転送の手順の概要を示す図
である。
【図7】本発明のプロセッサ間データ転送方法および従
来方法を適用した場合の受信側での動作タイミングチャ
ートを示す図である。
【符号の説明】
1−1〜1−N…プロセッサ 2…プロセッサ間ネットワーク 3…主記憶 4…プロセッサ間データ転送装置 41…送信装置 411…バスインタフェイス 412…送信制御部 413…レジスタ群 414…ネットワークインタフェイス 42…受信装置 421…バスインタフェイス 422…受信制御部 423…バッファメモリ 424…バッファ制御部 425…ネットワークインタフェイス 5…バス 6…キャッシュメモリ 7…CPU

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 CPUと主記憶とその一部のコピーを保
    持するキャッシュメモリとを備えた第1のプロセッサの
    前記主記憶に書き込むべきデータを複数のパケットに分
    割して第2のプロセッサからプロセッサ間ネットワーク
    を介して前記第1のプロセッサに転送するプロセッサ間
    データ転送方法において、 前記第2のプロセッサは、前記データを前記プロセッサ
    間ネットワークの転送速度,前記第1のプロセッサのバ
    ッファメモリ容量および前記第1のプロセッサの処理速
    度から決まる最適な大きさの複数のブロックに分割する
    と共に個々のブロックを複数のパケットに分割し、各ブ
    ロックの複数のパケットのうち最後に転送するパケット
    のヘッダ部の受信終了割り込みフラグを1、その他のパ
    ケットのヘッダ部の受信終了割り込みフラグは0にし
    て、前記プロセッサ間ネットワークを介して前記第1の
    プロセッサにそれらのパケットを順次に転送し、 前記第1のプロセッサにおいては、前記プロセッサ間ネ
    ットワークを介して受信したパケットをバッファメモリ
    に蓄積する処理と並行して、該蓄積されたパケットに格
    納されているデータを主記憶に格納する処理を実行し、
    且つ、ヘッダ部の受信終了割り込みフラグが1になって
    いるパケットに格納されていたデータを主記憶に格納し
    終わる毎にCPUに割り込みをかけ、該CPUは割り込
    みをかけられる毎に主記憶に格納されたデータに基づい
    てキャッシュメモリの一貫性を保つ処理を実行すること
    を特徴とするプロセッサ間データ転送方法。
  2. 【請求項2】 CPUと主記憶とその一部のコピーを保
    持するキャッシュメモリとを備えた第1のプロセッサの
    前記主記憶に書き込むべきデータを複数のパケットに分
    割して第2のプロセッサからプロセッサ間ネットワーク
    を介して前記第1のプロセッサに転送するプロセッサ間
    データ転送装置において、 前記第2のプロセッサに、 前記データを前記プロセッサ間ネットワークの転送速
    度,前記第1のプロセッサのバッファメモリ容量および
    前記第1のプロセッサの処理速度から決まる最適な大き
    さの複数のブロックに分割すると共に個々のブロックを
    複数のパケットに分割し、各ブロックの複数のパケット
    のうち最後に転送するパケットのヘッダ部の受信終了割
    り込みフラグを1、その他のパケットのヘッダ部の受信
    終了割り込みフラグは0にして、前記プロセッサ間ネッ
    トワークを介して前記第1のプロセッサにそれらのパケ
    ットを順次に転送する送信装置を備え、 前記第1のプロセッサに、 前記プロセッサ間ネットワークを介して受信したパケッ
    トを蓄積するバッファメモリを有し、該バッファメモリ
    に蓄積されたパケットに格納されているデータを主記憶
    に格納し、ヘッダ部の受信終了割り込みフラグが1にな
    っているパケットに格納されていたデータを主記憶に格
    納する毎に、該格納されたデータに基づいてキャッシュ
    メモリの一貫性を保つ処理を起動するためにCPUに割
    り込みをかける受信装置とを備えることを特徴とするプ
    ロセッサ間データ転送装置。
  3. 【請求項3】 他プロセッサの主記憶に書き込むべきデ
    ータをプロセッサ間ネットワークの転送速度,前記他プ
    ロセッサのバッファメモリ容量および前記他プロセッサ
    の処理速度から決まる最適な大きさの複数のブロックに
    分割すると共に個々のブロックを複数のパケットに分割
    し、各ブロックの複数のパケットのうち最後に転送する
    パケットのヘッダ部の受信終了割り込みフラグを1、そ
    の他のパケットのヘッダ部の受信終了割り込みフラグは
    0にして、プロセッサ間ネットワークを介して他プロセ
    ッサにそれらのパケットを転送する送信装置と、 前記プロセッサ間ネットワークを介して他プロセッサか
    ら受信したパケットを蓄積するバッファメモリを有し、
    該バッファメモリに蓄積されたパケットに格納されてい
    るデータを主記憶に格納し、ヘッダ部の受信終了割り込
    みフラグが1になっているパケットに格納されていたデ
    ータを主記憶に格納し終わる毎に、該格納されたデータ
    に基づいてキャッシュメモリの一貫性を保つ処理を起動
    するためにCPUに割り込みをかける受信装置とから構
    成されることを特徴とするプロセッサ間データ転送装
    置。
JP11374295A 1995-04-14 1995-04-14 プロセッサ間データ転送方法およびその装置 Expired - Fee Related JP3251147B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11374295A JP3251147B2 (ja) 1995-04-14 1995-04-14 プロセッサ間データ転送方法およびその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11374295A JP3251147B2 (ja) 1995-04-14 1995-04-14 プロセッサ間データ転送方法およびその装置

Publications (2)

Publication Number Publication Date
JPH08287031A JPH08287031A (ja) 1996-11-01
JP3251147B2 true JP3251147B2 (ja) 2002-01-28

Family

ID=14619981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11374295A Expired - Fee Related JP3251147B2 (ja) 1995-04-14 1995-04-14 プロセッサ間データ転送方法およびその装置

Country Status (1)

Country Link
JP (1) JP3251147B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011024156A (ja) * 2009-07-21 2011-02-03 Nec Corp パケット通信装置およびシステム、ならびに同システムにおける受信割り込み制御方法、パケット通信制御プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU568490B2 (en) * 1982-05-07 1988-01-07 Digital Equipment Corporation Memory-to-memory intercomputer communication
JPH03168860A (ja) * 1989-11-29 1991-07-22 Matsushita Electric Ind Co Ltd 並列プロセッサのバッファ記憶制御装置
JPH06250981A (ja) * 1993-02-22 1994-09-09 Hitachi Ltd リザーブ機能付きのキャッシュメモリを有するプロセッサエレメントおよび該プロセッサエレメントからなる計算機システム
JPH0887479A (ja) * 1994-09-20 1996-04-02 Hitachi Ltd 計算機システム

Also Published As

Publication number Publication date
JPH08287031A (ja) 1996-11-01

Similar Documents

Publication Publication Date Title
US6061687A (en) Linked lists of transfer descriptors scheduled at intervals
JPH0934818A (ja) パケットベース・アーキテクチャを使用するデータ処理システム内での短縮待ち時間データ受信のための方法および装置
JPH05128071A (ja) 多重プロセツサ・システムの性能の最適化装置及び方法
JPH09223118A (ja) スヌープキャッシュメモリ制御システム
JP3251147B2 (ja) プロセッサ間データ転送方法およびその装置
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
JP5168800B2 (ja) マルチプロセッサシステム
JP3288261B2 (ja) キャッシュシステム
JP3039391B2 (ja) メモリシステム
JP3033646B2 (ja) プロセッサ間通信方法
JP2002057712A (ja) パケットメモリのメモリリーク復旧方法およびバッファ処理装置
JP2000285087A (ja) ノード間データ通信方法
JPH0546529A (ja) ダイレクトメモリアクセス方式
JP3011044B2 (ja) 入出力制御装置
JPH10507548A (ja) データ処理システムおよび方法およびこのようなシステムとの通信システム
JPS5921051B2 (ja) 通信制御装置
JP2981618B2 (ja) パイプラインコンピュータシステムでの書き込み順序保存方法
CN115658601A (zh) 多核处理器系统及其控制方法
JPH0376501B2 (ja)
JPS63231668A (ja) 割込みキユ−制御方式
JPH06149673A (ja) キャッシュ制御方式
JP2001195350A (ja) データ転送装置およびデータ転送方法
JPH07262150A (ja) 並列計算機
JPH06343083A (ja) 伝送データの管理装置
JPH07262153A (ja) 並列計算機

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19980721

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071116

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131116

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees