JP3693183B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP3693183B2 JP3693183B2 JP31714393A JP31714393A JP3693183B2 JP 3693183 B2 JP3693183 B2 JP 3693183B2 JP 31714393 A JP31714393 A JP 31714393A JP 31714393 A JP31714393 A JP 31714393A JP 3693183 B2 JP3693183 B2 JP 3693183B2
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- counter
- processing unit
- main memory
- transfer request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【産業上の利用分野】
本発明は、データ処理装置に関し、ネットワークを介して相互にデータ転送を行なうデータ処理装置に関する。
【0002】
【従来の技術】
複数のデータ処理装置がネットワーク等を介して接続された並列計算機システム等のデータ処理システムにおいては、複数のデータ処理装置間でデータを転送して並列データ処理を実行する。
【0003】
従来システムでは、任意のデータ処理装置の記憶領域の内容を他のデータ処理装置に対して転送する場合、他のデータ処理装置に対するデータ転送のキューイングの管理は、スーパーバイザプログラムが管理しており、データ処理装置のユーザープログラムはスーパーバイザプログラムに対してデータ転送依頼の割込みを発生し、スーパーバイザプログラムがヘッダを作成して転送指示を行なうのが一般的である。
【0004】
しかし、この方法は割込みが多発してオーバーヘッドが大きいため、転送要求キューに書込みポインタ及び読出しポインタを設け、これらのポインタをユーザプログラムに直接管理させてスーパーバイザ介入のオーバーヘッドを削減する方法が提案されている。
【0005】
【発明が解決しようとする課題】
しかし、上記の従来方法においても、転送要求をエンキューしておき転送処理部による転送の終了を知るためには、ユーザプログラムは読出しポインタをポーリングしなければならない。また転送要求が複数ある場合、転送要求の終了判定の読出しポインタの値は、エンキューを開始した時点での書込みポインタの値に依存するため、ユーザプログラム内に終了判定値を保持しなければならない。
【0006】
更に転送要求キューがラップアラウンドして使用される構成の場合は、読出しポインタがオーバーランすると転送の終了が判定できなくなるため、転送要求のエンキューと転送終了判定のために余分な制御情報か必要となり、アルゴリズムが複雑になるという問題があった。
【0007】
本発明は上記の点に鑑みなされたもので、転送終了判定のための余分な制御情報が不要でアルゴリズムが簡単であり、命令処理部の余分なオーバーヘッドの発生を防止するデータ処理装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明のデータ処理装置は、ネットワークを介して相互に接続され、データ処理を行なう命令処理部の転送要求に従って、転送処理部で主記憶と上記ネットワークとの間でデータ転送を行なうデータ処理装置において、
上記命令処理部より参照可能で、転送要求に基づく転送処理を実行する毎に上記転送処理部により更新されるカウンタを有する。
【0009】
また、上記カウンタを主記憶上に設ける。
【0010】
また、上記カウンタを転送要求毎に複数設ける。
【0011】
また、上記カウンタの主記憶上のアドレスを転送要求の制御情報部に含む。
【0012】
また、上記カウンタの更新の有無を指示する更新フラグを設ける。
【0013】
また、上記カウンタの更新を行なう前に主記憶アクセスの逐次化を行なうことを指示する逐次化フラグを設ける。
【0014】
また、上記カウンタの値が特定値となったとき上記命令処理部に対して割込みの発生有無を指示する割込みフラグを設ける。
【0015】
また、上記更新フラグ又は逐次化フラグ又は割込みフラグを転送要求の制御情報部に含む。
【0016】
上記カウンタは前記主記憶上に設けられ、上記転送処理部は、カウンタの内容の期待値を任意のプロセスについて格納する第1のレジスタ手段と、命令処理部に対して割込みが発生したか否かを示すフラグを格納する第2のレジスタ手段とを有し、転送処理部は、カウンタの内容と第1のレジスタ手段内の期待値とが前記任意のプロセスについて一致すると命令処理部に対して割込みを発生すると共に第2のレジスタ手段にフラグを設定する構成としても良い。
【0017】
【作用】
本発明においては、命令処理部から転送要求のエンキューに先立って転送要求の数に従った値をカウンタに設定しておき、転送要求の送信処理を実行する毎にカウンタの値を更新することにより、命令処理部はカウンタの値を監視するだけで転送処理部による送信処理の終了を知ることができ、上記カウンタの値は転送要求キューの使用状態に依存しないので終了判定値を保存する必要がない。
【0018】
また、カウンタを主記憶上に複数設けることにより、複数の転送要求キューがある場合に各キューに別個のカウンタを割付けて転送要求管理を複数並列に行なうことができ、ハードウェア量の増加を防止できる。
【0019】
また、カウンタの主記憶上のアドレスを転送要求の制御情報部に含むことにより、複数のカウンタを主記憶上に任意に設定することができる。
【0020】
また、更新フラグを設けることにより、カウンタを使用する必要のないアルゴリズムで転送を行なう場合に余分なオーバーヘッドの発生を防止できる。
【0021】
また、逐次化フラグを設けることにより、ユーザプログラムは命令処理部内のバッファ記憶と主記憶の内容との整合性を意識することなく転送終了時に所要の送信処理とそれに伴う主記憶の内容の更新が終了したものとみなすことができ、かつ転送要求のストリームの中間部分のような主記憶アクセスの逐次化の必要のない送信処理については逐次化フラグをオフとしておくことにより余分な逐次化のオーバーヘッドの発生を防止できる。
【0022】
また割込みフラグを設けることにより、ユーザプログラムはカウンタを監視する必要がなくなり、カウンタをポーリングするオーバーヘッドを削減でき、かつプログラムは任意にカウンタの直接監視と割込みとを選択できるので、キューイングする転送要求の数が少ないときは直接監視を行ない、多いときは割込みを使用する等の柔軟な制御を行なうことができる。
【0023】
上記転送処理部に第1及び第2のレジスタ手段を設けることにより、スーパバイザプログラム又はユーザプログラムによるカウンタのポーリングが不要となる。
【0024】
【実施例】
図2は本発明装置を適用した並列計算機システムの構成図を示す。同図中、データ処理装置101 〜10n夫々はネットワーク11を介して接続されている。各データ処理装置101 〜10nはこのネットワーク11を介して相互にデータ転送を行ない、かつ、個別にデータ処理を行なう。
【0025】
各データ処理部101 〜10nは図3に示す如く、転送処理部15と、命令処理部16と、主記憶17とから構成されている。転送処理部15は命令処理部16からの指示に従って、主記憶17とネットワーク11との間でパケットの転送処理を行なう。転送パケットは送信側及び受信側のデータ処理装置におけるメモリアクセス属性、及び受信側のデータ処理装置における処理の指定を行なう情報等であるヘッダと、転送データ本体であるボディデータとよりなる。
【0026】
命令処理部16は主記憶17に格納されているプログラムを読出して実行し、主記憶17に格納されているデータのデータ処理を行なう。
【0027】
図1は本発明装置の第1実施例の転送処理部のブロック図を示す。
【0028】
同図中、ネットワーク転送制御部20は、命令処理部16から端子21を通して供給される指令によって起動され、転送キュー読出しポインタ22と転送キュー書込みポインタ23との値によって転送処理を開始し、転送パケットのヘッダ及びボディデータの読出しのため主記憶アクセス制御部24に主記憶アクセス要求を発行し、端子25を介して接続されたネットワーク11とのインタフェースを制御してデータバッファ26から端子27を介してネットワーク11に転送パケットを送出する。また、転送終了時には転送キュー読出しポインタ22をインクリメントすると共に、送信カウンタ30のデクリメントを行なう。
【0029】
主記憶アクセス制御部24はネットワーク転送制御部20からの指令によって、端子28を介して主記憶17に対してアクセスを行ない、主記憶17とデータバッファ26との間の端子29を介するデータ転送を制御する。データバッファ26は主記憶17とネットワーク11との間でデータ転送を行なうとき、一時的にデータのバッファリングを行なうと共に、ネットワーク転送制御部20及び主記憶アクセス制御部24が主記憶17上の必要とするデータを読み書きする際に、一時的にデータをバッファリングする。
【0030】
転送キューベースアドレスレジスタ31は命令処理部16から参照及び更新が可能であり、主記憶17上の転送キューの先頭アドレスを格納する。転送キュー書込みポインタ23は命令処理部16が転送キューのどの位置まで転送要求をエンキューしたかを管理し、転送キュー読出しポインタは転送キューのどの位置までの転送要求の転送処理を終了したかを管理する。送信カウンタ30は転送要求の処理終了数を管理する。上記ポインタ22,23及び送信カウンタ30は命令処理部16から参照及び更新が可能である。
【0031】
図4はネットワーク転送制御部20のブロック図を示す。同図中、端子21を介して命令処理部16より入来する起動/停止コマンドは受信ステート制御部40及び送信ステート制御部41に供給される。
【0032】
受信ステート制御部40は上記起動/停止コマンドの他に受信バッファ制御部42よりの受信開始通知、主記憶アクセス制御部24より端子43を介しての受信アクセス終了を供給されて受信状態を管理しており、端子47を介して接続されているレジスタ,ポインタ,カウンタの読み出し/書き込みコマンドをバス調整処理部44に供給し、また主記憶アクセス制御部24に受信アクセス制御コマンドを供給する。
【0033】
送信ステート制御部41は上記起動/停止コマンドの他に送信カウンタ更新/特定値検出処理部45よりの特定値検出信号、主記憶アクセス制御部24より端子43を介しての送信アクセス終了を供給されて送信状態を管理しており、端子47を介して接続されているレジスタ,ポインタ,カウンタの読み出し/書き込みコマンドをバス調整処理部44に供給し、また主記憶アクセス制御部24に受信アクセス制御コマンドを供給すると共に送信バッファ制御部46に送信終了通知を供給する。
【0034】
バス調停処理部44は受信ステート制御部40,送信ステート制御部41夫々よりのコマンドの調停して端子47を介して送信カウンタ30,転送キューベースアドレスレジスタ31、転送キュー読出しポインタ22,転送キュー書込みポインタ23及び主記憶アクセス制御部24に接続されたバスにバス制御コマンド,バスアドレス及びデータを供給する。
【0035】
送信カウンタ更新/特定値検出処理部45はバス調停処理部44に調定されて端子47を介し送信カウンタ30をアクセスし、送信カウンタ30を更新すると共に、送信カウンタ30の値が特定値(例えば0)となったとき特定値検出信号を送信ステート制御部41に供給する。
【0036】
受信バッファ制御部42は端子48を介してネットワーク11より受信有効信号,受信終了信号を供給されて端子49を介してデータバッファ26にネットワーク11よりのデータの受信バッファ書込有効信号及びアドレスを供給すると共にネットワーク11に送信応答信号を供給し、データバッファ26に対し受信バッファ読出しアドレスを供給して端子43を介して主記憶アクセス制御部24より受信バッファ読出有効信号を供給される。
【0037】
送信バッファ制御部46は端子43を介して主記憶アクセス制御部24より送信バッファ書込有効信号を供給されて端子49よりデータバッファ26に送信バッファ書込アドレスを供給し、またデータバッファ26に送信バッファ読出し有効信号及びアドレスを供給して、端子48を介しネットワーク11に送信有効信号を供給し、ネットワーク11より応答信号を供給される。また、転送終了通知を受けるとネットワーク11に送信終了信号を供給する。更に端子49を介してデータバッファとデータバスで接続されており、転送要求の制御情報の所定の検査及び変更を行なう。
【0038】
図5は主記憶アクセス制御部24のブロック図を示す。同図中、送信リクエスト/アドレス発生部51は端子52を介してネットワーク転送制御部20からバス制御コマンド及びバスアドレスを供給されると共にデータバスで接続され、かつ端子53を介してネットワーク転送制御部20より送信アクセス制御コマンド及び送信バッファフル信号を供給され、また主記憶読出タイミング調整部54より主記憶読出データ有効信号を供給され、端子55を介してデータバッファ26経由で主記憶17の転送キューの内容を供給されており、送信リクエスト,オペレーションコード及びアドレスを発生して主記憶アクセスプライオリティ制御部56に供給し、送信アクセス終了を端子53を介してネットワーク転送制御部20に通知する。
【0039】
受信リクエスト/アドレス発生部57は端子52を介してネットワーク転送制御部20からバス制御コマンド及びバスアドレスを供給されると共にデータバスで接続され、かつ端子53を介してネットワーク転送制御部20より受信アクセス制御コマンド及び受信バッファフル/エンプティ信号を供給され、また主記憶アクセスプライオリティ制御部56より受信バッファ読出有効信号を供給され、端子55を介してデータバッファ26経由で主記憶17の転送キューの内容を供給されており、受信リクエスト,オペレーションコード及びアドレスを発生して主記憶アクセスプライオリティ制御部56に供給し、受信アクセス終了を端子53を介してネットワーク転送制御部20に通知する。
【0040】
主記憶アクセスプライオリティ制御部56は送信リクエスト,受信リクエスト及びオペレーションコードを供給されると、そのプライオリティに従って(通常は受信優先)、いずれかを選択し、端子58を介して主記憶17にリクエスト,オペレーションコード及びアドレスを供給し、主記憶読出タイミング調整部54を起動し、また受信バッファ読出有効信号をデータバッファ26及びネットワーク転送制御部20に供給する。
【0041】
主記憶読出タイミング調整部54は上記起動に基づき主記憶読出データ有効信号,送信バッファ書込有効信号を生成してデータバッファ26及びネットワーク転送制御部20に供給する。
【0042】
次に転送処理部15の動作について説明する。
【0043】
ユーザプログラムは転送要求のエンキューに先立って、エンキューする転送要求の数を送信カウンタ30に書込む。次に転送要求の受信処理装置指定、ボディーデータ長、送信アドレス、受信アドレス等の転送要求の制御情報を転送パケットのヘッダの形式として転送キューベースアドレスレジスタ31の値+転送キュー書込みポインタ23の値×ヘッダ長で示される主記憶17上のアドレスに書込む。この後、転送キュー書込みポインタ23をインクリメントする。以降ユーザプログラムは転送キューへの転送要求の制御情報の書込みと転送キュー書込みポインタ23のインクリメントとを繰り返しエンキュー処理を終る。
【0044】
これによって、主記憶17の転送キューには図6に示す如く、転送要求の制御情報が格納される。
【0045】
ネットワーク転送制御部20は命令処理部16よりの指令によって起動された状態で転送要求のエンキュー待ち状態となっており、転送キュー読出しポインタ22の値と転送キュー書込みポインタ23の値が一致しなくなると、未処理の転送要求があるとして転送処理を開始し、転送パケットのヘッダの読出しのため主記憶アクセス制御部24に主記憶アクセスリクエストを発行する。
【0046】
これにより、主記憶アクセス制御部24は転送キューベースアドレスレジスタ31の値+転送キュー読出しポインタ22の値×ヘッダ長を演算して、最も古い未処理の転送要求のパケットヘッダの主記憶17上のアドレスを求め、主記憶17に対して読出しアクセスを発行する。これにより主記憶17からパケットヘッダが読出されると、主記憶アクセス制御部24はこれをデータバッファ26に格納すると共にネットワーク転送制御部20にパケットヘッダの読出し終了を通知する。
【0047】
引き続き主記憶アクセス制御部24は主記憶17からデータバッファ26を介して転送要求の制御情報を取出して転送パケットのボディのアドレスを計算し、主記憶17に対して上記パケットボディの読出しアクセスを発行する。主記憶17からパケットボディが順次読出されてくると主記憶アクセス制御部24はこれを順次データバッファ26に格納すると共に、ネットワーク転送制御部20にパケットボディの読出し量を順次通知する。
【0048】
ネットワーク転送制御部20は主記憶アクセス制御部24からパケットヘッダの読出し終了を通知されると、データバッファ26から転送要求の制御情報を取出して所定の検査と変更を加えた後、この制御情報をデータバッファ26に書戻す。
【0049】
引き続きネットワーク転送制御部20はデータバッファ26からネットワーク11にパケットヘッダを送出する。更にネットワーク転送制御部20は主記憶アクセス制御部24からパケットボディの読出し量を順次通知されると、データバッファ26に格納されたパケットボディを順次ネットワーク11に送出する。このようにしてネットワーク11への転送パケットの送出を終えると、ネットワーク転送制御部20は転送キュー読出しポインタ22をイクリメントし、送信カウンタをデクリメントする。
【0050】
更に、ネットワーク転送制御部20は転送キュー読出しポインタ22と転送キュー書込みポインタの値を検査し、未処理の転送要求が残っていれば次の転送処理を開始する。
【0051】
このようにして最初にエンキューされた転送要求の転送処理が全て終了すれば送信カウンタの値は0になる。ユーザプログラムはこの間別の処理を行ないながら、時々送信カウンタをポーリングしていれば、送信カウンタの値が0になったことにより、エンキューした転送要求の転送処理が全て終了したことを知ることができる。
【0052】
このように、命令処理部16から転送要求のエンキューに先立って転送要求の数に従った値を送信カウンタ30に設定しておき、転送要求の送信処理を実行する毎に送信カウンタ30の値を更新することにより、命令処理部16は送信カウンタ30の値を監視するだけで転送処理部15による送信処理の終了を知ることができ、上記送信カウンタ30の値は転送要求キューの使用状態に依存しないので終了判定値を保存する必要がない。
【0053】
図7は本発明装置の第2実施例の転送処理部のブロック図を示す。同図中、図1と同一部分には同一符号を付し、その説明を省略する。図7においては送信カウンタ30が設けられておらずネットワーク転送制御部60は図8に示す構成である。図8では、送信カウンタ更新/特定値検出処理部45は端子49を介してデータバッファ26とデータバスにより接続されている。この実施例では主記憶17上に送信カウンタが格納されている。
【0054】
次にこの実施例での転送処理部の動作について説明する。
【0055】
ユーザプログラムは転送要求のエンキューに先立って、エンキューする転送要求の数を主記憶17の送信カウンタに書込む。次に転送要求の受信処理装置指定、ボディーデータ長、送信アドレス、受信アドレス、送信カウンタアドレス、送信カウンタ制御情報等の転送要求の制御情報を転送パケットのヘッダの形式として転送キューベースアドレスレジスタ31の値+転送キュー書込みポインタ23の値×ヘッダ長で示される主記憶17上のアドレスに書込む。この後、転送キュー書込みポインタ23をインクリメントする。以降ユーザプログラムは転送キューへの転送要求の制御情報の書込みと転送キュー書込みポインタ23のインクリメントとを繰り返しエンキュー処理を終る。
【0056】
これによって、主記憶17の転送キューには図9に示す如く、転送要求の制御情報が格納される。ここで、送信カウンタアドレスは主記憶17上の送信カウンタの格納アドレスであり、送信カウンタ制御情報は送信カウンタの更新の有無を指示する更新フラグと、送信カウンタが特定値であることを検出したとき割込みを行なうか否かを示す割込みフラグと、送信カウンタ更新時に主記憶アクセスを逐次化するか否かを示す逐次化フラグを有している。
【0057】
ネットワーク転送制御部60は命令処理部16よりの指令によって起動された状態で転送要求のエンキュー待ち状態となっており、転送キュー読出しポインタ22の値と転送キュー書込みポインタ23の値が一致しなくなると、未処理の転送要求があるとして転送処理を開始し、転送パケットのヘッダの読出しのため主記憶アクセス制御部24に主記憶アクセスリクエストを発行する。
【0058】
これにより、主記憶アクセス制御部24は転送キューベースアドレスレジスタ31の値+転送キュー読出しポインタ22の値×ヘッダ長を演算して、最も古い未処理の転送要求のパケットヘッダの主記憶17上のアドレスを求め、主記憶17に対して読出しアクセスを発行する。これにより主記憶17からパケットヘッダが読出されると、主記憶アクセス制御部24はこれをデータバッファ26に格納すると共にネットワーク転送制御部60にパケットヘッダの読出し終了を通知する。
【0059】
引き続き主記憶アクセス制御部24は主記憶17からデータバッファ26を介して転送要求の制御情報を取出して転送パケットのボディのアドレスを計算し、主記憶17に対して上記パケットボディの読出しアクセスを発行する。主記憶17からパケットボディが順次読出されてくると主記憶アクセス制御部24はこれを順次データバッファ26に格納すると共に、ネットワーク転送制御部60にパケットボディの読出し量を順次通知する。
【0060】
ネットワーク転送制御部60は主記憶アクセス制御部24からパケットヘッダの読出し終了を通知されると、データバッファ26から転送要求の制御情報を取出して所定の検査と変更を加えた後、この制御情報をデータバッファ26に書戻す。
【0061】
引き続きネットワーク転送制御部60はデータバッファ26からネットワーク11にパケットヘッダを送出する。更にネットワーク転送制御部60は主記憶アクセス制御部24からパケットボディの読出し量を順次通知されると、データバッファ26に格納されたパケットボディを順次ネットワーク11に送出する。このようにしてネットワーク11への転送パケットの送出を終えると、ネットワーク転送制御部60は転送キュー読出しポインタ22をイクリメントし、パケットヘッダの送信カウンタ制御情報内の送信カウンタ更新フラグを検査し、これがオンであれば主記憶アクセス制御部24に対して送信カウンタの読出しを指示する。主記憶アクセス制御部24は保持してあったパケットヘッダ内の送信カウンタアドレスを取出して、主記憶17に対して読出しアクセスを発行する。主記憶17から送信カウンタが読出されて来ると主記憶アクセス制御部24はこれをデータバッファ26へ格納するとともに、ネットワーク転送制御部60に送信カウンタの読出し終了を通知する。ネットワーク転送制御部60は主記憶アクセス制御部24から送信カウンタの読出し終了を通知されると、データバッファ26から送信カウンタを取出してこれをデクリメントしてからデータバッファ26へ書戻し、主記憶アクセス制御部24に対して送信カウンタの書込みを指示する。この際ネットワーク転送制御部60はパケットヘッダの送信カウンタ制御情報内の送信カウンタ更新時主記憶アクセス逐次化フラグを検査し、これがオンであれば主記憶アクセス制御部24に対して逐次化要求付きアクセスを行なうように指示する。主記憶アクセス制御部24は転送制御部の指示に従って逐次化要求付き/無しアクセスを主記憶17に対して発行し、データバッファ26から更新された送信カウンタを取出して主記憶17へ送る。主記憶17への書込みが終了すると主記憶アクセス制御部24は、ネットワーク転送制御部60に送信カウンタの書込み終了を通知する。するとネットワーク転送制御部60はパケットヘッダの送信カウンタ制御情報内の送信カウンタ特定値検出時割込みフラグを検査し、これがオンであってかつ送信カウンタのデクリメント後の値が0であれば命令処理部16に対して割込みを発生する。この条件が成立していなければ、ネットワーク転送制御部60は転送キュー読出しポインタ22と転送キュー書込みポインタ23の値を検査し、未処理の転送要求が残っていれば次の転送処理を開始する。
【0062】
このようにして最初にエンキューされた転送要求の転送処理が全て終了し、これらの転送要求において送信カウンタ更新フラグがオンにしてあれば、送信カウンタの値は0になる。プログラムはこの間別の処理を行ないながら、時々送信カウンタをポーリングしていれば、送信カウンタの値が0になったことにより、エンキューした転送要求の転送処理が全て終了したことを知ることができる。また、これらの転送要求において送信カウンタ更新時主記憶アクセス逐次化フラグをオンにしておけば、送信カウンタの値が0になった時にそれ以前のネットワーク転送処理部60の主記憶アクセスが命令処理部16から見て全て終了していることが保障される。また、これらの転送要求において送信カウンタ特定値検出時割込みフラグをオンにしておけば、送信カウンタをポーリングする必要もなくなる。
【0063】
このように、送信カウンタを主記憶17上に複数設けることにより、複数の転送要求キューがある場合に各キューに別個の送信カウンタを割付けて転送要求管理を複数並列に行なうことができ、ハードウェア量の増加を防止できる。
【0064】
また、送信カウンタの主記憶17上のアドレスを転送要求の制御情報部に含むことにより、複数の送信カウンタを主記憶上に任意に設定することができる。
【0065】
また、更新フラグを設けることにより、送信カウンタを使用する必要のないアルゴリズムで転送を行なう場合に余分なオーバーヘッドの発生を防止できる。
【0066】
また、逐次化フラグを設けることにより、ユーザプログラムは命令処理部内のバッファ記憶と主記憶の内容との整合性を意識することなく転送終了時に所要の送信処理とそれに伴う主記憶の内容の更新が終了したものとみなすことができ、かつ転送要求のストリームの中間部分のような主記憶アクセスの逐次化の必要のない送信処理については逐次化フラグをオフとしておくことにより余分な逐次化のオーバーヘッドの発生を防止できる。
【0067】
また割込みフラグを設けることにより、ユーザプログラムは送信カウンタを監視する必要がなくなり、送信カウンタをポーリングするオーバーヘッドを削減でき、かつプログラムは任意に送信カウンタの直接監視と割込みとを選択できるので、キューイングする転送要求の数が少ないときは直接監視を行ない、多いときは割込みを使用する等の柔軟な制御を行なうことができる。
【0068】
次に、上記命令処理部16を図10と共により詳細に説明する。図10は命令処理部16の一実施例を示す。
【0069】
図10に示す命令処理部16は、図示の如き接続の転送処理部アダプタ71と、演算処理部72と、汎用レジスタ73と、命令シーケンサ74と、キャッシュメモリ75とからなる。命令処理部16は、主記憶17に格納された命令(プログラム)を読んで実行する。図10中、データバスは実線で示し、制御信号は点線で示す。
【0070】
命令シーケンサ74は、内部プログラムカウンタを有し、この内部プログラムカウンタにより指定されたアドレスに基づいてキャッシュメモリ75から命令を読み出す。命令シーケンサ74は読んだ命令をデコードし、各種制御信号を命令処理部16の各部へ供給する。命令の実行が終了すると、命令シーケンサ74は内部プログラムカウンタの値を更新して次の命令の実行を開始する。
【0071】
キャッシュメモリ75は、主記憶17の一部のコピーを格納する。キャッシュメモリ75は、命令シーケンサ74からの制御信号に応じて命令を命令シーケンサ74へ供給すると共に、データをレジスタ73へ供給する。要求されたデータがキャッシュメモリ75に格納されていない場合は、要求されたデータは主記憶17から読み出されてキャッシュメモリ75へ格納される。キャッシュメモリ75は、命令シーケンサ74からの制御信号に応じてレジスタ73からのデータをも格納し、格納されたデータを主記憶17へ書込む。
【0072】
レジスタ73は、命令シーケンサ74からの制御信号に応じてキャッシュメモリ75、演算処理部72及び転送処理部アダプタ71からのデータを受けて格納する。レジスタ73は、演算処理を施されるべきデータを演算処理部72へ供給すると共に、キャッシュメモリ75にデータを格納する。
【0073】
演算処理部72は、命令シーケンサ74からの制御信号に応じてレジスタ73から供給されるデータに演算を施す。演算処理部72は、この演算の結果をレジスタ73及び転送処理部アダプタ71へ供給する。
【0074】
転送処理部アダプタ71は、命令シーケンサ74からの制御信号に応じて転送処理部15へ起動/停止コマンドを送出する。又、転送処理部アダプタ71は、命令シーケンサ74からの制御信号に応じて、演算処理部72からのデータを用いて転送処理部15内のレジスタ/ポインタに対して読出し/書込み動作を行う。転送処理部アダプタ71は、命令シーケンサ74からの制御信号に応じて転送処理部15内のレジスタ/ポインタより読出したデータをレジスタ73へ転送する。更に、転送処理アダプタ71は、転送処理部15からの割込み信号を命令シーケンサ74へ転送する。
【0075】
上記の如き構成の命令処理部16は、図1においても図7においても使用できる。
【0076】
尚、上記第1及び第2実施例では、パケット送信に対して送信カウンタが設けられているが、同様にして、パケット受信に対して受信カウンタを設けても良い。
【0077】
ところで、上記第1及び第2実施例では、送信カウンタをポーリングする必要がある。この送信カウンタのポーリングをスーパバイザプログラムが行う場合、スーパバイザプログラムのオーバーヘッドが増大してしまう。しかし、上記第1及び第2実施例では、ユーザプログラムが送信カウンタのポーリングを行うため、スーパバイザプログラムのオーバーヘッドの増大は防止できる。ところが、ユーザプログラムが送信カウンタのポーリングを行うと、命令処理部は送信カウンタが特定値(上記の場合、「0」)となるまでスピンループを実行しなければならず、命令処理部への負荷が増大してしまう。
【0078】
又、命令処理部がスピンループを実行する場合で、特に1つのデータ処理装置が1つの並列プロセスと他のプロセスを実行するような場合、他のプロセスは、たとえ実行可能であっても、1つの並列プロセスが送信カウンタの値が特定値となるまでスピンループを実行している間、実行されずに待たされてしまう。
【0079】
そこで、次に送信カウンタのポーリングを不要とすることのできる実施例について図11及び図12と共に説明する。
【0080】
図11は、本発明装置の第3実施例の転送処理部のブロック図を示す。同図中、図7と同一部分には同一符号を付し、その説明は省略する。又、説明の便宜上、図11中転送キューベースアドレスレジスタ31、転送キュー読出しポインタ22及び転送キュー書込みポインタ23の図示は省略する。
【0081】
又、図12は、第3実施例の動作を説明するための図である。同図中、図7及び図11と同一部分には同一符号を付し、その説明は省略する。
【0082】
本実施例では、i=1,…,Mとすると、転送処理部15は図11に示す如き接続のレジスタ71i ,72i ,73i ,74i ,75を有する。レジスタ71i は、プロセス#iに対する送信カウンタ期待値を格納し、レジスタ72i は、検査されているプロセス#iに対する送信カウンタアドレスを格納する。レジスタ73i は、プロセス#iに対する受信カウンタ期待値を格納し、レジスタ74i は、検査されているプロセス#iに対する受信カウンタアドレスを格納する。送信カウンタアドレスとは、検査されている対応する送信カウンタの主記憶17内でのアドレスを示す。同様に、受信カウンタアドレスとは、検査されている対応する受信カウンタの主記憶17内でのアドレスを示す。また、レジスタ75は、命令処理部16に対して割込みが発生したか否かを示す割込みフラグを格納する。
【0083】
他方、主記憶17は、図12に示すように、プロセス#1〜#Mに対する送信カウンタ1711 〜171M と、プロセス#1〜#Mに対する受信カウンタ1721 〜172M とを格納する。受信カウンタ172i は、図9と共に説明したように、送信カウンタ171i と同様に、パケットヘッダの制御情報内に含まれている。
【0084】
他方、主記憶17は、図12に示すようにプロセス#1〜#Mに対する送信カウンタ1711 〜171M と、プロセス#1〜#Mに対する受信カウンタ1721 〜172M とを格納する。受信カウンタ172i のアドレスは、図9と共に説明したように、送信カウンタ171i と同様に、パケットヘッダの制御情報内に含まれている。
【0085】
受信カウンタを用いた動作は、基本的には送信カウンタを用いた動作と同様であるので、以後は送信カウンタを用いた動作についてのみ説明する。
【0086】
レジスタ71i は、対応するプロセス#iに対する送信カウンタ期待値を格納する。ここで、プロセス#iは、1又は複数の転送要求キューに対応する。レジスタ72i は、プロセス#iに対応する主記憶17内の送信カウンタ171i のアドレスを格納する。主記憶17内の送信カウンタ171i の値がレジスタ71i に格納された期待値(即ち、特定の値)と一致し、レジスタ72i に格納された対応するアドレスと主記憶17内の送信カウンタ171i のアドレスと一致すると、転送制御部60は端子21を介して命令処理部16に対して割込みを発生する。又、転送制御部60は、割込みを発生する際にレジスタ75に割込みフラグを設定して割込みが発生したことを示しておく。
【0087】
つまり、仮にパケットカウンタの値、即ち送信カウンタ171i 又は受信カウンタ172i の値が期待値(特定値)となるまでの待ち状態が発生したとする。この場合、ユーザプログラムは、パケットカウンタの種別、パケットカウンタの期待値及びパケットカウンタのアドレスをパラメータに含めてシステムコールを行う。パケットカウンタの種別は、カウンタが送信カウンタ171i であるか受信カウンタ172i であるかを示す。このシステムコールに応答して、オペレーティングシステム(OS)はパケットカウンタの期待値及びアドレスを呼出し、例えば期待値を対応するレジスタ71i に設定すると共にアドレスをレジスタ72i に設定する。この結果、必要であればプロセスに対して割込みを発生可能となる。その後、上記システムコールを発行したプロセスは待ち状態となり、他のプロセスがディスパッチされる。レジスタ72i は送信カウンタ171i のアドレスを格納しているので、送信カウンタ171i の値が更新された後であっても、送信カウンタ171i の値と対応する期待値とを正しく比較することができる。
【0088】
例えばプロセス#1のパケット送信の場合、パケット送信により送信カウンタ1711 の値がデクリメント又はインクリメントされると、転送制御部60は送信カウンタ1711 の値とレジスタ711 間の期待値とを比較すると共に、送信カウンタ1711 の主記憶17内でのアドレスとレジスタ721 内に格納されたアドレスとを比較する。送信カウンタ1711 の値とレジスタ711 内の期待値が一致すると共に、送信カウンタ1711 の主記憶17内でのアドレスとレジスタ721 内に格納されたアドレスとが一致すると、転送制御部60は命令処理部16に対して割込みを発生することにより指定された待ち状態を解除する。又、転送制御部60は、レジスタ75に割込みフラグを設定することにより、プロセス#1に対する割込みが発生したことを示す。これにより、プロセス#1は割込みに応答して待ち状態からアクティブ状態に変更される。
【0089】
従って、本実施例によれば、スーパーバイザプログラムがパケットカウンタのポーリングを行う場合と比較すると、スーパーバイザプログラムのオーバーヘッドを減少させることができる。又、第1及び第2実施例と比較した場合、ユーザプログラムのスピンループを削減することができる。つまり、本実施例ではパケットカウンタのポーリングが不要となり、システムのスループットを向上することができる。
【0090】
パケットカウンタの期待値及びアドレスは各並列プロセスについてパケット送信及びパケット受信ごとに設けることが望ましいが、パケット送信及びパケット受信で共通に用いることも可能である。しかし、この場合には不要な割込みが発生する可能性がある。
【0091】
尚、送信カウンタ及び受信カウンタのアドレスは必ずしも格納しておく必要はなく、レジスタ72i ,74i は省略しても良い。この場合、例えば送信カウンタ1711 の値をチェックするときは、この値をレジスタ711 〜71M に格納された全ての期待値と比較する。このため、値が送信カウンタ1711 以外の送信カウンタの期待値とたまたま一致してしまうと、不要な割込みが発生してしまうことになる。従って、この場合に転送制御部60から割込みが発生すると、オペレーティングシステム(OS)が送信カウンタ1711 の値と送信カウンタ1711 の期待値とが正しく一致しているか否かを確認し、一致していればプロセス#1を待ち状態からアクティブ状態へ変更する。他方、一致しないと、割込みは送信カウンタ1711 についてのものではないので捨てられる。
【0092】
【発明の効果】
上述の如く、本発明のデータ処理装置によれば、転送終了判定のため余分な制御情報が不要でアルゴリズムが簡単であり、命令処理部の余分なオーバーヘッドの発生を防止でき、実用上きわめて有用である。
【図面の簡単な説明】
【図1】本発明装置の第1実施例の転送処理部を示すブロック図である。
【図2】並列計算機システムの構成図である。
【図3】本発明のデータ処理装置のブロック図である。
【図4】ネットワーク転送制御部のブロック図である。
【図5】主記憶アクセス制御部のブロック図である。
【図6】転送キューの構成図である。
【図7】本発明装置の第2実施例の転送処理部を示すブロック図である。
【図8】ネットワーク転送制御部のブロック図である。
【図9】転送キューの構成図である。
【図10】命令処理部の一実施例を示すブロック図である。
【図11】本発明装置の第3実施例の転送処理部を示すブロック図である。
【図12】第3実施例の動作を説明するための図である。
【符号の説明】
101 〜10n データ処理装置
11 ネットワーク
15 転送処理部
16 命令処理部
17 主記憶
20,60 ネットワーク転送制御部
22 転送キュー読出しポインタ
23 転送キュー書込みポインタ
24 主記憶アクセス制御部
26 データバッファ
30 送信カウンタ
31 転送キューベースアドレスレジスタ
Claims (11)
- ネットワークを介して相互に接続され、データ処理を行なう命令処理部の転送要求に従って、転送処理部で主記憶と上記ネットワークとの間でデータ転送を行なうデータ処理装置において、
上記命令処理部より参照可能で、転送要求に基づく転送処理を実行する毎に上記転送処理部により更新されるカウンタを有し、
上記カウンタを主記憶上に設け、
上記カウンタの主記憶上のアドレスを転送要求の制御情報部に含み、
上記カウンタの更新を行なう前に主記憶アクセスの逐次化を行なうことを指示する逐次化フラグを設けたことを特徴とする、データ処理装置。 - ネットワークを介して相互に接続され、データ処理を行なう命令処理部の転送要求に従って、転送処理部で主記憶と上記ネットワークとの間でデータ転送を行なうデータ処理装置において、
上記命令処理部より参照可能で、転送要求に基づく転送処理を実行する毎に上記転送処理部により更新されるカウンタを有し、
上記カウンタを主記憶上に設け、
上記カウンタの主記憶上のアドレスを転送要求の制御情報部に含み、
上記カウンタの値が特定値となったとき上記命令処理部に対して割込みの発生有無を指示する割込みフラグを設けたことを特徴とする、データ処理装置。 - ネットワークを介して相互に接続され、データ処理を行なう命令処理部の転送要求に従って、転送処理部で主記憶と上記ネットワークとの間でデータ転送を行なうデータ処理装置において、
上記命令処理部より参照可能で、転送要求に基づく転送処理を実行する毎に上記転送処理部により更新されるカウンタを有し、
上記カウンタを主記憶上に設け、
上記カウンタの主記憶上のアドレスを転送要求の制御情報部に含み、
上記カウンタの更新の有無を指示する更新フラグを設け、
上記更新フラグを転送要求の制御情報部に含むことを特徴とする、データ処理装置。 - ネットワークを介して相互に接続され、データ処理を行なう命令処理部の転送要求に従って、転送処理部で主記憶と上記ネットワークとの間でデータ転送を行なうデータ処理装置において、
上記命令処理部より参照可能で、転送要求に基づく転送処理を実行する毎に上記転送処理部により更新されるカウンタを有し、
前記カウンタは前記主記憶上に設けられ、
前記転送処理部は、該カウンタの内容の期待値を任意のプロセスについて格納する第1のレジスタ手段と、前記命令処理部に対して割込みが発生したか否かを示すフラグを格納する第2のレジスタ手段とを有し、
該転送処理部は、該カウンタの内容と該第1のレジスタ手段内の期待値とが前記任意のプロセスについて一致すると該命令処理部に対して割込みを発生すると共に該第2のレジスタ手段にフラグを設定することを特徴とする、データ処理装置。 - 前記任意のプロセスは、1又は複数の転送要求キューに対応していることを特徴とする、請求項4記載のデータ処理装置。
- 前記転送処理部は、前記カウンタの前記主記憶内でのアドレスを前記任意のプロセスについて格納する第3のレジスタ手段を更に有することを特徴とする、請求項4又は5記載のデータ処理装置。
- 前記命令処理部は、前記任意のプロセスに対する期待値及び前記カウンタのアドレスを夫々前記第1及び第3のレジスタ手段に設定することを特徴とする、請求項6記載のデータ処理装置。
- 前記転送処理部は複数の転送要求キューをエンキューし、
前記カウンタは複数の転送要求キューに対応して複数設けられ、
前記第1及び第3のレジスタ手段は夫々複数の転送要求キューに対応して複数設けられ、
前記プロセスは各々1又は複数の転送要求キューに対応していることを特徴とする、請求項6又は7記載のデータ処理装置。 - 前記カウンタは、転送要求に基づいて転送処理により送信及び受信のうち少なくとも一方が行われる毎に更新される内容を格納することを特徴とする、請求項1〜8のうちいずれか一項記載のデータ処理装置。
- 上記逐次化フラグを転送要求の制御情報部に含むことを特徴とする、請求項1記載のデータ処理装置。
- 上記割込みフラグを転送要求の制御情報部に含むことを特徴とする、請求項2記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31714393A JP3693183B2 (ja) | 1992-12-18 | 1993-12-16 | データ処理装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4-339097 | 1992-12-18 | ||
JP33909792 | 1992-12-18 | ||
JP31714393A JP3693183B2 (ja) | 1992-12-18 | 1993-12-16 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06236334A JPH06236334A (ja) | 1994-08-23 |
JP3693183B2 true JP3693183B2 (ja) | 2005-09-07 |
Family
ID=26568935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31714393A Expired - Fee Related JP3693183B2 (ja) | 1992-12-18 | 1993-12-16 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3693183B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005322032A (ja) * | 2004-05-10 | 2005-11-17 | Matsushita Electric Ind Co Ltd | 受信フレーム処理装置 |
JP5625737B2 (ja) * | 2010-10-22 | 2014-11-19 | 富士通株式会社 | 転送装置、転送方法および転送プログラム |
-
1993
- 1993-12-16 JP JP31714393A patent/JP3693183B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06236334A (ja) | 1994-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5557744A (en) | Multiprocessor system including a transfer queue and an interrupt processing unit for controlling data transfer between a plurality of processors | |
EP0349123B1 (en) | Multi-processor computer systems having shared memory and private cache memories | |
US6493773B1 (en) | Data validity measure for efficient implementation of first-in-first-out memories for multi-processor systems | |
JP4034969B2 (ja) | 共通メモリのメモリ管理システム | |
US6553487B1 (en) | Device and method for performing high-speed low overhead context switch | |
US5625846A (en) | Transfer request queue control system using flags to indicate transfer request queue validity and whether to use round-robin system for dequeuing the corresponding queues | |
US20070220361A1 (en) | Method and apparatus for guaranteeing memory bandwidth for trace data | |
US5287471A (en) | Data transfer controller using direct memory access method | |
JP4585647B2 (ja) | パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート | |
JPH06309230A (ja) | バススヌ−プ方法 | |
EP0901083B1 (en) | Data processing unit | |
EP0600165B1 (en) | Vector processing device | |
US6976110B2 (en) | Method and apparatus for reducing interrupt latency by dynamic buffer sizing | |
JP3693183B2 (ja) | データ処理装置 | |
JPH0798663A (ja) | 非同期i/o制御方式 | |
US6145032A (en) | System for recirculation of communication transactions in data processing in the event of communication stall | |
US20040059563A1 (en) | Emulatd atomic instruction sequences in a multiprocessor system | |
EP1139228A2 (en) | An intelligent bus interconnect unit | |
JPH09269936A (ja) | リモートリード処理方法およびその装置 | |
EP0503390A1 (en) | Microcomputer having direct memory access mode | |
JP3640976B2 (ja) | データ転送制御方法 | |
JPH10150468A (ja) | 送信履歴ビットを持つデータ処理装置およびデータ通信方法 | |
JPS63231668A (ja) | 割込みキユ−制御方式 | |
JPH03257634A (ja) | プログラム並列実行方法とその装置 | |
JPH07160653A (ja) | データ転送制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040316 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040514 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040817 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040916 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040928 |
|
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: 20050614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050616 |
|
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: 20080701 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090701 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100701 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100701 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110701 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110701 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120701 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |