JP2830833B2 - プロセッサ間通信方法及びそれに用いるプロセッサ - Google Patents

プロセッサ間通信方法及びそれに用いるプロセッサ

Info

Publication number
JP2830833B2
JP2830833B2 JP8109059A JP10905996A JP2830833B2 JP 2830833 B2 JP2830833 B2 JP 2830833B2 JP 8109059 A JP8109059 A JP 8109059A JP 10905996 A JP10905996 A JP 10905996A JP 2830833 B2 JP2830833 B2 JP 2830833B2
Authority
JP
Japan
Prior art keywords
address
processor
packet
processors
destination
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
JP8109059A
Other languages
English (en)
Other versions
JPH09297746A (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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP8109059A priority Critical patent/JP2830833B2/ja
Priority to US08/845,766 priority patent/US6101551A/en
Priority to DE19718105A priority patent/DE19718105A1/de
Publication of JPH09297746A publication Critical patent/JPH09297746A/ja
Application granted granted Critical
Publication of JP2830833B2 publication Critical patent/JP2830833B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプロセッサ間通信方
法及びそれに用いるプロセッサに係り、特にCPU(中
央処理ユニット)、メモリ、受信装置及び送信装置を有
する複数のプロセッサがプロセッサ間ネットワークで接
続されたシステムにおいて、一つのプロセッサから複数
のプロセッサに対して同じデータを転送するマルチキャ
スト機能をプロセッサ間ネットワークが備えているプロ
セッサ間通信方法及びそれに用いるプロセッサに関す
る。
【0002】
【従来の技術】従来より、プロセッサ間ネットワークに
より接続される複数のプロセッサ間で通信を行うシステ
ムでは、各プロセッサはCPU(中央処理ユニット)
と、メモリと、受信装置及び送信装置からなるプロセッ
サ間の通信装置とを備え、複数のプロセッサを接続する
ネットワークを介してプロセッサ間の通信を行ってい
る。
【0003】1つのプロセッサから複数のプロセッサに
対して同一のデータを転送するマルチキャスト機能は、
並列プログラムの中では多く用いられる。このマルチキ
ャス卜機能を備えたプロセッサ間ネットワークについて
は従来より種々の方法が知られている。
【0004】例えば、プロセッサ間ネットワークでの経
絡を指定するプロセッサ番号が連続するプロセッサの集
合に対して、1つのプロセッサから同一のデータを転送
するためのマルチキャストパケットの形式とそのネット
ワークスイッチでの処理方法が知られている(特開平4
−119044号公報)。
【0005】この従来のプロセッサ間通信方法及びそれ
に用いるプロセッサでは、プロセッサ間ネットワーク内
のスイッチで、スイッチの1つの入力ポートから入力さ
れた1つのパケットをスイッチの複数の出力ポートから
出力して、パケットの複数のコピーを作成することで、
複数の宛先プロセッサに同一のパケットを届けている。
【0006】通常、プロセッサ間通信における経路を指
定する情報は、プロセッサ数を2のN乗とすると、Nビ
ットの2進数で表される。マルチキャストパケットでの
複数の宛先プロセッサを指定する方法としては、図6
(a)に示すように、パケット内の宛先プロセッサを表
す宛先プロセッサ集合において、Nビットの上限と下限
で宛先プロセッサを指定することで、その間のNビット
の2進数が連続した複数の宛先プロセッサを指定する方
法(特開平4−119044号公報)がある。
【0007】また、図6(b)に示すように、マルチキ
ャストパケットの宛先プロセッサ集合で、宛先になった
複数のプロセッサの経路を指定する情報をすべてパケッ
トに書き並べる方法もある(C.M.Chiang and L.M.Ni,
“Multi-address encoding for multicast”in Procedi
ngs of the First International Workshop on Paralle
l Computer Routing and Communication,pp. 146-160,S
pringer-Verlag,May 1994)。更に、図6(c)に示すよ
うに、プロセッサ間ネットワークに接続されたプロセッ
サをそれぞれ1ビットで表し、宛先となったプロセッサ
を表すビットの値を「1」とし、その他を「0」とする
ことで、宛先となった複数のプロセッサを指定するとい
った方法も知られている。
【0008】これらのプロセッサ宛先指定方法のあるも
のでは、パケットの経路を指定する情報にあたる部分
(宛先プロセッサ集合)は各スイッチで書き換えられる
ことがあるが、パケットのその他部分、つまり、転送ワ
ード数や宛先プロセッサでの書き込みアドレスや転送さ
れるデータは、プロセッサ間ネットワークのスイッチで
そのままコピーされ、全く同じものが宛先となった複数
のプロセッサに届けられる。従って、データの書き込み
アドレスが全く同じであるパケットが複数のプロセッサ
に届けられることになる。
【0009】一方、並列処理では、同じデータを複数の
プロセッサに転送するマルチキャストの処理はよく用い
られる処理である。プログラムに参加している全てのプ
ロセッサに同じデータを転送するブロードキャストはこ
のマルチキャストの特別な場合である。また、システム
のすべてのプロセッサがその並列処理プログラムに参加
していない場合もあるので、プロセッサ間ネットワーク
を用いてブロードキャスト機能を実現するためには、1
つのプロセッサから特定のプロセッサ集合へ送ることが
できるマルチキャスト機能も実現しなければならない。
このように、プロセッサ間ネットワークを用いて行うマ
ルチキャストは非常に重要である。
【0010】図7は従来の一つのプロセッサから複数の
プロセッサに対して同じデータを転送する、上記のマル
チキャスト機能をプロセッサ間ネットワークが備えてい
るプロセッサ間通信方法の一例を示す。図7において、
並列処理プログラムで、ある一つプロセッサ70の配列
71をあるプロセッサ集合に属するプロセッサ721
プロセッサ722、...、プロセッサ72mの配列73
1、732、...、73mに書き込む場合について説明
する。図7では、すべての宛先プロセッサ721〜72m
で、配列731〜73mが同じメモリアドレスDに割り付
けられているものとする。
【0011】この場合は、プロセッサ70が、パケット
タイプを表すマルチキャスト75、宛先プロセッサ集合
76、パケット長77、デスティネーションアドレス7
8、及びデータ79からなるパケットを送信すると、こ
のうちデスティネーションアドレス78でアドレスDを
指定したマルチキャストパケットが、プロセッサ間ネッ
トワーク2内でコピーされ、複数のマルチキャストパケ
ット801、802、...、80mとなり、宛先プロセ
ッサ721、722、...、72mに到着し、デスティ
ネーションアドレスDにパケットのデータ79を書き込
むことにより、配列71の内容を複数の宛先プロセッサ
721〜72mの配列731〜73mに転送することが可能
である。
【0012】プロセッサ間通信には、上記のように転送
データのデスティネーションアドレスをパケット内に指
定する方法の他に、ある特定のメモリ領域に割り当てら
れたメッセージバッファに送られてきたデータを書き込
む方法がある。図8はこの場合の従来のプロセッサ間通
信方法の他の例を示す。
【0013】図8において、プロセッサ70から送信さ
れたマルチキャストパケットは、メッセージバッファへ
のマルチキャスト83、宛先プロセッサ集合84、パケ
ット長85及びデータ86からなり、メッセージバッフ
ァに書き込むことが指示され、デスティネーションアド
レスは付加されていない。このマルチキャストパケット
は、プロセッサ間ネットワーク2でコピーされ、マルチ
キャストパケット871、872、...、87mとして
各宛先プロセッサ721、722、...、72mに到着
する。
【0014】各宛先プロセッサ721、722、...、
72mでは、それぞれ自己が受信した上記のマルチキャ
ストパケット871、872、...、87mを一旦メッ
セージバッファ881、882、...、88mに書き込
む。その後、それぞれの宛先プロセッサ721、7
2、...、72mのCPUが配列901、9
2、...、90mに受信データ891、8
2、...、89mをそれぞれコピーする。この場合、
複数の宛先プロセッサで配列901、902、...、9
mのアドレスが、I、J、...、M、とそれぞれ異
なっていても、デスティネーションアドレスがマルチキ
ャストパケットには指定されていないので、プロセッサ
間ネットワーク2によるマルチキャスト機能を用いるこ
とができる。
【0015】
【発明が解決しようとする課題】ここで、図7において
各宛先プロセッサ721〜72mはこれまでにそれぞれの
処理を行ってきており、配列が全く同じアドレスDに割
り付けられていない場合(複数の宛先プロセッサ721
〜72mでの配列731〜73mのアドレスが異なる可能
性がある場合)がある。例えば配列731〜73mが動的
に取られた配列であった場合には、メモリのどのアドレ
スに配列が取られるかは、それ以前のそのプロセッサで
の処理に依存するので、実行中でないとわからない。
【0016】しかしながら、図7に示した転送データの
デスティネーションアドレスをパケット内に指定する従
来のプロセッサ間通信方法においては、プログラム上で
のデータの書き込み先の配列が宛先のプロセッサ集合の
すべてのプロセッサ721〜72mで、全く同じメモリア
ドレスDに取られていなければならないので、複数の宛
先プロセッサ721〜72mでの配列731〜73mのアド
レスが異なる可能性がある場合には、プロセッサ間ネッ
トワークを使ったマルチキャスト機能は使用できないと
いう問題がある。
【0017】一方、図8に示したような、宛先プロセッ
サ721〜72mにおいて、ある特定のメモリ領域に割り
当てられたメッセージバッファに送られてきたデータを
書き込むようにした従来のプロセッサ間通信方法では、
プログラム上でのデータの書き込み先の配列が宛先のプ
ロセッサ集合の全てのプロセッサ721〜72mで、全く
同じメモリアドレスに取られていない場合でもプロセッ
サ間ネットワークを用いたマルチキャスト機能を使用で
きる。
【0018】しかし、その反面、図8に示した従来のプ
ロセッサ間通信方法では、メッセージバッファ881
88mから書き込みたい配列901〜90mへのCPUに
よるメモリコピーが必要となり、図7の通信方法では受
信装置のみで行えた配列への書き込みが、CPUの処理
を必要とするため、受信処理のためのオーバヘッドが大
きくなり、通信時間が長くなる(受信処理が高速に行え
ない)という問題がある。
【0019】本発明は以上の点に鑑みなされたもので、
プロセッサ間ネットワークによるマルチキャスト機能を
使用する機会を増やし、かつ、高速に処理し得るプロセ
ッサ間通信方法及びそれに用いるプロセッサを提供する
ことを目的とする。
【0020】
【課題を解決するための手段】本発明は、上記の目的を
達成するため、それぞれ中央処理ユニットとメモリと送
信装置と受信装置とを有し、かつ、受信装置内には少な
くとも複数のアドレスレジスタを有する複数のプロセッ
サが、プロセッサ間ネットワークを介して接続され、複
数のプロセッサのうち任意の一のプロセッサから送信さ
れたマルチキャストパケットをプロセッサ間ネットワー
クがコピーして他の複数のプロセッサにそれぞれ送信す
るプロセッサ間通信方法において、任意の一のプロセッ
サは、他の複数のプロセッサに同じ情報を送信するため
のマルチキャストパケットに、任意の複数の宛先プロセ
ッサ内の受信装置にあるアドレスレジスタを指定する書
き込みアドレスを配してプロセッサ間ネットワークを介
して任意の複数の宛先プロセッサへ送信し、任意の複数
の宛先プロセッサは、受信したマルチキャストパケット
の書込みアドレスで指定されたアドレスレジスタに設定
されたメモリのアドレスに、受信したマルチキャストパ
ケットのデータを格納するようにしたものである。
【0021】すなわち、この発明では、プロセッサ間ネ
ットワークがもつマルチキャスト機能を使って、1つの
プロセッサから複数の宛先プロセッサに同じデータを送
る場合に、そのマルチキャストパケットに、宛先プロセ
ッサの受信装置内のアドレスレジスタを指示する書き込
みアドレスを配して宛先プロセッサに受信させ、宛先プ
ロセッサがその受信したマルチキャストパケットの書き
込みアドレスに従って一のアドレスレジスタを選択し
て、その選択アドレスレジスタから予め設定されている
メモリのアドレスに受信パケットのデータを格納するよ
うにしたため、複数の宛先プロセッサでの書き込みアド
レスが互いに異なる場合でも、各宛先プロセッサのアド
レスレジスタのメモリアドレスにデータを互いに独立し
て格納できると共に、中央処理ユニットを使用すること
なく、アドレスレジスタが示す書き込みをしようとする
メモリアドレスに直ちに受信したパケットのデータを格
納することができる。
【0022】また、本発明のプロセッサは、プロセッサ
間ネットワークを介してそれぞれ接続された複数のプロ
セッサのうち任意の一のプロセッサから送信されたマル
チキャストパケットをプロセッサ間ネットワークがコピ
ーして他の複数のプロセッサにそれぞれ送信するプロセ
ッサ間通信方法に用いられるプロセッサにおいて、互い
にバスにより接続された中央処理ユニットとメモリと送
信装置と受信装置とを有し、受信装置は、プロセッサ間
ネットワークから受信したパケットを格納する記憶部
と、中央処理ユニットにより実行されるプログラムによ
って書き込みアドレスが設定された複数のアドレスレジ
スタと、記憶部から読み出した受信パケットの書き込み
アドレスに基づいて複数のアドレスレジスタのうちの一
のアドレスレジスタの出力アドレスを選択する選択手段
と、記憶部から受信パケットのデータを読み出してメモ
リの選択手段により選択された出力アドレスに書き込む
制御手段とを少なくとも有し、送信装置は、ヘッダ部に
パケット長及び宛先プロセッサ情報と共に宛先プロセッ
サ内の受信装置のアドレスレジスタを指定する書き込み
アドレスを配したパケットを送信する構成としたもので
ある。
【0023】これにより、ある任意の一のプロセッサか
ら送信されてプロセッサ間ネットワーク内でコピーされ
たマルチキャストパケットを受信した場合、マルチキャ
ストパケットで選択されたアドレスレジスタに格納され
ているメモリアドレスに送られたデータを中央処理ユニ
ットを介在させることなく直接書き込むことができる。
【0024】また、本発明のプロセッサの受信装置は、
複数のアドレスレジスタに同時に実行される複数のユー
ザタスクに対応するタスクIDを付随させると共に、付
随されたタスクIDと受信したパケットの宛先タスクI
Dとを比較し、その比較結果に応じて複数のアドレスレ
ジスタの値又はメモリから読み出したアドレスレジスタ
の値を出力する読み出し手段を有し、メモリは複数のア
ドレスレジスタの種類とタスクIDとによってインデッ
クスされたアドレスレジスタテーブルを有するようにし
たため、複数のユーザタスクが同時に実行されているマ
ルチタスク環境でも、プロセッサ間ネットワークを使っ
たマルチキャストが行える。
【0025】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0026】図1は本発明になるプロセッサ間通信方法
及びそれに用いるプロセッサの第1の実施の形態のブロ
ック図を示す。同図において、プロセッサ1と複数のプ
ロセッサ1aは、マルチキャス卜機能を備えたプロセッ
サ間ネットワーク2を介して互いに接続されている。こ
れらのプロセッサ1、1aは同一構成で、プロセッサ1
は、CPU11と、メモリ12と、送信装置13及び受
信装置14からなるプロセッサ間の通信装置とを有し、
これらは互いにバス10を介して接続されている。
【0027】受信装置14は、プロセッサ間ネットワー
ク2からのパケットを受けとり、一時的に格納しておく
ためのFIFOメモリ20と、パケットのヘッダの部分
の情報を格納するためのパケットタイプレジスタ21
と、パケット長レジスタ23と、デスティネーションレ
ジスタ25と、書込みワード数レジスタ27、メッセー
ジバッファアドレスレジスタ33、アドレスレジスタ3
4〜37などのレジスタ群と、シーケンサ28と、書込
みワード数決定回路26と、演算論理装置(ALU)3
0と、トランスレーションルックアサイドバッファ(T
LB)39と、シーケンサ28により切換制御されるマ
ルチプレクサ(MUX)22、24、29、31、3
2、38、40とから構成されている。
【0028】デスティネーションアドレスレジスタ25
は、パケットにデスティネーションアドレスが付加され
ている場合に、そのデスティネーションアドレスを格納
する。メッセージバッファアドレスレジスタ33は、そ
のパケットがメモリ12上にあらかじめ用意されている
メッセージバッファ15に書かれる場合に用いられるメ
モリアドレスを保持する。また、4つのアドレスレジス
タ34〜37は、受信側のプログラムによって設定され
た、受信したパケットの本体をメモリに書き込む時に用
いるアドレスを保持する。
【0029】メモリにパケット本体を書き込むときに用
いるアドレスは、パケットタイプで指定されており、そ
の書き込みアドレス選択信号aによって、デスティネー
ションアドレスレジスタ25の値、メッセージバッファ
アドレス33の値、4個のアドレスレジスタ34〜37
の値のうちからMUX38により選択される。
【0030】メモリに書き込まれるワード数は、その書
き込みアドレスパケット長などから、書き込みワード数
決定回路26によって決定され、書き込みワード数レジ
スタ27に格納される。次回の書き込みアドレスや、残
りのパケット長などを計算するためにALU30があ
る。
【0031】シーケンサ28はパケットタイプや書き込
みワード数決定回路26などの情報をもとに、到着した
パケットをFIFOメモリ20から読み出し、メモリ1
2に書き込む動作を制御する。書き込みアドレスは論理
アドレスなので、TLB39を用いて物理アドレスbに
変換されて、メモリアドレスとしてバス10に出力され
る。
【0032】図3は本発明の第1の実施の形態のパケッ
トの形式を示す。パケットタイプ45の部分は、1つの
宛先プロセッサへのパケット(シングルキャストパケッ
ト)か、複数の宛先プロセッサへのパケット(マルチキ
ャストパケット)を示す1ビットと、宛先プロセッサ
で、受信したデータを書き込むアドレスレジスタを選択
する3ビットと、その他の情報の4ビットから構成され
る。
【0033】パケットヘッダのその他の部分は、パケッ
トで転送するデータ部の長さを示すパケット長8ビット
46と、シングルキャストの場合には宛先のプロセッサ
を、また、マルチキャストの場合には上限のプロセッサ
を示す8ビット47と、マルチキャストの場合の下限の
プロセッサを示す8ビット48とから構成される。書き
込みアドレスの選択のビットでデスティネーションアド
レスを選択した場合には、パケットヘッダに続いてデス
ティネーションアドレス49が格納される。その後、パ
ケット長で示されたワード数分のデータ50が続く。
【0034】次に、本発明の第1の実施の形態のパケッ
ト受信時の動作について図1を参照して詳細に説明す
る。他のプロセッサ1aからプロセッサ間ネットワーク
2を介してプロセッサ1に到着したパケットは、受信装
置14内のFIFOメモリ20に格納される。
【0035】パケットの到着がFIFOメモリ20から
の読み出し可能ワード数信号cによってシーケンサ28
に届くと、シーケンサ28は、FIFOメモリ20に対
し読み出し信号dを供給し、パケットヘッダにあたる1
ワードを読み出す。読み出されたパケットヘッダにある
パケットタイプに当たる部分(図3の45)は、パケッ
トタイプレジスタ21に格納される。また、パケットの
長さを示すパケット長の部分(図3の46)は、MUX
22を介してパケット長レジスタ23に格納される。
【0036】パケットタイプレジスタ21は格納したパ
ケットタイプに基づき書き込みアドレス選択信号aを発
生してMUX38に供給し、MUX38によりデスティ
ネーションアドレスレジスタ25、メッセージバッファ
アドレスレジスタ33、アドレスレジスタ34、35、
36及び37の各出力の中から、書き込みアドレスを選
択させる。
【0037】パケットタイプレジスタ21に格納された
書き込みアドレスの選択に用いる部分が、デスティネー
ションアドレスレジスタ25を選択することを示してい
る場合には、図3に49で示したように、デスティネー
ションアドレスがパケットの次のワードに格納されてい
るので、シーケンサ28は、FIFOメモリ20からデ
スティネーションアドレスを読み出し、これをMUX2
4を介してデスティネーションアドレスレジスタ25に
格納する。
【0038】MUX38で選択された書き込みアドレス
の下位ビットは、書き込みワード数決定回路26に入力
される。書き込みワード数決定回路26は、この入力書
き込みアドレスの下位ビットと、パケット長レジスタ2
3から入力されるパケット長とから、メモリ12に書き
込まれるワード数を決定し、決定したワード数を書き込
みワード数レジスタ27に格納する。
【0039】通常、メモリ12へのアクセスはその先頭
アドレスが何ワード境界にあるかで、一度に書けるワー
ド数の上限が制限される。また、パケットの残りワード
数がその上限以下の場合には、残りパケットワード数し
か書き込めない。さらに、1回の書き込みにはバスの調
停等のオーバヘッドがあるため、書き込み回数をできる
だけ少なくするように書き込みワード数を決定する必要
がある。このような条件を加味して書き込みワード数決
定回路26は書き込みワード数を決定する。
【0040】書き込みワード数の決定と同時に、シーケ
ンサ28は、TLB39を用いてMUX38の出力書き
込みアドレスを、書き込み物理アドレスbに変換する。
もし、TLB39内に書込みアドレスを変換するのに必
要な情報がない場合には、シーケンサ28はメモリ12
上のぺ−ジテーブルをアクセスし、変換に必要な情報を
読み出し、これをバス10を介してTLB39に供給
し、ここで書き込み物理アドレスbに変換させる。
【0041】以上述べた方法により、書き込みワード数
と、書き込み物理アドレスbが得られると、シーケンサ
28は、FIFOメモリ20からの読み出し可能ワード
数cが、書き込みワード数以上になるのを待ち、書き込
み物理アドレスbと書き込みワード数を伴ったメモリ書
き込み要求を、バス10に対して発行する。バス10に
書き込み要求が受け付けられると、シーケンサ28は、
FIFOメモリ20に対して読み出し信号dを発して、
書き込みワード数分だけのデータをFIFOメモリ20
から読み出し、これをMUX40及びバス10をそれぞ
れ介してメモリ12に書き込む。
【0042】また、シーケンサ28は、FIFOメモリ
20からメモリ12へのデータの書き込みを上記のよう
に行うと同時に、以下のように、次回のメモリ12への
データの書き込みのための準備を行う。すなわち、パケ
ット長レジスタ23の値から、書き込みワード数レジス
タ27内の今回書き込んだワード数をALU30を用い
て引き算することにより残りのパケットワード教を計算
し、この計算値にパケット長レジスタ23の値を更新す
る。
【0043】また、選択されているアドレスレジスタの
値に、書き込みワード数レジスタ27内の今回書き込ん
だワード数をALU30を用いて足し算し、次の書き込
みアドレスを計算し、選択されているアドレスレジスタ
の値を更新する。その後、更新された書き込みアドレス
と残りのパケットワード数から、前回と同じように書き
込みワード数を決定し、前回と同じようにデータをメモ
リ12に書き込む。シーケンサ28は、パケット長レジ
スタ23内の残りパケットワード数がゼロになるまでこ
の処理を繰り返す。
【0044】次に、本発明の第1の実施の形態のプログ
ラムによるパケットを受信する前の処理について図1を
参照して詳細に説明する。システムが初期化された時
に、OS(オペレーティングシステム)が、メモリ12
上のある領域にメッセージバッファ15を割り付け、そ
の先頭アドレスをメッセージバッファアドレスレジスタ
33に書き込む。メッセージバッファアドレスレジスタ
33は下位ビットの部分だけが、メッセージバッファ1
5へのデータ書き込み後のアドレスの更新時に変更され
るため、メッセージバッファ15の最後までくると自動
的に先頭アドレスに戻る。メッセージバッファ15の大
きさは、変更される下位ビットのビット数で決まる。
【0045】一方、アドレスレジスタ34、アドレスレ
ジスタ35、アドレスレジスタ36、アドレスレジスタ
37は、実行中のユーザプログラムから設定される。プ
ログラマは、プログラムの流れを把握しているので、あ
るプロセッサからマルチキャストパケットによって複数
の宛先プロセッサに同じデータが送られる場合には、そ
の前に、到着したデータを受けとるアドレスを、書き込
みアドレスとして選択されるアドレスレジスタに、設定
しておくようにプログラムを記述する。
【0046】次に、本発明の第1の実施の形態の効果に
ついて、図2と共に説明する。同図中、図7及び図8と
共に説明したと同じように、あるプロセッサ1の配列5
1をあるプロセッサ集合に属するプロセッサ11
2、...、1mのメモリ121、122、...、12
m内の配列521、522、...、52mに書き込む場合
について説明する。図2は、それぞれの宛先プロセッサ
1、12、...、1mで、異なるアドレスI、
J、...、Mに配列521、522、...、52m
取られている場合を示している。
【0047】プロセッサ1からは、複数の宛先プロセッ
サへのマルチキャストパケット60がプロセッサ間ネッ
トワーク2を介して送信される。このマルチキャストパ
ケット60は、従来例との対応のため便宜上図3とは異
なる構造として示しているが、実質的には図3と同じも
ので、書き込みアドレス61として4つのアドレスレジ
スタ34〜37のうち任意の一のアドレスレジスタが指
定されており、また、宛先プロセッサ集合62に宛先プ
ロセッサの番号が指定され、またパケット長63及びデ
ータ64が含まれている。ここで、書込みアドレス61
が図3のパケットタイプ45に相当し、宛先プロセッサ
集合62が図3の宛先プロセッサ47及び48に相当
し、パケット長63及びデータ64がそれぞれ図3のパ
ケット長46及びデータ50に相当する。なお、マルチ
キャストパケット60には図3のデスティネーションア
ドレス49は存在しない。
【0048】このマルチキャストパケット60は、プロ
セッサ間ネットワーク2によってコピーされ、複数の宛
先プロセッサ11、12、...、1mに、マルチキャス
トパケット651、652、...、65mとして到着す
る。各宛先プロセッサ11、12、...、1mのアドレ
スレジスタには、それぞれマルチキャストパケットが到
着する前に、プログラムによって予めアドレスI、
J、...、Mが設定されている。
【0049】到着したマルチキャストパケットは、それ
ぞれの受信装置によって、そのパケットタイプの部分で
指定してある通り、アドレスレジスタ541、5
2、...、54m内のアドレスを書き込みアドレスと
して選択して、それらで指定されている、アドレスI、
J、...、Mに、そのデータが書き込まれる。
【0050】このように、この第1の実施の形態のプロ
セッサ間通信方法と装置を用いることで、複数の宛先プ
ロセッサ11、12、...、1mの異なるアドレスI、
J、...、Mに取られた配列521、522、...、
52mに対して、マルチキャストパケット60を使っ
て、CPUによるコピーなしに、配列51を転送するこ
とができる。
【0051】次に、本発明の第2の実施の形態について
説明する。図4は本発明になるプロセッサ間通信方法及
びそれに用いるプロセッサの第2の実施の形態のブロッ
ク図を示す。同図中、図1と同一構成部分には同一符号
を付し、その説明を省略する。図4の実施の形態が第1
の実施の形態と異なるのは、1つのプロセッサ1で同時
に実行されるユーザタスクが複数あり、受信装置17内
にあるメッセージバッファアドレスレジスタ33、4つ
のアドレスレジスタ34〜37が、タスクごとにそれぞ
れ、メモリ12上に実現されている点である。
【0052】メモリ12には、アドレスレジスタテーブ
ル19があり、後述するように、それぞれのタスクのメ
ッセージバッファアドレスレジスタ、4つのアドレスレ
ジスタが格納されている。受信装置17内のメッセージ
バッファアドレスレジスタ33、アドレスレジスタ34
〜37は、それぞれのレジスタがキャッシュの役割を持
っており、各レジスタに付随するタスクID(tid)
91、92、93、94、95と、タスクIDレジスタ
96に格納された、パケットヘッダに記述された宛先タ
スクIDとをtid比較器98で比較して、同じなら
ば、そのままレジスタ内の値を使う。
【0053】異なれば、アドレステーブルベースレジス
タ97の値と、タスクIDとアドレスレジスタの種類を
使って、必要なアドレスレジスタのメモリアドレスを計
算し、メモリ12上のアドレステーブルレジスタ19を
アクセスし、必要なアドレスレジスタの値を受信装置1
7内のアドレスレジスタ33、34、35、36、37
に読み出す。それとともに、受信装置17内のそのアド
レスレジスタに付随するタスクID(tid)91、9
2、93、94、95の値をタスクIDレジスタ96の
値にする。
【0054】各タスクのアドレスレジスタはあくまでも
メモリ12上の後述するアドレスレジスタテーブル19
に存在しているので、1つのパケットの処理が終了する
と、選択されていた受信装置17内のアドレスレジスタ
33〜37の内容をメモリ12上のアドレスレジスタに
書き戻す必要がある。図4のような構成をとることによ
り、複数のユーザタスクが同時に実行されているマルチ
タスク環境でも、プロセッサ間ネットワークを用いたマ
ルチキャストを効率良く用いることが可能である。
【0055】図5は、図4に示した本発明の第2の実施
の形態におけるアドレスレジスタテーブル19の構成を
示す。図5において、アドレスレジスタテーブル19
は、タスクIDとアドレスレジスタの種類によって、イ
ンデックスされており、アクセスしたいアドレスレジス
タのアドレスの計算はそれぞれのビットをつなぎ合わす
だけで行える。
【0056】各アドレスレジスタのエントリーには、バ
リッドビット(Valid bit)191がついてお
り、そのアドレスレジスタが使われているかどうかを示
している。もし、パケットによって指定されたアドレス
レジスタが使われていない場合には、エラーとして処理
する。
【0057】
【発明の効果】以上説明したように、本発明によれば、
複数の宛先プロセッサでの書き込みアドレスが互いに異
なる場合でも、プロセッサ間ネットワークを使ったマル
チキャストが行えるため、プロセッサ間ネットワークを
用いたマルチキャスト機能を使用する機会が増え、プロ
セッサ間ネットワークが持つ機能を十分に活用できる。
【0058】また、本発明によれば、従来のようにメッ
セージバッファに受信データを受け、CPUによって書
き込みたいアドレスにコピーする必要がなく、受信した
データは、受信マルチキャストパケットの書き込みアド
レスで選択されたアドレスレジスタが示す書き込みたい
メモリアドレスに直接書かれるため、複数の宛先プロセ
ッサでの書き込みアドレスが互いに異なるマルチキャス
トの場合でも、受信処理の時間が短く、通信を高速に行
える。
【0059】更に、本発明によれば、複数のユーザタス
クが同時に実行されているマルチタスク環境でも、プロ
セッサ間ネットワークを使ったマルチキャストが効率良
く行える。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態のブロック図であ
る。
【図2】図1の実施の形態の効果説明図である。
【図3】本発明の第1の実施の形態におけるパケットの
構成図である。
【図4】本発明の第2の実施の形態のブロック図であ
る。
【図5】図4中のアドレスレジスタテーブルの構成図で
ある。
【図6】従来の宛先プロセッサの指定方法の各例の説明
図である。
【図7】従来方法の一例の説明図である。
【図8】従来方法の他の例の説明図である。
【符号の説明】
1、1a、11〜1m プロセッサ 2 プロセッサ間ネットワーク 10 バス 11 CPU(中央処理ユニット) 12 メモリ 13 送信装置 14、17 受信装置 15 メッセージバッファ 19 アドレスレジスタテーブル 20 FIFOメモリ 21 パケットタイプレジスタ 22、24、29、31、32、38、40、99 マ
ルチプレクサ(MUX) 23 パケット長レジスタ 25 デスティネーションアドレスレジスタ 26 書き込みワード数決定回路 27 書き込みワード数レジスタ 28 シーケンサ 30 演算論理装置(ALU) 33 メッセージバッファアドレスレジスタ 34〜37 アドレスレジスタ 39 トランスレーションルックアサイドバッファ(T
LB) 45 パケットタイプ 46、63 パケット長 47 宛先プロセッサ(上限) 48 宛先プロセッサ(下限) 49 デスティネーションアドレス 50、64 データ 51 配列 521〜52m 宛先プロセッサでの配列 541〜54m 宛先プロセッサでのアドレスレジスタ 60 マルチキャストパケット 651〜65m コピーされたマルチキャストパケット 91〜95 アドレスレジスタに付随するタスクID
(tid) 96 タスクidレジスタ 97 アドレスレジスタテーブルレジスタ 98 tid比較器 a 書き込みアドレス選択信号 b 書き込み物理アドレス c 読み出し可能ワード数信号 d 読み出し信号

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 それぞれ中央処理ユニットとメモリと送
    信装置と受信装置とを有し、かつ、該受信装置内には少
    なくとも複数のアドレスレジスタを有する複数のプロセ
    ッサが、プロセッサ間ネットワークを介して接続され、
    前記複数のプロセッサのうち任意の一のプロセッサから
    送信されたマルチキャストパケットを前記プロセッサ間
    ネットワークがコピーして他の複数のプロセッサにそれ
    ぞれ送信するプロセッサ間通信方法において、 前記任意の一のプロセッサは、前記他の複数のプロセッ
    サに同じ情報を送信するためのマルチキャストパケット
    に、任意の複数の宛先プロセッサ内の受信装置にある前
    記アドレスレジスタを指定する書き込みアドレスを配し
    て前記プロセッサ間ネットワークを介して前記任意の複
    数の宛先プロセッサへ送信し、前記任意の複数の宛先プ
    ロセッサは、受信した前記マルチキャストパケットの書
    込みアドレスで指定されたアドレスレジスタに設定され
    た前記メモリのアドレスに、受信したマルチキャストパ
    ケットのデータを格納することを特徴とするプロセッサ
    間通信方法。
  2. 【請求項2】 前記マルチキャストパケットの書き込み
    アドレスにより指定される前記宛先プロセッサの受信装
    置内のアドレスレジスタに、前記マルチキャストパケッ
    トのデータを格納するメモリのアドレスを、ユーザプロ
    グラムによって予め設定しておくことを特徴とする請求
    項1記載のプロセッサ間通信方法。
  3. 【請求項3】プロセッサ間ネットワークを介してそれぞ
    れ接続された複数のプロセッサのうち任意の一のプロセ
    ッサから送信されたマルチキャストパケットを前記プロ
    セッサ間ネットワークがコピーして他の複数のプロセッ
    サにそれぞれ送信するプロセッサ間通信方法に用いられ
    るプロセッサにおいて、 互いにバスにより接続された中央処理ユニットとメモリ
    と送信装置と受信装置とを有し、 該受信装置は、前記プロセッサ間ネットワークから受信
    したパケットを格納する記憶部と、前記中央処理ユニッ
    トにより実行されるプログラムによって書き込みアドレ
    スが設定された複数のアドレスレジスタと、前記記憶部
    から読み出した受信パケットの書き込みアドレスに基づ
    いて前記複数のアドレスレジスタのうちの一のアドレス
    レジスタの出力アドレスを選択する選択手段と、前記記
    憶部から前記受信パケットのデータを読み出して前記メ
    モリの前記選択手段により選択された出力アドレスに書
    き込む制御手段とを少なくとも有し、 前記送信装置は、ヘッダ部にパケット長及び宛先プロセ
    ッサ情報と共に該宛先プロセッサ内の受信装置のアドレ
    スレジスタを指定する書き込みアドレスを配したパケッ
    トを送信することを特徴とするプロセッサ。
  4. 【請求項4】 前記受信装置は、前記プロセッサ間ネッ
    トワークを通して受信したパケットに付加されたデステ
    ィネーションアドレスを格納するデスティネーションア
    ドレスレジスタと、前記メモリ上に予め用意されている
    メッセージバッファに書かれる場合に用いられるメモリ
    アドレスを保持するメッセージバッファアドレスレジス
    タとを更に有し、前記選択手段は前記受信パケットの書
    き込みアドレスに基づいて、前記複数のアドレスレジス
    タ、デスティネーションアドレスレジスタ及びメッセー
    ジバッファアドレスレジスタのうち一のアドレスレジス
    タの出力アドレスを選択することを特徴とする請求項3
    記載のプロセッサ。
  5. 【請求項5】 前記受信装置は、複数のアドレスレジス
    タに同時に実行される複数のユーザタスクに対応するタ
    スクIDを付随させると共に、付随された該タスクID
    と受信したパケットの宛先タスクIDとを比較し、その
    比較結果に応じて前記複数のアドレスレジスタの値又は
    前記メモリから読み出したアドレスレジスタの値を出力
    する読み出し手段を有し、前記メモリは前記複数のアド
    レスレジスタの種類と前記タスクIDとによってインデ
    ックスされたアドレスレジスタテーブルを有することを
    特徴とする請求項3記載のプロセッサ。
JP8109059A 1996-04-30 1996-04-30 プロセッサ間通信方法及びそれに用いるプロセッサ Expired - Fee Related JP2830833B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP8109059A JP2830833B2 (ja) 1996-04-30 1996-04-30 プロセッサ間通信方法及びそれに用いるプロセッサ
US08/845,766 US6101551A (en) 1996-04-30 1997-04-28 Multi-processor system for supporting multicasting communication and inter-multiprocessor communication method therefor
DE19718105A DE19718105A1 (de) 1996-04-30 1997-04-29 Multiprozessorsystem zur Unterstützung einer Rundsendekommunikation und Intermultiprozessor-Kommunikationsverfahren dafür

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8109059A JP2830833B2 (ja) 1996-04-30 1996-04-30 プロセッサ間通信方法及びそれに用いるプロセッサ

Publications (2)

Publication Number Publication Date
JPH09297746A JPH09297746A (ja) 1997-11-18
JP2830833B2 true JP2830833B2 (ja) 1998-12-02

Family

ID=14500566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8109059A Expired - Fee Related JP2830833B2 (ja) 1996-04-30 1996-04-30 プロセッサ間通信方法及びそれに用いるプロセッサ

Country Status (3)

Country Link
US (1) US6101551A (ja)
JP (1) JP2830833B2 (ja)
DE (1) DE19718105A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3456398B2 (ja) * 1998-02-02 2003-10-14 日本電気株式会社 プロセッサ間ネットワークのフロー制御方法および装置
EP1116127B1 (de) * 1998-09-23 2003-10-15 Infineon Technologies AG Programmgesteuerte einheit
JP3376956B2 (ja) * 1999-05-14 2003-02-17 日本電気株式会社 プロセッサ間通信装置
US6985964B1 (en) * 1999-12-22 2006-01-10 Cisco Technology, Inc. Network processor system including a central processor and at least one peripheral processor
US7284050B1 (en) 2001-03-26 2007-10-16 Cisco Technology, Inc. Method and system for a voice multicast hardware accelerator
JP3800037B2 (ja) * 2001-06-06 2006-07-19 日本電気株式会社 プロセッサ間通信システム及びそれに用いるプロセッサ間通信方法
US7302691B2 (en) * 2002-05-10 2007-11-27 Sonics, Incorporated Scalable low bandwidth multicast handling in mixed core systems
DE10324014A1 (de) * 2003-05-27 2005-01-13 Micronas Gmbh Adressgenerator, Betriebsverfahren dafür und diesen verwendendes Daten verarbeitendes System
US7493468B2 (en) * 2006-06-01 2009-02-17 International Business Machines Corporation Method for broadcasting instructions/data to a plurality of processors in a multiprocessor device via aliasing
US7822145B1 (en) * 2007-08-21 2010-10-26 Itt Manufacturing Enterprises, Inc. Method and system for generating synthetic wavefront phase/time delta of arrival
WO2009098820A1 (ja) 2008-02-08 2009-08-13 Nec Corporation ネットワークスイッチ、経路設定方法およびプログラム
JP2009301101A (ja) 2008-06-10 2009-12-24 Nec Corp プロセッサ間通信システム、プロセッサ、プロセッサ間通信方法、および、通信方法
JP4771438B2 (ja) 2009-03-27 2011-09-14 エヌイーシーコンピュータテクノ株式会社 メモリアクセス制御装置、メモリアクセス制御方法、及びメモリアクセス制御用プログラム
WO2010125859A1 (ja) 2009-04-28 2010-11-04 日本電気株式会社 ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム
CN108092942B (zh) * 2016-11-21 2020-04-10 深圳市中兴微电子技术有限公司 一种报文处理方法和装置
US10613977B1 (en) 2018-09-27 2020-04-07 Amazon Technologies, Inc. Target port with distributed transactions
US10831693B1 (en) * 2018-09-27 2020-11-10 Amazon Technologies, Inc. Multicast master
US11741350B2 (en) 2019-11-27 2023-08-29 Amazon Technologies, Inc. Efficient utilization of processing element array

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230079A (en) * 1986-09-18 1993-07-20 Digital Equipment Corporation Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register
US5418970A (en) * 1986-12-17 1995-05-23 Massachusetts Institute Of Technology Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content
JP2778291B2 (ja) * 1991-05-31 1998-07-23 日本電気株式会社 アドレス変換レジスタ制御方式
US5437017A (en) * 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
JPH08180001A (ja) * 1994-04-12 1996-07-12 Mitsubishi Electric Corp 通信方式及び通信方法及びネットワークインタフェース

Also Published As

Publication number Publication date
DE19718105A1 (de) 1997-11-13
JPH09297746A (ja) 1997-11-18
US6101551A (en) 2000-08-08

Similar Documents

Publication Publication Date Title
JP2830833B2 (ja) プロセッサ間通信方法及びそれに用いるプロセッサ
US5675736A (en) Multi-node network with internode switching performed within processor nodes, each node separately processing data and control messages
CA2170458C (en) Multi-cluster computer system
US5910178A (en) Method for controlling a message send in a packet-switched interconnection network
US6427185B1 (en) Method and apparatus for managing the flow of data within a switching device
US6636926B2 (en) Shared memory multiprocessor performing cache coherence control and node controller therefor
US6661794B1 (en) Method and apparatus for gigabit packet assignment for multithreaded packet processing
US20040151176A1 (en) Device to receive., buffer, and transmit packets of data in a packet switching network
US6976095B1 (en) Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US5495619A (en) Apparatus providing addressable storage locations as virtual links and storing predefined destination information for any messages transmitted on virtual links at these locations
US7295563B2 (en) Method and apparatus for routing packets that have ordering requirements
US7221678B1 (en) Method and apparatus for routing packets
JPH0650863B2 (ja) 直接データ転送のためのインターフエース
US20040078459A1 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
US7274692B1 (en) Method and apparatus for routing packets that have multiple destinations
US20090307463A1 (en) Inter-processor, communication system, processor, inter-processor communication method, and communication method
US6795874B2 (en) Direct memory accessing
JP2002366427A (ja) プロセッサ間通信システム及びそれに用いるプロセッサ間通信方法
JPH05233560A (ja) 多重プロセッサ回路用プロセッサ間連絡システムおよびその方法
JP2853652B2 (ja) プロセッサ間通信におけるパケット送信方法およびその装置
US7031296B1 (en) Method and apparatus for managing the flow of data within a switching device
JPH0833869B2 (ja) データ処理装置
JP3409862B2 (ja) 並列プロセッサシステム
JP3447820B2 (ja) バスコントローラ
JP2731743B2 (ja) 通信レジスタ付並列計算機

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080925

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20080925

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090925

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090925

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100925

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110925

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20120925

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20130925

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees