JPH08241293A - 遠隔メモリアクセス制御装置 - Google Patents

遠隔メモリアクセス制御装置

Info

Publication number
JPH08241293A
JPH08241293A JP7045779A JP4577995A JPH08241293A JP H08241293 A JPH08241293 A JP H08241293A JP 7045779 A JP7045779 A JP 7045779A JP 4577995 A JP4577995 A JP 4577995A JP H08241293 A JPH08241293 A JP H08241293A
Authority
JP
Japan
Prior art keywords
packet
memory access
remote
remote memory
memory
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
Application number
JP7045779A
Other languages
English (en)
Other versions
JP2736237B2 (ja
Inventor
Noboru Tanabe
昇 田邊
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.)
GIJUTSU KENKYU KUMIAI SHINJOHO SHIYORI KAIHATSU KIKO
Toshiba Corp
Original Assignee
GIJUTSU KENKYU KUMIAI SHINJOHO SHIYORI KAIHATSU KIKO
Toshiba 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 GIJUTSU KENKYU KUMIAI SHINJOHO SHIYORI KAIHATSU KIKO, Toshiba Corp filed Critical GIJUTSU KENKYU KUMIAI SHINJOHO SHIYORI KAIHATSU KIKO
Priority to JP7045779A priority Critical patent/JP2736237B2/ja
Publication of JPH08241293A publication Critical patent/JPH08241293A/ja
Application granted granted Critical
Publication of JP2736237B2 publication Critical patent/JP2736237B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 TLBのミスヒットに起因する割り込み発生
を排除し、かつ、遠隔メモリアクセスパケットを連続的
に発生させる。 【構成】 物理的に分散され論理的に複数のプロセッサ
から共有メモリとしてアクセス可能な分散共有メモリを
持つ並列計算機にて対応するプロセッサの分散共有メモ
リへの遠隔メモリアクセスを制御する遠隔メモリアクセ
ス制御装置であって、アドレスを指定するポインタ指定
手段と、生成するパケット数を指定するパケット数指定
手段と、遠隔メモリアクセス要求を検出する手段と、該
要求が検出されるとポインタ指定手段にて指示されるア
ドレスを元に対応するプロセッサのローカルメモリから
パケット生成用情報を読み出す手段と、読み出されたパ
ケット生成用情報に基づいてパケット数指定手段にて指
示される個数分、分散共有メモリに対して遠隔メモリア
クセスするパケットを生成する手段とを備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、遠隔に実装されたメモ
リに対してアクセスを行うことができる分散共有メモリ
方式の並列計算機における遠隔メモリアクセス制御装置
に係り、特にリストベクトルによってアクセス先を細か
く制御しつつ高速にアクセスできる遠隔メモリアクセス
制御装置に関する。
【0002】
【従来の技術】従来の分散共有メモリ型並列計算機で
は、マイクロプロセッサから出されるリード要求やライ
ト要求を受けて、その1回のアクセスが遠隔メモリへの
アクセスを意味した場合は1つの遠隔メモリアクセスパ
ケットを生成していた。
【0003】このため、様々なアドレスの遠隔メモリに
1語ずつアクセスするような処理を行う場合は、(i)
マイクロプロセッサがメモリからアクセス先のアドレス
そのものを読みだし、あるいはメモリから読みだしたデ
ータを元にそのアドレスを計算により求め、(ii)その
結果をアドレスとして遠隔メモリにアクセスをする、と
いう一連の動作を、マイクロプロセッサのプログラムの
中で逐次に処理しなければならなかった。
【0004】さらに、多数の遠隔プロセッサ上の遠隔メ
モリに少しずつアクセスするような場合は、マイクロプ
ロセッサ内のデータキャッシュを大量の遠隔メモリアド
レス情報が通過するような不都合や、マイクロプロセッ
サ内のトランスレーション・ルックアサイド・バッファ
(Trnslation Look Aside Bu
ffer;以下、TLBと略記する)の限られた個数の
エントリを次々とページ外にはみでる遠隔メモリアドレ
スが食いつぶしてしまうおそれがあった。
【0005】また従来は、応答パケットを用いて遠隔メ
モリへの書き込みが完了したかどうかを確認していたの
で、全ての応答が戻ってくるまでの時間だけ遅く書き込
みの完了が伝わるために、処理が遅くなり、プロセッサ
間結合網を応答パケットにより混雑させてしまうという
欠点があった。
【0006】
【発明の解決しようとする課題】以上のように、従来の
分散共有メモリ型並列計算機では、遠隔メモリアクセス
制御装置が結合網に出力するパケットは間欠的にしか発
生させることができないばかりか、マイクロプロセッサ
の処理時間を増加させ、その他の演算処理と通信のオー
バーラップを阻害したり、遠隔メモリアドレス情報がキ
ャッシュやTLBを通過するためにキャッシュやTLB
のヒット率を低下させたりしてしまうという問題点があ
った。
【0007】本発明は、上記事情に鑑みてなされたもの
であり、キャッシュやTLBのミスヒットに起因する割
り込み発生を排除し、かつ、遠隔メモリアクセスパケッ
トを連続的に発生させることの可能な遠隔メモリアクセ
ス制御装置を提供することを目的とする。
【0008】また、本発明は、遠隔メモリへの書き込み
処理に対する応答パケットにより結合網を混雑させるこ
とがないようする遠隔メモリアクセス制御装置を提供す
ることを目的とする。
【0009】
【課題を解決するための手段】第1の発明は、複数のプ
ロセッサと物理的に分散して実装され論理的に該複数の
プロセッサから共有メモリとしてアクセス可能な分散共
有メモリとを具備する並列計算機において対応するプロ
セッサの該分散共有メモリに対する遠隔メモリアクセス
を制御する遠隔メモリアクセス制御装置であって、パケ
ット生成用情報のアドレスを指定するポインタ指定手段
と、生成するパケットの個数を指定するパケット数指定
手段と、前記対応するプロセッサからの遠隔メモリアク
セス要求を検出するアクセス要求検出手段と、前記遠隔
メモリアクセス要求が検出された場合、前記ポインタ指
定手段により指示される前記アドレスを元にして、前記
対応するプロセッサのローカルメモリから所定のフォー
マットのパケット生成用情報を読み出すローカルメモリ
アクセス手段と、読み出された前記パケット生成用情報
に基づいて、前記パケット数指定手段により指示される
パケット数分、前記分散共有メモリに対して遠隔メモリ
アクセスするパケットを生成するパケット生成手段とを
備えたことを特徴とする。
【0010】第2の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記ローカルメモリに格
納される前記パケット生成用情報の格納フォーマットを
配列とすることを特徴とする。
【0011】第3の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記パケット生成用情報
を一時的に格納する第1のバッファ手段と、書き込みデ
ータを一時的に格納する第2のバッファ手段とをさらに
備え、前記ローカルメモリアクセス手段は、前記遠隔メ
モリアクセス要求が遠隔メモリ書き込み要求である場
合、前記ローカルメモリから前記第1及び第2のバッフ
ァ手段に情報を取り込むものであるとともに、前記パケ
ット生成手段は、前記遠隔メモリアクセス要求が遠隔メ
モリ書き込み要求である場合、対応する前記パケット生
成用情報と前記書き込みデータとの組がそろったものか
ら、該組の内容に基づいて遠隔メモリ書き込みパケット
を生成するものであって、前記ローカルメモリアクセス
手段と前記パケット生成手段とを、パイプライン的に同
時動作させるようにしたことを特徴とする。
【0012】第4の発明は、第3の発明に係る遠隔メモ
リアクセス制御装置において、前記ローカルメモリアク
セス手段は、連続アクセスが高速なローカルメモリをア
クセスするものであり、前記パケット生成用情報および
前記書き込みデータを前記ローカルメモリから連続アク
セスによって各々複数パケット分、前記第1および第2
のバッファ手段に取り込むようにしたことを特徴とす
る。
【0013】第5の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記パケットが運ぶべき
情報のデータ語数を指定するバースト長指定手段をさら
に具備し、該バースト長指定手段により指定される語数
の読み書きを行う遠隔メモリバーストアクセスパケット
を生成するようにしたことを特徴とする。
【0014】第6の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記パケット生成用情報
には、メモリアドレスの他に当該パケットが運ぶべき情
報のデータ語数を持たせ、各パケット毎に所望の語数の
連続データの読み書きを行う遠隔メモリバーストアクセ
スパケットを生成するようにしたことを特徴とする。
【0015】第7の発明は、第1の発明に係る遠隔メモ
リアクセス制御装置において、前記パケット生成手段に
は、非特権モードでのプログラムからは特権モードに移
行することなく直接制御することが不可能なプロテクシ
ョン情報付加機構を設けるとともに、他のプロセッサか
らの遠隔メモリアクセスパケットを受信した場合に、該
パケット中のプロテクション情報に基づいてメモリアク
セスの許可不許可を制御するメモリアクセス保護機構を
備えたことを特徴とする。
【0016】第8の発明は、複数のベクトルプロセッサ
と物理的に分散して実装され論理的に該複数のベクトル
プロセッサから共有メモリとしてアクセス可能な分散共
有メモリとを具備する並列計算機においてベクトルプロ
セッサの該分散共有メモリに対する遠隔メモリアクセス
を制御する遠隔メモリアクセス制御装置であって、ベク
トルプロセッサがフェッチしたベクトル命令によりパケ
ット生成が起動され、ベクトルプロセッサのベクトルロ
ード手段によりローカルメモリからベクトルレジスタに
ロードされたパケット生成用情報に基づいて、ベクトル
長指定手段により指示されるパケット数分、前記分散共
有メモリに対して遠隔メモリアクセスするパケットを生
成するパケット生成手段を備えたことを特徴とする。
【0017】第9の発明は、第8の発明に係る遠隔メモ
リアクセス制御装置において、パケット生成用情報を前
記ベクトルレジスタの少なくとも1つに格納するととも
に、前記ローカルメモリからロードした書き込みデータ
またはベクトル演算器からの出力として得られる書き込
みデータを前記ベクトルレジスタの他のベクトルレジス
タに格納し、対応するパケット生成用情報と書き込みデ
ータを組み合わせて、前記フェッチしたベクトル命令に
よって遠隔メモリ書き込みパケットを生成することを特
徴とする。
【0018】第10の発明は、第8の発明に係る遠隔メ
モリアクセス制御装置において、前記ローカルメモリに
格納される前記パケット生成用情報の格納フォーマット
を配列とすることを特徴とする。
【0019】第11の発明は、第8の発明に係る遠隔メ
モリアクセス制御装置において、前記パケットが運ぶべ
き情報のデータ語数を指定できるベクトル命令を設け、
所定の語数の連続データの読み書きを1つのパケットで
行う遠隔メモリバーストアクセスパケットを生成するこ
とを特徴とする。
【0020】第12の発明は、第8の発明に係る遠隔メ
モリアクセス制御装置において、前記パケット生成用情
報には、メモリアドレスの他に当該パケットが運ぶべき
情報のデータ語数を持たせ、各パケット毎に所望の語数
の連続データの読み書きを行う遠隔メモリバーストアク
セスパケットを生成するようにしたことを特徴とする。
【0021】第13の発明は、第8の発明に係る遠隔メ
モリアクセス制御装置において、前記パケット生成手段
には、非特権モードでのプログラムからは特権モードに
移行することなく直接制御することが不可能なプロテク
ション情報付加機構を設けるとともに、他のプロセッサ
からの遠隔メモリアクセスパケットを受信した場合に、
該パケット中のプロテクション情報に基づいてメモリア
クセスの許可不許可を制御するメモリアクセス保護機構
を備えたことを特徴とする。
【0022】第14の発明は、第7または第13の発明
に係る遠隔メモリアクセス制御装置において、遠隔メモ
リを指定するアドレスとして送信側でシステムコールに
よって変換をかけた変換後アドレスを前記ローカルメモ
リに準備し、実際の遠隔メモリアクセスの際には、前記
変換後アドレスを再利用することを特徴とする。
【0023】第15の発明は、複数のプロセッサと物理
的に分散して実装され論理的に該複数のプロセッサから
共有メモリとしてアクセス可能な分散共有メモリとを具
備する並列計算機において対応するプロセッサの該分散
共有メモリに対する遠隔メモリアクセスを制御する遠隔
メモリアクセス制御装置であって、前記対応するプロセ
ッサからの遠隔書き込み要求を検出するアクセス要求検
出手段と、前記遠隔書き込み要求に応答して、対応する
パケットを生成し、所定のプロセッサに向けて送信する
手段と、前記対応するプロセッサ以外のプロセッサから
前記遠隔書き込み要求に対応するパケットを受信する手
段と、前記遠隔書き込み要求に対応するパケットの内容
に応じて、対応するローカルメモリにデータ書き込み処
理を行なう手段と、前記遠隔書き込み要求に対応するパ
ケットに対する前記処理の完了の回数を計数するカウン
タ手段とを備えたことを特徴とする。
【0024】
【作用】第1の発明に係る遠隔メモリアクセス制御装置
では、パケット生成用情報の一部または全部を少なくと
も1つ以上のパケットに対応する分だけ所定のフォーマ
ットに基づいてローカルメモリに格納しておき、そのア
ドレスをポインタ指定手段(パケット生成用情報ポイン
タ指定レジスタ)に設定し、生成するパケットの個数を
パケット数指定手段(パケット数指定レジスタ)に設定
する。その状態まで準備ができたところで、対応する
(外部)プロセッサから遠隔メモリアクセスパケットの
生成を指示する。
【0025】指示を受けた遠隔メモリアクセス制御装置
は、パケット生成用情報ポインタ指定レジスタに設定さ
れたアドレスからローカルメモリ上のパケット生成用情
報を1パケット分読みだし、これを用いて遠隔メモリア
クセスパケットを生成し、パケット生成用情報ポインタ
指定レジスタの値を1パケット分のパケット生成用情報
のデータバイト数だけ進ませ、パケット数指定レジスタ
の値を1つデクリメントする。
【0026】さらに、上記のパケット生成の一連の動作
を、パケット数指定レジスタの値が0になるまで繰り返
す。このようにして、プロセッサからの1回の起動で、
複数の遠隔メモリアクセスパケットが生成されるので、
プロセッサは、遠隔メモリアクセス制御装置を起動した
後は、遠隔メモリアクセスの処理のために忙殺されるこ
となく別の処理を行うことが可能となる。また、パケッ
ト生成用情報は、プロセッサのキャッシュを通過しない
ので、プロセッサのキャッシュのヒット率も向上する。
【0027】第2の発明に係る遠隔メモリアクセス制御
装置では、ローカルメモリに格納されるパケット生成用
情報の格納フォーマットを配列とするので、パケット生
成用情報を次々とローカルメモリから遠隔メモリアクセ
ス制御装置に取り込んでくる際に、アドレスの生成が簡
単であり、例えばリンクドリストを用いてアクセスする
ような場合と比べてアドレス入手のためのメモリアクセ
スが無くなり、パケット生成用情報や遠隔書き込みデー
タの読みだしや、プロセッサのメモリアクセスなどのた
めにローカルメモリのバンド幅を有効に活用できる。
【0028】第3の発明に係る遠隔メモリアクセス制御
装置では、送信側においてパケット生成用情報を一時的
に格納しておくバッファ手段と、書き込みデータを一時
的に格納しておくバッファ手段を具備する。このように
すると、複数パケット分のパケット生成用情報や書き込
みデータが同時に遠隔メモリアクセス制御装置内に存在
することができ、複数パケット分のパケット生成用情報
を読みだした後に複数パケット分の書き込みデータを読
みだしたり、例えばパケット生成手段が1番目のパケッ
トの生成を行いつつ、メモリアクセス手段が4番目のパ
ケットの別のパケットのためのパケット生成用情報を読
みだすというように、パイプライン動作をさせることに
よりパケット生成手段がメモリアクセス手段と同時に動
作できる。よって、短い間隔で遠隔メモリ書き込みパケ
ットを生成することができる。
【0029】遠隔メモリ書き込みパケットは、パケット
生成用情報を一時的に格納しておくバッファ手段と、書
き込みデータを一時的に格納しておくバッファ手段のど
ちらかが空にならない限り、これらを組み合わせて休む
こと無く遠隔メモリ書き込みパケットを生成することが
できる。
【0030】第4の発明に係る遠隔メモリアクセス制御
装置では、連続アクセスが高速なローカルメモリをアク
セスするローカルメモリアクセス手段を具備するので、
パケット生成用情報を一時的に格納しておくバッファ手
段と、書き込みデータを一時的に格納しておくバッファ
手段に複数パケット分のパケット生成用情報や書き込み
データをそれぞれまとめてローカルメモリからロードす
ることを許容するので、連続アクセスによる高い実効メ
モリバンド幅を使いながら各々複数パケット分バッファ
手段に高速に取り込むことができる。
【0031】第5の発明に係る遠隔メモリアクセス制御
装置では、パケットが運ぶべきデータ語数を指定するバ
ースト長指定手段(バースト長指定レジスタ)を具備す
る。遠隔メモリアクセスをプロセッサから起動する前
に、バースト長指定レジスタにパケットが運ぶべきデー
タ語数を設定しておく。パケット生成手段は、上記レジ
スタで指定される語数の読み書きを行う遠隔メモリバー
ストアクセスパケットを生成する。
【0032】このようにして、遠隔メモリアドレスなど
からなる1つのパケットヘッダーに対して、バースト長
で指定されるブロック状のデータが運ばれることになる
ので、常に1語ずつ遠隔メモリアクセスを行うより結合
網やメモリバンド幅が有効に活用されることになる。
【0033】第6の発明に係る遠隔メモリアクセス制御
装置では、ローカルメモリに格納されるパケット生成用
情報としてメモリアドレスの他にパケットが運ぶべきデ
ータ語数を具備する。
【0034】パケット生成手段は、遠隔メモリアクセス
パケットを生成する際に、パケット生成用情報中のパケ
ットが運ぶべきデータ語数(バースト長)を参照しつ
つ、読みだしならば、バースト長をヘッダーに含む遠隔
メモリ読みだし要求パケットを生成し、書き込みなら
ば、ローカルメモリから読みだしたデータをバースト長
の分だけデータ部に含む遠隔メモリ書き込みパケットを
生成する。バースト長は、パケット毎にパケット生成用
情報に含まれるので、アクセス先によって異なるバース
ト長でアクセスすることが可能となる。
【0035】第7の発明に係る遠隔メモリアクセス制御
装置では、パケット生成手段に非特権モードでのプログ
ラムからは特権モードに移行することなく直接制御する
ことが不可能なプロテクション情報付加機構を具備す
る。
【0036】特権モードからはプロテクション情報を書
き換えることができるので、プロセッサがコンテクスト
スイッチして他のユーザーのプロセスに切り替わる時に
オペレーティングシステムがこれからプロセッサや遠隔
メモリアクセス制御装置などの資源を割り当てるプロセ
スIDなどを設定しておき非特権モードでの遠隔メモリ
アクセス時にはパケット生成手段がこの情報をパケット
のヘッダーに埋め込む。つまり非特権モードでローカル
メモリ上のパケット生成用情報を書き換えても、他人の
遠隔メモリに誤って書き込むことは受信側のメモリアク
セス保護機構でパケットヘッダー中のプロテクション情
報をチェックすることによって排除される。
【0037】第8の発明に係る遠隔メモリアクセス制御
装置では、分散共有メモリ型並列計算機において、ベク
トルプロセッサの機能の一部として実現される。まず、
遠隔メモリをアクセスするパケットを生成するためのパ
ケット生成用情報の一部または全部を少なくとも1つ以
上のパケットに対応する分だけ所定のフォーマットに基
づいてローカルメモリに格納しておく。
【0038】次に、ベクトルプロセッサがフェッチした
ベクトルロード命令によってローカルメモリからベクト
ルレジスタにパケット生成用情報のロードを開始する。
次に、生成するパケットの個数に対応する情報をベクト
ル長指定手段(ベクトル長指定レジスタ)に設定した状
態でベクトルプロセッサがフェッチしたベクトル遠隔メ
モリアクセス命令を起動させる。
【0039】こうして、メモリアクセス手段とパケット
生成手段が同時進行でパイプライン動作し、1回のベク
トル遠隔メモリアクセス命令によって次々と遠隔メモリ
アクセスパケットが生成される。メインのプロセッサ
は、遠隔メモリアクセス開始の許可をベクトルプロセッ
サに通知した後は、遠隔メモリアクセスの処理のために
忙殺されることなく別の処理を行うことが可能となる。
また、パケット生成用情報は、メインのプロセッサのキ
ャッシュを通過しないので、メインのプロセッサのキャ
ッシュのヒット率も向上する。
【0040】第9の発明に係る遠隔メモリアクセス制御
装置では、書き込みデータをベクトルレジスタ上にお
く。よってベクトル演算器がある場合は、演算器からの
結果がベクトルレジスタに保持され、それをベクトル遠
隔メモリ書き込み命令のソースオペランドとして指定し
た場合はメモリを経由することなくパケット生成手段に
おいて、別のベクトルレジスタにローカルメモリからロ
ードされるパケット生成用情報と組み合わされて遠隔メ
モリ書き込みパケットが次々と生成される。
【0041】第10の発明に係る遠隔メモリアクセス制
御装置では、ローカルメモリに格納されるパケット生成
用情報の格納フォーマットを配列とする。このため、ベ
クトルロード命令によって簡単かつ高速にベクトルレジ
スタにパケット生成用情報をロードすることができる。
【0042】第11の発明に係る遠隔メモリアクセス制
御装置では、パケットが運ぶべきデータ語数(バースト
長)を指定可能なベクトル命令を具備する。バースト長
の指定は、例えば汎用のスカラレジスタであっても良い
し、専用のレジスタを設けても良く、ここに値を設定し
た状態でベクトル遠隔メモリバーストアクセス命令を起
動する。
【0043】すると、パケット生成手段は、上記レジス
タで指定される語数の読み書きを行う遠隔メモリバース
トアクセスパケットを生成する。このようにして、遠隔
メモリアドレスなどからなる1つのパケットヘッダーに
対して、バースト長で指定されるブロック状のデータが
運ばれることになるので、常に1語ずつ遠隔メモリアク
セスを行うより結合網やメモリバンド幅が有効に活用さ
れることになる。
【0044】第12の発明に係る遠隔メモリアクセス制
御装置では、ローカルメモリに保持され、ベクトルレジ
スタにロードされるパケット生成用情報として、メモリ
アドレスの他にパケットが運ぶべきデータ語数(バース
ト長)を具備する。
【0045】パケット生成手段は、遠隔メモリアクセス
パケットを生成する際にパケット生成用情報中のバース
ト長を参照しつつ、読みだしならば、バースト長をヘッ
ダーに含む遠隔メモリ読みだし要求パケットを生成し、
書き込みならば、ベクトルレジスタ上のデータをバース
ト長の分だけデータ部に含む遠隔メモリ書き込みパケッ
トを生成する。バースト長は、パケット毎にパケット生
成用情報に含まれるので、アクセス先によって異なるバ
ースト長でアクセスすることが可能となる。
【0046】第13の発明に係る遠隔メモリアクセス制
御装置では、パケット生成手段に非特権モードでのプロ
グラムからは特権モードに移行することなく直接制御す
ることが不可能なプロテクション情報付加機構を具備す
る。
【0047】特権モードからはプロテクション情報を書
き換えることができるので、プロセッサがコンテクスト
スイッチして他のユーザーのプロセスに切り替わる時に
オペレーティングシステムがこれからプロセッサや遠隔
メモリアクセス制御装置などの資源を割り当てるプロセ
スIDなどを設定しておき非特権モードでの遠隔メモリ
アクセス時にはパケット生成手段がこの情報をパケット
のヘッダーに埋め込む。
【0048】つまり、非特権モードでローカルメモリ上
のパケット生成用情報を書き換えても、他人の遠隔メモ
リに誤って書き込むことは受信側のメモリアクセス保護
機構でパケットヘッダー中のプロテクション情報をチェ
ックすることによって排除される。
【0049】第14の発明に係る遠隔メモリアクセス装
置では、パケット生成手段に非特権モードでのプログラ
ムからは特権モードに移行することなく直接制御するこ
とが不可能なプロテクション情報付加機構を利用する。
【0050】特権モードからはプロテクション情報を書
き換えることができるので、プロセッサがコンテクスト
スイッチして他のユーザーのプロセスに切り替わる時に
オペレーティングシステムがこれからプロセッサや遠隔
メモリアクセス制御装置などの資源を割り当てるプロセ
スIDなどを設定しておき非特権モードでの遠隔メモリ
アクセス時にはパケット生成手段がこの情報をパケット
のヘッダーに埋め込む。
【0051】遠隔メモリを指定するアドレスは送信側で
システムコールによって変換をかけた変換後アドレスが
ローカルメモリに準備されるので、非特権モードでロー
カルメモリ上の変換後アドレスを書き換えられる危険性
がある。しかし、他人の遠隔メモリに誤って書き込むこ
とは受信側のメモリアクセス保護機構でパケットヘッダ
ー中のプロテクション情報をチェックすることによって
排除される。
【0052】実際の遠隔メモリアクセス時には上記の変
換後アドレスを再利用することによってアドレス変換を
通信実行時に逐一行わなくても良くなるので、送信側に
TLBやシステムコールの多発をなくすことができる。
【0053】遠隔メモリアクセスの場合、送信先のプロ
セッサ番号は遠隔メモリのアドレスの一部を形成するこ
とになるが、これらは通常別のプロセッサならば異なる
TLBエントリを必要とするために、送信側でTLBに
よるアドレス変換が逐一必要な方式では送信先プロセッ
サが多いとTLBミスヒットが連発することになるが、
本発明の場合は通信が多数回繰り返される場合でも、変
換は事前に1回だけ行うに過ぎないので、このような問
題点がない。
【0054】第15の発明に係る遠隔メモリアクセス制
御装置では、受信した遠隔書き込み要求に対する処理の
完了の回数を計数するカウンタを具備する。よって、遠
隔ノードから書き込まれる回数が、書き込まれる側のプ
ログラムでわかっているような処理を行う場合は、遠隔
書き込みに対する応答パケットを返送することなしに、
受信側でカウントされる上記カウンタの値を受信側でチ
ェックし、所定の回数の書き込みパケットの処理が完了
したことを確認してから全体でバリア同期をとることに
よって、遠隔書き込みパケットを送信した側に速やかに
書き込みの完了が伝わるので高速であり、プロセッサ間
結合網に対する負担も軽くなる。
【0055】
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。 (実施例1)最初に、本実施例の主な構成と、その作用
効果について述べる。
【0056】<実施例1の主な構成>本実施例は、物理
的に分散して実装され論理的に複数のプロセッサ(2)
から共有メモリとしてアクセス可能な分散共有メモリ
(3)を具備する並列計算機において、遠隔メモリをア
クセスするパケットを生成するためのパケット生成用情
報の一部または全部を所望の個数のパケットに対応する
分、所定のフォーマットに基づいて遠隔メモリアクセス
制御装置(1)の外部でかつ手元にあるローカルメモリ
(3)に格納しておき、遠隔メモリアクセス制御装置
(1)内部にパケット生成用情報のアドレスを指定する
パケット生成用情報ポインタ指定レジスタ(104)
と、生成するパケット数を指定するパケット数指定レジ
スタ(105)を具備し、外部プロセッサ(2)からの
1回の指示によって所望の個数の遠隔メモリアクセスパ
ケットを生成する。
【0057】<実施例1の主な作用効果>本実施例の遠
隔メモリアクセス制御装置では、パケット生成用情報の
一部または全部を所望の個数のパケットに対応する分だ
け所定のフォーマットに基づいてローカルメモリ(3)
に格納しておき、そのアドレスをパケット生成用情報ポ
インタ指定レジスタ(104)に設定し、生成するパケ
ット数をパケット数指定レジスタ(105)に設定す
る。その状態まで準備ができたところで外部プロセッサ
(2)から遠隔メモリアクセスパケットの生成を指示す
る。
【0058】指示を受けた遠隔メモリアクセス制御装置
(1)は、パケット生成用情報ポインタ指定レジスタ
(104)に設定されたアドレスからローカルメモリ
(3)上のパケット生成用情報を1パケット分読みだ
し、これを用いて遠隔メモリアクセスパケットを生成
し、パケット生成用情報ポインタ指定レジスタ(10
4)の値を1パケット分のパケット生成用情報のデータ
バイト数だけ進ませ、パケット数指定レジスタ(10
5)の値を1つデクリメントする。
【0059】上記のパケット生成の一連の動作を、パケ
ット数指定レジスタの値が0になるまで繰り返す。この
ようにして、外部プロセッサ(2)からの1回の起動
で、複数の遠隔メモリアクセスパケットが生成されるの
で、外部プロセッサ(2)は遠隔メモリアクセス制御装
置(1)を起動した後は遠隔メモリアクセスの処理のた
めに忙殺されることなく別の処理を行うことが可能とな
る。また、パケット生成用情報は、外部プロセッサ
(2)のキャッシュ(31)を通過しないので、外部プ
ロセッサ(2)のキャッシュ(31)のヒット率も向上
する。
【0060】以下、さらに具体的に本実施例を説明す
る。 <実施例1の具体的説明>図1および図2は、本実施例
の遠隔メモリアクセス制御装置を具備した並列計算機の
要素プロセッサ(PE)を示す図である。
【0061】並列計算機は、プロセッサ間結合網により
複数の要素プロセッサを相互接続することにより実現さ
れる。本実施例では、要素プロセッサの相互接続方式は
任意とする。
【0062】図のように、各要素プロセッサでは、遠隔
メモリアクセス制御装置1、マイクロプロセッサ2およ
びローカルメモリ3が、外部バス4により接続されてい
る。プロセッサ間結合網には、遠隔メモリアクセス制御
装置1が直接接続される。本実施例では、各要素プロセ
ッサのローカルメモリ3を分散共有メモリとして使うこ
ととする。
【0063】マイクロプロセッサ2は、CPU33に加
えて、近年の一般的なマイクロプロセッサのように、キ
ャッシュメモリ31およびアドレス変換用のTLB32
を備えるものとする。キャッシュメモリ31は、過去の
メモリアクセスデータを記憶して、それにヒットするメ
モリアクセスはローカルメモリ3や遠隔メモリ(図示せ
ず)にアクセスに行かないことにより性能向上に寄与す
る。TLB32は、ローカルメモリ3上のページテーブ
ルをキャッシングすることにより、TLB32がヒット
している間はオーバーヘッドなしにアドレス変換が行わ
れる。よって、これらはアクセスの局所性のある場合効
果を発揮する。
【0064】ところで、従来の分散共有メモリ型並列計
算機においては、プロセッサ間通信をメモリアクセスの
形で実現しており、アクセスの局所性のある場合に効果
を発揮する仕組みを使って、アクセスの局所性の薄い処
理であるプロセッサ間通信を実現しているために、遠隔
メモリアクセスのために用いられるアドレス情報のキャ
ッシュの通過によるキャッシュのミスヒットの増加や、
遠隔メモリアクセスのために用いられる遠隔プロセッサ
毎に異なるエントリを用いることに起因するアクセス先
のプロセッサ数が多い場合のTLBミスヒットの増加と
いった弊害を生じていた。
【0065】本実施例ではそのような弊害を解消するた
めに、遠隔メモリアクセス制御装置1を、マイクロプロ
セッサ2からのメモリアクセスを監視する形でアクセス
ごとに起動されるようにするとともに、マイクロプロセ
ッサ2とは起動時以外は独立した形態で動作するように
して、プロセッサ間通信すなわち遠隔メモリアクセスを
実現している。
【0066】図1および図2のように、遠隔メモリアク
セス制御装置1は、パケット生成部100、バスインタ
フェース部101、メモリアドレス生成部102、制御
装置内TLB103、パケット生成用情報ポインタ指定
レジスタ104、パケット数指定レジスタ105、パケ
ットデータ部ポインタ指定レジスタ106、バースト長
指定レジスタ107、プロセスID指定レジスタ10
8、パケット生成用情報バッファ109、送信パケット
データ部バッファ110、送信パケットバッファ11
1、受信パケットバッファ112、パケット受信部11
3、応答待ち読み出し要求数カウンタ114、応答待ち
書き込み要求数カウンタ115、受信書き込み処理完了
回数カウンタ116、プロセッサ間結合網インタフェー
ス部117、返信パケットバッファ121、ステータス
レジスタ122を具備する。
【0067】この遠隔メモリアクセス制御装置1は、バ
スインタフェース部101により外部バス4に接続され
ており、これらを介して、遠隔メモリアクセス制御装置
1の内部構成要素とマイクロプロセッサ2やローカルメ
モリ3の間で情報の転送が行なわれる。
【0068】制御装置内TLB103、パケット生成用
情報ポインタ指定レジスタ104、パケット数指定レジ
スタ105、パケットデータ部ポインタ指定レジスタ1
06、バースト長指定レジスタ107、プロセスID指
定レジスタ108は、マイクロプロセッサ2のメモリ空
間上にマップされるなどしてアクセスされる。
【0069】ここで、好ましくは、パケット生成部(1
00)に非特権モードでのプログラムからは特権モード
に移行することなく直接制御することが不可能なプロテ
クション情報付加機構を設け、遠隔メモリアクセスパケ
ットを受信する側にパケット中のプロテクション情報に
基づいてメモリアクセスの許可不許可を制御するメモリ
アクセス保護機構を設けても良い。特権モードからはプ
ロテクション情報を書き換えることができるので、プロ
セッサ(2)がコンテクストスイッチして他のユーザー
のプロセスに切り替わる時にオペレーティングシステム
がこれから外部プロセッサや遠隔メモリアクセス制御装
置などの資源を割り当てるプロセスIDなどを設定して
おき、非特権モードでの遠隔メモリアクセス時にはパケ
ット生成部(100)がこの情報をパケットのヘッダー
に埋め込む。つまり、非特権モードでローカルメモリ
(3)上のパケット生成用情報を書き換えても、他人の
遠隔メモリに誤って書き込むことは、受信側のメモリア
クセス保護機構でパケットヘッダー中のプロテクション
情報をチェックすることによって排除されるという利点
がある。
【0070】本実施例では、上記のような機構を採用す
ることとし、制御装置内TLB103とプロセスID指
定レジスタ108は、マイクロプロセッサ2の特権モー
ドでしかアクセスできない領域にマップされるようにす
る。
【0071】制御装置内TLB103には、メモリアド
レス生成部102が発生するメモリアクセス時のアドレ
ス変換に用いられる物理アドレスと論理アドレスの組の
他に、TLB32のエントリ毎に付けられたプロセスI
Dを保持する。その実体はローカルメモリ3の特権モー
ドでしかアクセスできない領域に上にあり、TLB32
にはその情報がキャッシングされる。なお、ここでいう
プロセスとは仮想アドレス空間を割り当てる単位であ
り、複数のプロセッサにまたがって同一のプロセスID
を使用する複数のスレッドが存在する。
【0072】プロセスID指定レジスタ108には、遠
隔メモリアクセス制御装置1を割り当てられているプロ
セスIDが保持され、パケット生成部100で生成され
るパケットのヘッダーには、プロセスID指定レジスタ
108上のプロセスIDが埋め込まれる。このように、
制御装置内TLB103とプロセスID指定レジスタ1
08は、プロテクション情報を保持し、不正なメモリア
クセスを防止するための機構であるために、ユーザーモ
ードからは直接アクセスはさせないようにする。
【0073】一方、通信の際にOSを介さずユーザーモ
ードで処理することができれば、トラップによるコンテ
クストスイッチに伴う大きなオーバーヘッドを回避する
ことができるので、パケット生成用情報ポインタ指定レ
ジスタ104、パケット数指定レジスタ105、パケッ
トデータ部ポインタ指定レジスタ106、バースト長指
定レジスタ107は、ユーザーモードから直接アクセス
できるメモリ空間にマップすることが望ましい。
【0074】ここで、好ましくは、ローカルメモリ
(3)に格納されるパケット生成用情報の格納フォーマ
ットを配列とすると良い。そのようにした場合、パケッ
ト生成用情報を次々とローカルメモリ3から遠隔メモリ
アクセス制御装置1に取り込んでくる際に、アドレスの
生成が簡単であり、例えばリンクドリストを用いてアク
セスするような場合と比べてアドレス入手のためのメモ
リアクセスが無くなり、パケット生成用情報や遠隔書き
込みデータの読みだしや、外部プロセッサのメモリアク
セスなどのためにローカルメモリのバンド幅を有効に活
用できる。
【0075】本実施例では、ローカルメモリ3に格納さ
れるパケット生成用情報の格納フォーマットを配列とす
る。本実施例の遠隔メモリアクセス制御装置によるプロ
セッサ間通信を行う場合には、パケット数nはパケット
数指定レジスタ105に設定され、n個のパケットのヘ
ッダー情報を生成するために必要なパケット生成用情報
がパケット生成用情報ポインタ指定レジスタ104に設
定されたローカルメモリ3上に準備される。本実施例で
は、パケット生成用情報の格納フォーマットを配列とし
たので、パケット生成用情報は、ローカルメモリ3上の
論理的に連続した領域上に準備される。
【0076】ヘッダー情報には、プロセッサ間結合網に
おけるルーティング情報となる遠隔ノードを識別する実
アドレスや、遠隔ノード内のローカルメモリにおけるア
ドレスが必要となり、遠隔読み出しやアクノリッジ付き
の遠隔書き込みの場合はさらに読み出したデータやアク
ノリッジを返送すべきノードの実アドレスやノード内ア
ドレスが必要となる。
【0077】遠隔書き込みを行う場合は、ローカルメモ
リ3上に書き込むべきデータを準備する。ここでは、送
信パケット毎にバースト長L語のデータを持つものと
し、1回の起動によりn個の送信パケットが生成される
ものとする。
【0078】ここで、好ましくは、パケットが運ぶべき
データ語数を指定するバースト長指定レジスタ(10
7)を設け、遠隔メモリアクセスを外部プロセッサ
(2)から起動する前にバースト長指定レジスタ(10
7)にパケットが運ぶべきデータ語数を設定しておき、
パケット生成部(100)は、バースト長指定レジスタ
(107)で指定される語数の読み書きを行う遠隔メモ
リバーストアクセスパケットを生成するようにしても良
い。バースト長指定レジスタ107を具備せず、Lを設
定できない構成の場合は、1語しかデータ部を持つこと
ができなくなるのでパケットのプロセッサ間結合網上で
の伝送効率が低下するが、上記のようにすれば、遠隔メ
モリアドレスなどからなる1つのパケットヘッダーに対
して、バースト長で指定されるブロック状のデータが運
ばれることになるので、常に1語ずつ遠隔メモリアクセ
スを行うより、結合網やメモリバンド幅が有効に活用さ
れることになる。
【0079】本実施例では、バースト長指定レジスタ1
07を具備することとし、バースト長指定レジスタ10
7にLが設定される。書き込むべきデータは、L×nの
二次元配列として論理的に連続した領域に格納される。
この二次元配列の先頭アドレスを、パケットデータ部ポ
インタ指定レジスタ106に設定する。
【0080】さて、遠隔メモリアクセスの起動は、本実
施例では、マイクロプロセッサ2からユーザーモードの
まま起動用のアドレスをアクセスすることにより行う。
通信実行時のユーザーモードからの遠隔メモリアクセス
の起動は、ユーザー空間上の起動用アドレスを実際の物
理起動アドレスにマップしてもらうように事前にOSに
1回だけ依頼することによって実現される。
【0081】本実施例では、遠隔メモリアクセスの起動
用アドレスは、遠隔読み出し起動用とアクノリッジなし
遠隔書き込み起動用とアクノリッジ付きの遠隔書き込み
起動用の3種類があるものとする。
【0082】バスインタフェース部101が起動用のア
ドレスへのアクセスを検知すると、メモリアドレス生成
部102内の残りパケット数カウンタにパケット数指定
レジスタ105の値がコピーされ、メモリアドレス生成
部102は、パケット生成用情報ポインタ指定レジスタ
104、書き込みの場合のパケットデータ部ポインタ指
定レジスタ106およびバースト長指定レジスタ107
上の情報を基に、ローカルメモリ3のアクセス要求の生
成を開始する。
【0083】パケット生成用情報ポインタは、論理アド
レスで指定されており、その論理アドレスを制御装置内
TLB103により変換した物理メモリアドレスで指定
されるローカルメモリ3をアクセスして、パケット生成
用情報バッファ109にパケット生成用情報をロードす
る。このとき、本実施例では、ローカルメモリ3に格納
されるパケット生成用情報の格納フォーマットを配列と
しているので、パケット生成用情報は論理的に連続した
領域に格納されるため、リンクドリストをたどる場合の
ようにアドレスの生成のために再びメモリアクセスをし
なくても、簡単なカウンターによって容易にかつ高速に
アドレスを生成することが可能である。
【0084】同様に、パケットデータ部ポインタは、論
理アドレスで指定されており、遠隔メモリ書き込みが起
動された場合は、その論理アドレスを制御装置内TLB
103により変換した物理メモリアドレスで指定される
ローカルメモリ3をアクセスして、送信パケットデータ
部バッファ110に送信パケットデータ部をロードす
る。
【0085】このとき、書き込むべきデータは、L×n
の二次元配列として論理的に連続した領域に格納される
ため、リンクドリストをたどる場合のようにアドレスの
生成のために再びメモリアクセスをしなくても、簡単な
カウンターによって容易にかつ高速にアドレスを生成す
ることが可能である。
【0086】ここで、好ましくは、送信側においてパケ
ット生成用情報を一時的に格納しておくバッファ(10
9)と、書き込みデータを一時的に格納しておくバッフ
ァ(110)を設け、ローカルメモリ(3)から上記バ
ッファに取り込むローカルメモリアクセス部と、対応す
るパケット生成用情報と書き込みデータの組がそろった
ものから遠隔メモリ書き込みパケットを生成するパケッ
ト生成部(100)が、パイプライン的に同時動作をす
るようにしても良い。このようにすると、複数パケット
分のパケット生成用情報や書き込みデータが同時に遠隔
メモリアクセス制御装置(1)内に存在することがで
き、複数パケット分のパケット生成用情報を読みだした
後に複数パケット分の書き込みデータを読みだしたり、
例えばパケット生成部(100)が1番目のパケットの
生成を行いつつ、メモリアクセス部が4番目のパケット
のためのパケット生成用情報を読みだすというように、
パイプライン動作をさせることによりパケット生成部
(100)がメモリアクセス部と同時に動作できる。よ
って、短い間隔で遠隔メモリ書き込みパケットを生成す
ることができる。遠隔メモリ書き込みパケットは、パケ
ット生成用情報を一時的に格納しておくバッファと、書
き込みデータを一時的に格納しておくバッファのどちら
かが空にならない限り、これらを組み合わせて休むこと
無く遠隔メモリ書き込みパケットを生成することができ
る。
【0087】また、好ましくは、上記のようなパイプラ
イン動作を可能とする仕組みにおいて、前記ローカルメ
モリアクセス部は、ローカルメモリを高速に連続アクセ
スするようにし、パケット生成用情報や書き込みデータ
を上記ローカルメモリから連続アクセスによって各々複
数パケット分バッファに取り込むようにしても良い。こ
の場合、パケット生成用情報を一時的に格納しておくバ
ッファ(109)と、書き込みデータを一時的に格納し
ておくバッファ(110)が、複数パケット分のパケッ
ト生成用情報や書き込みデータをそれぞれまとめてロー
カルメモリ(3)からロードすることを許容するので、
連続アクセスによる高い実効メモリバンド幅を使いなが
ら各々複数パケット分バッファに高速に取り込むことが
できる。
【0088】図3は、ローカルメモリ3に格納されるパ
ケット生成用情報の格納フォーマットを配列とし、か
つ、ローカルメモリ3に対するアクセスとパケット生成
をパイプライン動作できるようにした場合の、パケット
送信時のパイプライン動作を示す図である。配列のアド
レス発生に1クロック、1ワードのメモリアクセスに3
クロック、ヘッダー部1ワードでデータ部1ワードのパ
ケット生成に2クロックかかるものとして図示してい
る。
【0089】本実施例では、パケット生成部100は、
上記のアドレス発生動作やメモリアクセス動作に並行し
て動作する。この例では、パイプラインのボトルネック
となっているステージは、メモリアクセスのステージで
あり、1パケットを作るために2回のメモリアクセスが
必要なことから6クロックに1パケットの割合でパケッ
トを生成している。
【0090】図4は、ローカルメモリ3に格納されるパ
ケット生成用情報の格納フォーマットを配列とし、ロー
カルメモリ3に対するアクセスとパケット生成をパイプ
ライン動作できるようにし、さらに、ローカルメモリ3
に連続アクセスする場合の、パケット送信時のパイプラ
イン動作を示す図である。配列のアドレス発生に1クロ
ック、ランダムメモリアクセスの遅延が2クロック、以
降連続アクセス時のメモリ読み出し転送レートが1ワー
ドあたり1クロック、ヘッダー部1ワードでデータ部1
ワードのパケット生成に2クロックかかるものとして図
示している。
【0091】メモリとしてニブルモードやページモード
を持ったDRAMや同期DRAMを使用した場合は、連
続アクセスを行うとメモリバンド幅が向上する。複数パ
ケット分のヘッダー(パケット生成情報)や複数パケッ
ト分のデータ部をブロック状にアクセスすることによっ
てメモリバンド幅が向上し、例えば4パケット分を一塊
として動作させると12クロックに4パケット生成でき
るので、図3の場合の2倍のレートでパケットを生成す
ることが可能となっている。
【0092】ここで、メモリアドレス生成部102は、
バッファ109,110に受けきれないほどロード要求
を出しすぎると、データを受けられる状態になるまでロ
ーカルメモリ3をアクセスする外部バス4を長期間待た
したまま占有し、パケットの受信やマイクロプロセッサ
2によるメモリアクセスを遅延させてしまうので、パケ
ット生成用情報バッファ109や送信パケットデータ部
バッファ110の残り容量を考慮しながらローカルメモ
リ3への読み出し要求を発生することが望ましい。
【0093】本実施例において、遠隔読み出しが起動さ
れた場合は、パケット生成部100内の残りパケット数
カウンタにパケット数指定レジスタ105の値がコピー
され、パケット生成部100は、パケット生成用情報バ
ッファ109にデータが存在し、生成したパケット数が
パケット数指定レジスタ105の遠隔読み出しが起動さ
れた時点での値に達する(残りパケット数カウンタが0
になる)まで、プロセスID指定レジスタ108上の値
とバースト長指定レジスタ107上の値をパケットヘッ
ダーに組み込みながらパケットを生成する。
【0094】図5は、遠隔読み出し要求パケットの例を
示した図である。(a)に示すように、ヘッダーの第一
ワードのパケットタイプフィールドには、遠隔読み出し
要求を示すコードが記入され、プロセスID、バースト
長、パケット生成用情報から得られるデスティネーショ
ン物理PE番号、デスティネーションPE内論理メモリ
アドレスにより残りのフィールドは構成される。(b)
に示すように、第二ワードには、レスポンスパケット生
成用に自分の物理PE番号と、パケット生成用情報から
得られるレスポンスデータ書き込み先PE内論理メモリ
アドレスが記入される。
【0095】パケット生成部100は、上記のようなパ
ケットを、(必要に応じて送信パケットバッファ111
を介して、)プロセッサ間結合網インタフェース117
に渡し、パケット生成部100内の残り生成パケット数
カウンタをデクリメントし、応答待ち読み出し要求数カ
ウンタ114をインクリメントする。残り生成パケット
数カウンタが0になると、パケット生成部100はステ
ータスレジスタ122のパケット生成完了を通知するビ
ットを立てる。
【0096】一方、遠隔書き込みが起動された場合は、
パケット生成部100内の残り生成パケット数カウンタ
にパケット数指定レジスタ105の値がコピーされ、パ
ケット生成部100はパケット生成用情報バッファ10
9と送信パケットデータ部バッファ110の双方にデー
タが存在し、生成したパケット数がパケット数指定レジ
スタ105の遠隔読み出しが起動された時点での値に達
する(残り生成パケット数カウンタが0になる)まで、
プロセスID指定レジスタ108上の値とバースト長指
定レジスタ107上の値ををパケットヘッダーに組み込
みながら送信パケットデータ部を付加してパケットを生
成する。
【0097】図6は、アクノリッジ付きの遠隔書き込み
要求パケットヘッダーの例を示した図である。(a)に
示すように、ヘッダーの第一ワードのパケットタイプフ
ィールドには、アクノリッジ付きの遠隔書き込み要求を
示すコードが記入され、プロセスID、バースト長、パ
ケット生成用情報から得られるデスティネーション物理
PE番号、デスティネーションPE内論理メモリアドレ
スにより残りのフィールドは構成される。(b)に示す
ように、第二ワードには、レスポンスパケット生成用に
自分の物理PE番号が記入される。
【0098】図7は、アクノリッジなしの遠隔書き込み
要求パケットヘッダーの例を示した図である。パケット
タイプフィールドには、アクノリッジなしの遠隔書き込
み要求を示すコードが記入され、プロセスID、バース
ト長、パケット生成用情報から得られるデスティネーシ
ョン物理PE番号、デスティネーションPE内論理メモ
リアドレスにより残りのフィールドは構成される。
【0099】パケット生成部100は、上記のようなパ
ケットヘッダーを付加したパケットをプロセッサ間結合
網インタフェース117に渡し、パケット生成部100
内の残り生成パケット数カウンタをデクリメントする。
ここで、アクノリッジ付きの遠隔書き込みであった場合
は、さらに応答待ち書き込み要求数カウンタ115をイ
ンクリメントする。残り生成パケット数カウンタが0に
なると、パケット生成部100はステータスレジスタ1
22のパケット生成完了を通知するビットを立てる。
【0100】以上のように本実施例では、バッファへの
ローカルメモリ3上のデータのロードをするステージ
と、パケットを生成するステージがパイプライン的に同
時動作する。よって、ローカルメモリアクセスとパケッ
ト生成が逐時に行われる方式に比べて高いレートでパケ
ットを生成することが可能となる。
【0101】次に、受信について説明する。パケット受
信部113は、受信パケットバッファ112を介してプ
ロセッサ間結合網から種々のパケットを受信し、それぞ
れに応じた動作を行う。例えば、受信するパケットのう
ち3種は既に述べた遠隔読み出し要求パケット、アクノ
リッジ付き遠隔書き込み要求パケット、アクノリッジな
し遠隔書き込み要求パケットである。その他に、遠隔読
み出し応答パケット、遠隔書き込み応答パケットの2種
類がある。
【0102】以下、この5種類それぞれについて説明す
る。パケット受信部113が遠隔読み出し要求パケット
を受信した場合は、メモリアドレス生成部102に、パ
ケットヘッダー内に存在するプロセスID、バースト長
および読み出し先頭アドレス(仮想アドレス)を渡し、
パケット生成部100に、プロセスID、応答を返送す
べきノードのアドレス(ソース物理PE番号)および応
答データ書き込み先PE内論理メモリアドレスを渡す。
【0103】メモリアドレス生成部102は、制御装置
内TLB103を用いてプロセスIDによるアクセス権
限チェックを行った後、読み出し先頭アドレスの物理ア
ドレスを生成し、バスインタフェース部101を介して
ローカルメモリ3からデータを読み出し、返信パケット
データ部バッファ121に格納する。
【0104】パケット生成部100は、パケット受信部
113から受け取ったプロセスID、ソース物理PE番
号および応答データ書き込み先PE内論理メモリアドレ
スからヘッダーを生成しつつ、返信パケットデータ部バ
ッファ121にデータが入ったらヘッダーとあわせてパ
ケットとし、プロセッサ間結合網インタフェース部11
7に渡す。
【0105】パケット受信部113がアクノリッジなし
遠隔書き込み要求パケットを受信した場合は、メモリア
ドレス生成部102に、パケットヘッダー内に存在する
プロセスID、バースト長と書き込み先頭アドレス(仮
想アドレス)および書き込みデータを渡す。
【0106】メモリアドレス生成部102は、制御装置
内TLB103を用いてプロセスIDによるアクセス権
限チェックと書き込み先頭アドレスの物理アドレスを生
成し、バスインタフェース部101を介してローカルメ
モリ3に、書き込みデータを書き込む。
【0107】ここで、好ましくは、受信した遠隔書き込
み要求に対する処理の完了の回数を計数するカウンタを
設けても良い。遠隔ノードから書き込まれる回数が、書
き込まれる側のプログラムでわかっているような処理を
行う場合は、遠隔書き込みに対する応答パケットを返送
することなしに、受信側でカウントされる上記カウンタ
の値を受信側でチェックし、所定の回数の書き込みパケ
ットの処理が完了したことを確認してから全体でバリア
同期をとることによって、遠隔書き込みパケットを送信
した側に速やかに書き込みの完了が伝わるので高速であ
り、プロセッサ間結合網に対する負担も軽くなる。
【0108】本実施例では、受信書き込み処理完了回数
カウンタ116を具備することとしており、これが動作
状態にある場合は、バスインタフェース部101が受信
した遠隔書き込み要求に伴うローカルメモリへ3の書き
込みを完了するたびに受信書き込み処理完了回数カウン
タ116はデクリメントされる。このカウンタ116の
初期化は、受信書き込み処理を一時停止させた状態で予
めマイクロプロセッサ2から予想される遠隔書き込み回
数をセットしておき、受信書き込み処理の一時停止を解
除し、受信書き込み処理完了回数カウンタ116を動作
状態にして遠隔書き込み要求パケットの到着を待機す
る。そこに設定された回数だけ受信書き込み処理が完了
すると、受信書き込み処理完了回数カウンタ116は0
となり、ステータスレジスタ122に指定回数に達した
旨が反映される。マイクロプロセッサ2は、この値をポ
ーリングするか、割り込みをかけてもらうことにより受
け取るべきデータを自PEが全て受け取ったことを認識
し、全PEがそのような状態になった場合に次のフェー
ズに進むべき場合はそこでバリア同期をかけることによ
り、書き込みに関する応答パケットなしに書き込み完了
の同期を高速にとることが可能となる。
【0109】パケット受信部113がアクノリッジあり
遠隔書き込み要求パケットを受信した場合は、メモリア
ドレス生成部102に、パケットヘッダー内に存在する
プロセスID、バースト長と書き込み先頭アドレス(仮
想アドレス)および書き込みデータを渡し、一方、パケ
ット生成部100に、プロセスIDおよび応答を返送す
べきノードのアドレス(ソース物理PE番号)を渡す。
【0110】メモリアドレス生成部102は、制御装置
内TLB103を用いてプロセスIDによるアクセス権
限チェックと書き込み先頭アドレスの物理アドレスを生
成し、バスインタフェース部101を介してローカルメ
モリ3に書き込みデータを書き込み、書き込みが完了し
たところでパケット生成部100にアクノリッジパケッ
トの送信を指示する。
【0111】パケット生成部100は、パケット受信部
113から受け取ったプロセスIDとソース物理PE番
号から遠隔書き込みアクノリッジパケットを生成し、プ
ロセッサ間結合網インタフェース部117に渡す。
【0112】パケット受信部113が遠隔読み出し応答
パケットを受信した場合は、アクノリッジなし遠隔書き
込み要求パケットと概ね同じ動作をし、応答待ち書き込
み要求数カウンタ115のかわりに応答待ち読み出し要
求数カウンタ114をデクリメントする。応答待ち読み
出し要求カウンタ114が0になったらステータスレジ
スタ122の遠隔読み出し動作の完了を示すビットを立
てる。
【0113】なお、パケットヘッダー内に存在するプロ
セスIDと、プロセスID指定レジスタ108の値を比
較して、一致しなかった場合は、アクノリッジが戻って
くる前にコンテクストスイッチが起こってしまって、デ
クリメントすべき応答待ち読み出し要求数カウンタ11
4はローカルメモリ3上に退避されているので、外部マ
イクロプロセッサ2に割り込みをかけてOSに対して退
避済みのプロセスに対する遠隔書き込み応答パケットを
受信したことを通知する。OSはローカルメモリ3上に
退避された対応する応答待ち読み出し要求数カウンタ1
14をデクリメントしてコンテクストを割り込み前の状
態に戻す。
【0114】パケット受信部113が遠隔書き込み応答
パケットを受信した場合は、パケットヘッダー内に存在
するプロセスIDと、プロセスID設定レジスタの値を
比較して、一致した場合は応答待ち書き込み要求数カウ
ンタ115をデクリメントする。応答待ち書き込み要求
数カウンタ115が0になったらステータスレジスタ1
22のアクノリッジ付き遠隔書き込み動作の完了を示す
ビットを立てる。
【0115】なお、パケットヘッダー内に存在するプロ
セスIDと、プロセスID設定レジスタの値を比較して
一致しなかった場合は、アクノリッジが戻ってくる前に
コンテクストスイッチが起こってしまって、デクリメン
トすべき応答待ち書き込み要求数カウンタ115は、ロ
ーカルメモリ3上に退避されているので、外部マイクロ
プロセッサ2に割り込みをかけてOSに対して退避済み
のプロセスに対する遠隔書き込み応答パケットを受信し
たことを通知する。OSはローカルメモリ3上に退避さ
れた対応する応答待ち書き込み要求数カウンタ115を
デクリメントしてコンテクストを割り込み前の状態に戻
す。
【0116】次に、並列計算機上での本実施例の遠隔メ
モリアクセス制御装置の使用例を説明する。図8は、8
×9=72個の要素プロセッサ(PE)を具備した二次
元メッシュ結合型並列計算機における複数のユーザーの
ジョブ混在と故障PEの代替を有するマッピング状況の
例を示した図である。PE0〜PE31はプロセス1に
割り当てられるが、4×4の論理PEを割り当てようと
したときにPE46が故障しているため、PE36〜P
E39、PE44、PE45、PE47、PE52〜P
E55、PE60〜PE63、PE70がプロセス2に
割り当てられている。
【0117】図9は、プロセス2の論理的なPE群を示
した図である。括弧の中の数字は物理PE番号で括弧の
外の番号は論理PE番号である。論理PE番号は0〜1
5まで連続しているが、対応する物理PE番号はプロセ
ス2のように割り当てられる位置や故障PEの存在によ
り必ずしも連続しない。
【0118】図10は、プロセス2のアドレス変換の様
子を示した図である。プロセス2の送信側PEにおける
仮想アドレス(ローカル論理アドレスと呼ぶ)では、各
PE上に分散配置されたメモリが論理的に連続した領域
にマッピングされている。
【0119】しかし、図8に示されるように物理PE番
号は必ずしも連続していないために、図10のようにP
Eアドレス部のみを物理アドレスとしたメモリ空間(グ
ローバル中間アドレス)においては不規則的にとびとび
の物理PE番号に対応した不規則的にとびとびのメモリ
領域にローカル論理アドレスは変換され、結合網上を行
き交うパケットの中のヘッダー情報の一部として取り扱
われる。結合網は、パケットヘッダー中の物理PE番号
をもとにメッセージのルーティングを行う。
【0120】各PE上で時分割的にマルチユーザー運用
を行っていたり、ローカルに実装されている半導体メモ
リ以上のメモリが存在するように見せかけるために仮想
記憶をローカルに行う場合は、さらにグローバル中間ア
ドレス中のPEアドレス部を除いたビットとして表現さ
れるPE内メモリアドレスが、受信側PE上でPE内論
理メモリアドレスからPE内物理メモリアドレスに変換
される。
【0121】本実施例では、この変換は、受信側の制御
装置内TLBを用いて実現される。受信側でのアドレス
変換は、手元のメモリに対するアドレス変換であるので
局所性が利用でき、TLBが効果的である。
【0122】一方、どの物理PE番号が大域的共有メモ
リ空間上にマップされているのかということは、ユーザ
ーは直接知らずにローカル論理アドレス空間上でプログ
ラミングすべきであるし、ジョブへのプロセッサの割当
が行われる実行時にOSが管理すべき情報でありアドレ
スの変換が必要になるが、このアドレス変換は例えば全
PE間で小量の別々のデータを互いに交換しあう全対全
通信(all toall personalized
communication)を行うような場合は、
頻繁に論理PE番号も変化するようなアクセスとなるた
め、TLBのエントリ数が通信する相手PE数より少な
いとTLBがミスヒットの連続となり逆効果となる。
【0123】図11は、16×16の正方行列A,Bを
16個のPEで列方向に分割し1列ずつ保持させたとこ
ろから行列Aの転置行列Bを生成する際にPE2が行う
べき通信パターンを示した図である。PE2に保持され
たA(k,2)はそれぞれB(2,k)に代入される。
ここでkは0〜15の整数である。B(2,k)は16
個のPEに分割されているので、この代入操作は全て異
なるPEへの通信となる。同様な通信が他の全てのPE
においても発生するので、この処理は全対全通信とな
る。この例のように割り当てられたPE数が16程度で
あれば通常のマイクロプロセッサ内部のTLBのエント
リ数より少ないので全対全通信を行ってもTLBは効果
が期待できるが、数百以上のPEを持つ高並列計算機や
超並列計算機上で百以上のPEを用いたプロセスにおい
て全対全通信を繰り返し行う場合を想定すると、マイク
ロプロセッサ内部のTLBのように数十程度に限定され
た個数のエントリしか持たないTLBを用いてPEアド
レスを論理PEアドレスから物理PEアドレスに変換す
る方式は、TLBのエントリは再利用されずにTLBミ
スヒットを連発してしまう。
【0124】そこで、好ましくは、パケット生成部(1
00)に非特権モードでのプログラムからは特権モード
に移行することなく直接制御することが不可能なプロテ
クション情報付加機構を設け、遠隔メモリアクセスパケ
ットを受信する側にパケット中のプロテクション情報に
基づいてメモリアクセスの許可不許可を制御するメモリ
アクセス保護機構を設けるとともに、遠隔メモリを指定
するアドレスとして送信側でシステムコールによって変
換をかけた変換後アドレスをローカルメモリ(3)に準
備し、実際の遠隔メモリアクセス時には上記の変換後ア
ドレスを再利用するようにしても良い。
【0125】すなわち、特権モードからはプロテクショ
ン情報を書き換えることができるので、プロセッサがコ
ンテクストスイッチして他のユーザーのプロセスに切り
替わる時にオペレーティングシステムがこれから外部プ
ロセッサ(2)や遠隔メモリアクセス制御装置(1)な
どの資源を割り当てるプロセスIDなどを設定しておき
非特権モードでの遠隔メモリアクセス時にはパケット生
成部がこの情報をパケットのヘッダーに埋め込む。
【0126】遠隔メモリを指定するアドレスは送信側で
システムコールによって変換をかけた変換後アドレスが
ローカルメモリ(3)に準備されるので、非特権モード
でローカルメモリ(3)上の変換後アドレスを書き換え
られる危険性がある。しかし、他人の遠隔メモリに誤っ
て書き込むことは受信側のメモリアクセス保護機構でパ
ケットヘッダー中のプロテクション情報をチェックする
ことによって排除される。
【0127】実際の遠隔メモリアクセス時には、上記の
変換後アドレスを再利用することによってアドレス変換
を通信実行時に逐一行わなくても良くなるので、送信側
にTLBやシステムコールの多発をなくすことができ
る。
【0128】遠隔メモリアクセスの場合、送信先のプロ
セッサ番号は遠隔メモリのアドレスの一部を形成するこ
とになるが、これらは通常別のプロセッサならば異なる
TLBエントリを必要とするために、送信側でTLBに
よるアドレス変換が逐一必要な方式では送信先プロセッ
サが多いとTLBミスヒットが連発することになるが、
上記のようにすれば、通信が多数回繰り返される場合で
も、変換は事前に1回だけ行うに過ぎないので、このよ
うな問題点がない。
【0129】本実施例では、このように、通信を始める
前に1回だけOSをコールし、アクセスを行いたい大域
的共有メモリアドレス(ローカル論理アドレス)を、実
ノードを識別できるアドレス(グローバル中間アドレ
ス)に変換してもらい、その情報を基に得られるパケッ
ト生成用情報をローカルメモリ3上に格納しておき、そ
の情報を再利用すると効果的である。なぜなら、FFT
や行列転置などの科学技術計算にはしばしば用いられる
ように、アクセス先が動的に変動せず決まったアクセス
先に何度もループでアクセスが繰り返される場合は、遠
隔メモリアクセスの際にマイクロプロセッサ内部のTL
Bは一切使わずにすませつつ、パケット送信時には制御
装置内TLBを遠隔メモリアドレスの変換のために使う
ことなく、遠隔メモリアクセス実行時にトラップを起こ
すことなしに、異なるプロセッサ上に配置された異なる
ページに属する多くの遠隔アクセス先に遠隔メモリアク
セスパケットを生成することが可能となるためである。
【0130】図12は、PE2における図11に示した
行列転置の際のアドレス変換前の書き込み先ポインタの
配列を示した図である。アドレスの上位は論理PE番号
であり、これがワード毎に全て異なる。アドレスの下位
はPE内論理メモリアドレスであり、行列A,Bの要素
が8バイトのデータからなるとすると、この値は配列B
の各PE内におけるベースアドレスに8バイト×2要素
目=16を加算したものである。
【0131】図13は、図9のマッピングがされたプロ
セス2におけるPE2における図11に示した行列転置
の際のアドレス変換後の書き込み先ポインタの配列を示
した図である。アドレスの上位が論理PE番号から物理
PE番号に変換されている。この配列は、図12を準備
した上で、前述のように通信を始める前に1回だけOS
をコールすることによって得られる。この配列が、パケ
ット生成用情報に対応する。
【0132】なお、本実施例では、プロセッサ間結合網
が絶対アドレスを用いてルーティングするものとしてア
ドレスの上位を物理PE番号そのものに変換したが、プ
ロセッサ間結合網が相対アドレスを用いてルーティング
する場合には、ルーティングに便利なように書き込み元
のPEアドレスと書き込み先のPEアドレスから計算さ
れる相対アドレスに変換し、そのままルーティング情報
として使える形にすることが望ましい。
【0133】次に、図11で示される通信を行う場合の
動作例について解説する。この動作を行うためには、ま
ず、64bitデータ16個からなる送信用データの配
列A、受信用データの配列B、および図13に示したパ
ケット生成情報の配列Cをメモリ上に準備する。
【0134】受信書き込み処理完了カウンタ116に
“16”を、パケット数指定レジスタ105に“16”
を、バースト長指定レジスタ107に“2”(32bi
tデータ2ワード分を意味する)を、パケットデータ部
ポインタ指定レジスタ106に“配列Aの先頭アドレ
ス”を、パケット生成用情報ポインタ指定レジスタ10
4に“配列Cの先頭アドレス”を、マイクロプロセッサ
2からそれぞれ設定し、「アクノリッジなし遠隔書き込
み要求アドレス」をマイクロプロセッサ2からアクセス
することによって、遠隔書き込み動作が起動される。
【0135】パケット生成部100は、図7のようなヘ
ッダーと64bitのデータ部を持つ16個のパケット
を、配列Cの情報に基づき生成する。16個のパケット
全ての生成が終わると、ステータスレジスタ122には
パケット生成の終了を示すビットが立つ。
【0136】PE2以外の他のPEでも同様の動作が行
われ、PE2は自分を含めた16個のPEから1個ずつ
上記のようなパケットを受け取る。順番に、16個のア
クノリッジなし遠隔書き込み要求パケットのデータ部
を、ヘッダー部に含まれるPE内論理メモリアドレスを
制御装置内TLB103で変換して得られる物理メモリ
アドレスに書き込むと、受信書き込み処理完了回数カウ
ンタ116が“0”となり、ステータスレジスタ122
に受信書き込み完了のビットを立てて、遠隔書き込み動
作は完了する。
【0137】マイクロプロセッサ2は、受信書き込み完
了をポーリングして、ステータスレジスタ122の受信
書き込み完了ビットが立ったことを検知したら、バリア
同期を実行する。全てのPEがバリア同期を実行する
と、全対全通信が完了したことになり、行列Aを転置し
た行列Bが得られたことになる。
【0138】以上の動作例ではアクノリッジなしの遠隔
書き込みを用いて実現することを示したが、アクノリッ
ジ付きの遠隔書き込みや、遠隔読み出しを用いても同様
のことが実現できる。本動作例では書き込み先および書
き込まれ回数が静的に決まる例であるので、アクノリッ
ジなしの遠隔書き込みを用いることが、応答メッセージ
が不要なことから最も高速な実現形態となる。
【0139】(変形例1)次に、実施例1の変形例を説
明する。変形例1では、実施例1の遠隔メモリアクセス
制御装置において、ローカルメモリ3に格納されるパケ
ット生成用情報として、メモリアドレスの他に、パケッ
トが運ぶべきデータ語数を用意し、パケット毎に異なる
語数の連続データの読み書きを行う遠隔メモリバースト
アクセスパケットを生成する。
【0140】パケット生成部100は、遠隔メモリアク
セスパケットを生成する際に、パケット生成用情報中の
パケットが運ぶべきデータ語数(バースト長)を参照し
つつ、読みだしならば、バースト長をヘッダーに含む遠
隔メモリ読みだし要求パケットを生成し、書き込みなら
ば、ローカルメモリから読みだしたデータを元に、バー
スト長の分だけ、データ部に含む遠隔メモリ書き込みパ
ケットを生成する。バースト長は、パケット毎にパケッ
ト生成用情報に含まれるので、アクセス先によって異な
るバースト長でアクセスすることが可能となる。
【0141】図14は、この変形例を説明するための図
であり、メッセージ毎に指定できるバースト長を持つパ
ケット生成用情報に対応する配列の例を示した図であ
る。図1の遠隔メモリアクセス制御装置1におけるバー
スト長指定レジスタ107上の値は全てのパケット生成
に際して用いられていたが、ここでの例のようにパケッ
ト生成を行う場合は、図5、図6、図7のパケットヘッ
ダー内のバースト長には、図14のパケット生成用情報
の中にある個別のバースト長が用いられる。
【0142】例えば、図14のパケット生成用情報の中
の先頭の要素に対応するパケットは物理PE番号36を
持つPEに対するデータ2語を書き込むまたは読み出す
パケットを生成し、2番目の要素に対応するパケットは
物理PE番号37を持つPEに対するデータ3語を書き
込むまたは読み出すパケットを生成する。
【0143】図7の形式のパケット生成情報が用いられ
るのか図14の形式のパケット生成情報が用いられるの
かは、遠隔アクセスの起動をかけるためのアドレスを別
のアドレスにマッピングさせておくことなどによって区
別できる。
【0144】(実施例2)最初に、本実施例の主な構成
と、その作用効果について述べる。 <実施例2の主な構成>本実施例は、物理的に分散して
実装され論理的に複数のベクトルプロセッサ(25)か
ら共有メモリとしてアクセス可能な分散共有メモリ(2
3)を具備する並列計算機において、生成パケット数に
対応する情報をベクトル長指定レジスタ(236)によ
り指定し、遠隔メモリをアクセスするパケットを生成す
るためのパケット生成用情報の一部または全部を所望の
個数のパケットに対応する分、所定のフォーマットに基
づいて遠隔メモリアクセス制御装置(21)の外部でか
つ手元にあるローカルメモリ(23)に格納しておき、
ベクトルプロセッサ(25)がフェッチしたベクトル命
令によってローカルメモリ(23)からベクトルレジス
タ(234)にパケット生成用情報をロードし、これら
を用いてベクトルプロセッサ(25)がフェッチしたベ
クトル命令によって遠隔メモリアクセスパケットを生成
する。
【0145】<実施例2の主な作用効果>本実施例の遠
隔メモリアクセス制御装置(21)は、分散共有メモリ
型並列計算機において、ベクトルプロセッサ(25)の
機能の一部として実現される。まず、遠隔メモリをアク
セスするパケットを生成するためのパケット生成用情報
の一部または全部を所望の個数のパケットに対応する分
だけ、所定のフォーマットに基づいてローカルメモリ
(23)に格納しておく。次に、ベクトルプロセッサ
(25)自身がフェッチしたベクトルロード命令によっ
てローカルメモリ(23)からベクトルレジスタ(23
4)にパケット生成用情報のロードを開始する。次に、
生成パケット数に対応する情報をベクトル長指定レジス
タ(236)に設定した状態で、ベクトルプロセッサ
(25)がフェッチしたベクトル遠隔メモリアクセス命
令を起動させる。
【0146】このようにして、メモリアクセス部とパケ
ット生成部(200)が同時進行でパイプライン動作
し、1回のベクトル遠隔メモリアクセス命令によって次
々と遠隔メモリアクセスパケットが生成される。外部プ
ロセッサ(22)は遠隔メモリアクセス開始の許可をベ
クトルプロセッサに通知した後は遠隔メモリアクセスの
処理のために忙殺されることなく別の処理を行うことが
可能となる。また、パケット生成用情報は、外部プロセ
ッサ(22)のキャッシュ(41)を通過しないので、
外部プロセッサ(22)のキャッシュ(41)のヒット
率も向上する。
【0147】また、ベクトル演算器からの結果は出たら
メモリに出入りすることなく遠隔メッセージのデータと
することができるので、メモリアクセスのボトルネック
を回避した高速な遠隔メモリアクセスが実現される。
【0148】以下、さらに具体的に本実施例を説明す
る。 <実施例2の具体的説明>図15および図16は、本実
施例のコプロセッサを具備する並列計算機の要素プロセ
ッサの構成を示す図である。
【0149】並列計算機は、プロセッサ間結合網により
複数の要素プロセッサを相互接続することにより実現さ
れる。本実施例では、要素プロセッサの相互接続方式は
任意とする。
【0150】図のように、各要素プロセッサでは、遠隔
メモリアクセス制御装置とベクトルプロセッサが一体化
されたコプロセッサ21、汎用マイクロプロセッサによ
り実現されるメインプロセッサ22およびローカルメモ
リ23が、外部バス24により接続されている。プロセ
ッサ間結合網には、遠隔メモリアクセス制御装置21が
直接接続される。本実施例では、各要素プロセッサのロ
ーカルメモリ23を分散共有メモリとして使うこととす
る。
【0151】実施例1と同様に、マイクロプロセッサ2
2は、CPU43に加えて、キャッシュメモリ41およ
びアドレス変換用のTLB42を備えるものとする。ま
た、メインプロセッサ22は、外部バス24を介してロ
ーカルメモリ23やベクトルプロセッサ21の内部資源
をアクセスする。本実施例では、このメインプロセッサ
22上でOSやユーザープログラムの一部が動作し、ベ
クトルプロセッサ21はそのコプロセッサという位置づ
けとなっている。
【0152】しかし、本実施例のようにTLBやキャッ
シュメモリを備えた汎用のマイクロプロセッサによって
実現されるメインプロセッサ(22)とコプロセッサ
(21)の組み合わせで実現しなければならないわけで
はなく、カスタム設計により本実施例よりも緊密に結合
されたスカラプロセッサとベクトルプロセッサにより実
現するなどしても構わない。
【0153】図15および図16のように、コプロセッ
サ21は、ベクトル演算パイプライン232、ロードス
トアパイプライン233、ベクトルレジスタ234、ス
カラレジスタ235、ベクトル長指定レジスタ236、
ステータスレジスタ222、プロセスID指定レジスタ
208、命令バッファ241、命令制御部242、ベク
トルプロセッサ内結合網243、バスインタフェース部
201、プロセッサ間結合網インタフェース部217、
パケット生成部200、パケット受信部213、送信パ
ケットバッファ211、受信パケットバッファ212、
応答待ち読み出し要求カウンタ214、応答待ち書き込
み要求カウンタ215、受信書き込み処理完了回数カウ
ンタ216、コプロセッサ内TLB203、返信パケッ
トデータ部バッファ221、メモリアドレス生成部20
2を具備する。
【0154】ローカルメモリ23には、メインプロセッ
サ内TLB42やコプロセッサ内TLB21にキャッシ
ングされるべきページテーブルの本体や、ベクトルプロ
セッサ21のためのプログラムや、メインプロセッサ2
2のためのプログラムや、パケット生成用情報の配列や
送信パケットデータ部などのその他のデータが保持され
る。
【0155】ここで、好ましくは、パケット生成部(2
00)に非特権モードでのプログラムからは特権モード
に移行することなく直接制御することが不可能なプロテ
クション情報付加機構を設け、遠隔メモリアクセスパケ
ットを受信する側にパケット中のプロテクション情報に
基づいてメモリアクセスの許可不許可を制御するメモリ
アクセス保護機構を設けると良い。特権モードからはプ
ロテクション情報を書き換えることができるので、プロ
セッサがコンテクストスイッチして他のユーザーのプロ
セスに切り替わる時にオペレーティングシステムがこれ
から外部プロセッサや遠隔メモリアクセス制御装置など
の資源を割り当てるプロセスIDなどを設定しておき非
特権モードでの遠隔メモリアクセス時にはパケット生成
部がこの情報をパケットのヘッダーに埋め込む。つま
り、非特権モードでローカルメモリ(23)上のパケッ
ト生成用情報を書き換えても、他人の遠隔メモリに誤っ
て書き込むことは受信側のメモリアクセス保護機構でパ
ケットヘッダー中のプロテクション情報をチェックする
ことによって排除される。
【0156】本実施例では、上記のような機構を採用す
るとととし、コプロセッサ内TLB203とプロセスI
D指定レジスタ208は、マイクロプロセッサの特権モ
ードでしかアクセスできない領域にマップされる。
【0157】コプロセッサ内TLB203には、メモリ
アドレス生成部202が発生するメモリアクセス時のア
ドレス変換に用いられる物理アドレスと論理アドレスの
組の他に、TLB42のエントリ毎に付けられたプロセ
スIDを保持する。その実体はローカルメモリ23の特
権モードでしかアクセスできない領域に上にあり、TL
B42にはその情報がキャッシングされる。なお、ここ
でいうプロセスとは、仮想アドレス空間を割り当てる単
位であり、複数のプロセッサにまたがって同一のプロセ
スIDを使用する複数のスレッドが存在する。
【0158】プロセスID指定レジスタ208には、コ
プロセッサ21を割り当てられているプロセスIDが保
持され、パケット生成部200で生成されるパケットの
ヘッダーには、プロセスID指定レジスタ208上のプ
ロセスIDが埋め込まれる。このように、コプロセッサ
内TLB203とプロセスID指定レジスタ208は、
プロテクション情報を保持し、不正なメモリアクセスを
防止するための機構であるために、ユーザーモードから
は直接アクセスはさせないようになっている。
【0159】コプロセッサ21内部のベクトルプロセッ
サは、メインプロセッサ22からの指示に基づき、命令
制御部242がローカルメモリ23上のコプロセッサ用
プログラムを命令バッファに読み込んでは、命令バッフ
ァ241上の命令をデコードして、ベクトル演算パイプ
ライン232、ロードストアパイプライライン233、
スカラレジスタ235、ベクトルレジスタ234などへ
の制御信号を送り、メインプロセッサ22とは同期命令
や割り込み処理が発生しない限り独立して動作する。
【0160】コプロセッサ21の命令としては、スカラ
レジスタ235やベクトル長指定レジスタ236にロー
カルメモリ23や命令バッファ241からデータをロー
ドする命令や、ベクトルレジスタ234にローカルメモ
リ23からデータをロードするベクトルロード命令VL
Dや、ベクトルレジスタ234からローカルメモリ23
にデータをストアするベクトルストア命令VSTや、ベ
クトルレジスタ234やスカラレジスタ235上の値の
間で加算や乗算などの演算を実行し結果をベクトルレジ
スタ234に格納するベクトル演算命令や、後述するベ
クトル送信命令などが存在する。
【0161】ベクトルプロセッサ内結合網243は、ベ
クトル命令が指定するオペランドによって制御されるベ
クトルプロセッサ内資源間のデータ転送経路となる。こ
こで、好ましくは、ローカルメモリ(23)に格納され
るパケット生成用情報の格納フォーマットを配列とする
と良い。そのようにした場合、ベクトルロード命令によ
って簡単かつ高速にベクトルレジスタにパケット生成用
情報をロードすることができる。
【0162】本実施例では、ローカルメモリ23に格納
されるパケット生成用情報の格納フォーマットを配列と
する。本実施例のコプロセッサ21によるプロセッサ間
通信を行う場合、まず、遠隔アクセスを行うケースで
は、書き込みのときも読み出しのときもパケット生成用
情報をベクトルレジスタ234にロードする必要があ
る。本実施例では、パケット生成用情報の格納フォーマ
ットを配列としており、n個のパケットのヘッダー情報
を生成するために必要な情報が、まずローカルメモリ2
3上の連続した領域上に配列として準備される。
【0163】ここで、好ましくは、パケット生成部(2
00)に非特権モードでのプログラムからは特権モード
に移行することなく直接制御することが不可能なプロテ
クション情報付加機構を設け、遠隔メモリアクセスパケ
ットを受信する側にパケット中のプロテクション情報に
基づいてメモリアクセスの許可不許可を制御するメモリ
アクセス保護機構を設けるとともに、遠隔メモリを指定
するアドレスとして送信側でシステムコールによって変
換をかけた変換後アドレスをローカルメモリに準備し、
実際の遠隔メモリアクセス時には上記の変換後アドレス
を再利用するようにしても良い。
【0164】すなわち、特権モードからはプロテクショ
ン情報を書き換えることができるので、プロセッサがコ
ンテクストスイッチして他のユーザーのプロセスに切り
替わる時にオペレーティングシステムがこれから外部プ
ロセッサや遠隔メモリアクセス制御装置などの資源を割
り当てるプロセスIDなどを設定しておき非特権モード
での遠隔メモリアクセス時にはパケット生成部がこの情
報をパケットのヘッダーに埋め込む。
【0165】遠隔メモリを指定するアドレスは、送信側
でシステムコールによって変換をかけた変換後アドレス
がローカルメモリに準備されるので、非特権モードでロ
ーカルメモリ上の変換後アドレスを書き換えられる危険
性がある。しかし、他人の遠隔メモリに誤って書き込む
ことは、受信側のメモリアクセス保護機構でパケットヘ
ッダー中のプロテクション情報をチェックすることによ
って排除される。
【0166】実際の遠隔メモリアクセス時には、上記の
変換後アドレスを再利用することによって、アドレス変
換を通信実行時に逐一行わなくても良くなるので、送信
側にTLBやシステムコールの多発をなくすことができ
る。
【0167】遠隔メモリアクセスの場合、送信先のプロ
セッサ番号は遠隔メモリのアドレスの一部を形成するこ
とになるので、これらは通常別のプロセッサならば異な
るTLBエントリを必要とするため、送信側でTLBに
よるアドレス変換が逐一必要な方式では送信先プロセッ
サが多いとTLBミスヒットが連発することになるが、
上記のようにすれば、通信が多数回繰り返される場合で
も、変換は事前に1回だけ行うに過ぎないので、このよ
うな問題点がない。
【0168】本実施例においても、実施例1と同様に、
図7を準備した上で、上記のように通信を始める前に1
回だけOSをコールすることによって得られる図8の配
列が、パケット生成用情報に対応する。
【0169】さて、上記のパケット生成用情報に対応す
る配列の先頭アドレスをスカラレジスタSR1に設定
し、ロードすべきパケット生成用情報データ数すなわち
パケット数nをベクトル長指定レジスタ236に設定
し、連続アクセスを行うことを示すアクセスステップ数
1をスカラレジスタSR2に設定し、ベクトルレジスタ
VR1に対するベクトルロード命令(VLD SR1
SR2 VR1)を実行する。
【0170】すると、ベクトル長、先頭アドレス、アク
セスステップ数がロードストアパイプライン233に転
送され、そこでメモリアドレスを発生しアクセス要求が
バスインタフェース部201に届き、メモリ23をリー
ドした結果がベクトルプロセッサ内結合網243を経由
してベクトルレジスタVR1にパケット生成用情報とし
てnパケット分ロードされる。
【0171】本実施例では、パケット生成用情報の格納
フォーマットを配列としており、n個のパケットのヘッ
ダー情報を生成するために必要な情報がローカルメモリ
23上に配列として準備されているため、ベクトルロー
ド命令により効率的にパケット生成用情報がベクトルレ
ジスタ234にロードされる。
【0172】遠隔書き込みを行う場合は、さらに書き込
みデータをベクトルレジスタ234に準備する必要があ
る。ここでは、送信パケット毎にバースト長L語のデー
タを持ち、1回の起動によりn個の送信パケットを生成
するものとする。
【0173】遠隔書き込みを行う場合は、ローカルメモ
リ23上に書き込むべきデータを準備しておきベクトル
ロード命令をベクトルプロセッサにより実行するなどに
よってベクトルレジスタ234上にロードする方法と、
ベクトルプロセッサによる演算結果を送信データとして
直接用いることが可能な場合に限りベクトルレジスタ2
34上の演算結果を用いる方法がある。
【0174】まず、前者の方式によって実行する場合の
動作について説明する。図15および図16では書き込
むべきデータはL×nの二次元配列として論理的に連続
した領域に格納されているが、ベクトルプロセッサのベ
クトルロード命令には、連続アクセスの他に、等間隔ア
クセスやリストアクセスを行う命令が用意されているこ
とが一般的であるので、必ずしも連続領域にデータが格
納されている必要はない。
【0175】この例では、二次元配列の先頭アドレスを
スカラレジスタSR3に設定し、ロードすべきデータ数
L×nをベクトル長指定レジスタ236に設定し、連続
アクセスを行うことを示すアクセスステップ数1をスカ
ラレジスタSR2に設定し、ベクトルレジスタVR1に
対するベクトルロード命令(VLD SR3 SR2V
R2)を実行すると、ベクトルレジスタVR2に送信パ
ケットデータがnパケット分ロードされる。
【0176】ここで、好ましくは、パケット生成用情報
を第一のベクトルレジスタに格納し、ローカルメモリか
らのロードデータまたはベクトル演算器からの出力とし
て得られる書き込みデータを第二のベクトルレジスタに
格納し、対応するパケット生成用情報と書き込みデータ
を組み合わせて、遠隔メモリアクセス制御装置自身がフ
ェッチしたベクトル命令によって遠隔メモリ書き込みパ
ケットを生成するようにしても良い。書き込みデータを
ベクトルレジスタ上におくので、ベクトル演算器からの
結果がベクトルレジスタに保持される。それをベクトル
遠隔メモリ書き込み命令のソースオペランドとして指定
した場合、メモリを経由することなくパケット生成部に
おいて、別のベクトルレジスタにローカルメモリからロ
ードされるパケット生成用情報と組み合わされて遠隔メ
モリ書き込みパケットが次々と生成される。
【0177】また、好ましくは、パケットが運ぶべきデ
ータ語数(バースト長)を指定可能なベクトル命令を具
備させ、1つ以上の語数の連続データの読み書きを1つ
のパケットで行う遠隔メモリバーストアクセスパケット
を生成するようにしても良い。バースト長の指定は例え
ば汎用のスカラレジスタであっても良いし、専用のレジ
スタを設けても良く、ここに値を設定した状態でベクト
ル遠隔メモリバーストアクセス命令を起動する。する
と、パケット生成部は、該レジスタで指定される語数の
読み書きを行う遠隔メモリバーストアクセスパケットを
生成する。このようにして、遠隔メモリアドレスなどか
らなる1つのパケットヘッダーに対して、バースト長で
指定されるブロック状のデータが運ばれることになるの
で、常に1語ずつ遠隔メモリアクセスを行うより、結合
網やメモリバンド幅が有効に活用されることになる。
【0178】本実施例では、ベクトルレジスタ234上
のパケット生成用情報を用いて遠隔アクセス要求パケッ
トを生成するベクトル命令VSENDWとVSENDR
をコプロセッサ21は具備し、VSENDWは、ベクト
ルレジスタ234上のパケット生成用情報と送信データ
から遠隔書き込み要求パケットを生成する。
【0179】とりわけ、本実施例の命令VSENDW
は、スカラレジスタ235上に設定されたバースト長L
を用いてベクトルレジスタ234上の連続したL語のデ
ータに一つのヘッダーを付け遠隔メモリバースト書き込
みを要求するパケットを生成する。
【0180】VSENDWとVSENDRの違いは、パ
ケット生成用情報がVSENDWは1語からなる遠隔書
き込みに用いられ、ベクトルレジスタ234上の書き込
みデータをL語添えて送信パケットとするのに対し、V
SENDRはパケット生成用情報がパケットあたり2語
からなり、データ部は無く、読み出し結果格納アドレス
を必要とする遠隔読み出し要求のために用いられる点が
異なる。
【0181】ベクトルレジスタVR1とVR2にそれぞ
れパケット生成用情報と送信データがロードされ、VS
ENDW命令を用いて遠隔書き込みを行う場合は、スカ
ラレジスタSR4にバースト長Lを設定し、ベクトル長
指定レジスタ236にパケット数nを設定して、ベクト
ル送信命令(VSENDW SR4 VR1 VR2)
を実行すると、n個の遠隔バースト書き込み要求パケッ
トが生成される。
【0182】以上の動作をタイムチャートで示すと、実
施例1のパイプライン動作時のタイムチャートである図
4と同様になる。ここでは、配列のアドレス発生に1ク
ロック、ランダムメモリアクセスの遅延が2クロック、
以降連続アクセス時のメモリ読み出し転送レートが1ワ
ードあたり1クロック、ヘッダー部1ワードでデータ部
1ワードのパケット生成に2クロックかかるものとして
図示している。
【0183】このように送信データをローカルメモリか
らロードする使用方法ではベクトルプロセッサと遠隔メ
モリアクセス制御装置を一体化した効果は、パケット生
成用情報バッファや送信パケットデータ部バッファの機
能をベクトルレジスタに兼用させてハードウェアを有効
活用している点にある。
【0184】一方、ベクトルプロセッサによる演算結果
を送信データとして直接用いることが可能な場合に限
り、ベクトルレジスタ234上の演算結果を用いるもの
は、実施例1と異なり、通信性能のボトルネックとなっ
ていたメモリアクセスの回数が大幅に減少するので、よ
り高速な通信が可能となる。
【0185】図17は、ベクトルプロセッサによる演算
結果を送信データとして直接用いる遠隔メモリ書き込み
の送信側動作を示す図である。ここでは、配列のアドレ
ス発生に1クロック、ランダムメモリアクセスの遅延が
2クロック、以降連続アクセス時のメモリ読み出し転送
レートが1ワードあたり1クロック、ヘッダー部1ワー
ドでデータ部1ワードのパケット生成に2クロックかか
るものとして図示している。
【0186】ヘッダーのためのメモリアクセスに先立ち
または並行してベクトル演算器からの結果データがベク
トルレジスタに書き込まれるならば、パケット生成は第
5サイクルから開始でき、図4の場合と比べて丸々送信
データのロードにかかっていた期間だけ速い時刻からパ
ケット生成が開始され、この例の場合は17サイクルか
かっていた処理が12サイクルで完了している。
【0187】また、実施例1と異なり、本実施例の場合
はパケット生成情報のロードとパケット生成は別の命令
で構成されるために、パケット生成情報のロードを先行
して発行させることによって容易にプリロードを実現で
き、外部バス24が空いているならばベクトル演算器が
送信用データを計算しているうちにパケット生成情報の
ロードを済ませることも可能で、その場合はベクトル演
算器からの結果が出ると即座にパケット生成が開始さ
れ、さらなる高速化ができることがある。
【0188】ここで、好ましくは、受信した遠隔書き込
み要求に対する処理の完了の回数を計数するカウンタを
設けても良い。遠隔ノードから書き込まれる回数が、書
き込まれる側のプログラムでわかっているような処理を
行う場合は、遠隔書き込みに対する応答パケットを返送
することなしに、受信側でカウントされる上記カウンタ
の値を受信側でチェックし、所定の回数の書き込みパケ
ットの処理が完了したことを確認してから全体でバリア
同期をとることによって、遠隔書き込みパケットを送信
した側に速やかに書き込みの完了が伝わるので高速であ
り、プロセッサ間結合網に対する負担も軽くなる。
【0189】なお、送信パケットのヘッダーは、実施例
1と同様であり、図5、図6および図7のようになって
いる。また、パケット生成時や受信時の動作も、応答待
ち読み出し要求数カウンタ214や応答待ち書き込み要
求数カウンタ215の動作や、受信書き込み処理完了回
数カウンタ216の動作も、実施例1と同様である。
【0190】(変形例2)次に、実施例2の変形例を説
明する。変形例2では、実施例2の遠隔メモリアクセス
制御装置において、ローカルメモリに格納され、ベクト
ルレジスタにロードされるパケット生成用情報として、
メモリアドレスの他に、パケットが運ぶべきデータ語数
(バースト長)を用意し、1つ以上のパケット毎に異な
る語数の読み書きを行う遠隔メモリバーストアクセスパ
ケットを生成する。
【0191】パケット生成部は200、遠隔メモリアク
セスパケットを生成する際に、パケット生成用情報中の
データ語数(バースト長)を参照しつつ、読みだしなら
ば、バースト長をヘッダーに含む遠隔メモリ読みだし要
求パケットを生成し、書き込みならば、ベクトルレジス
タ上のデータを元に、バースト長の分だけ、データ部に
含む遠隔メモリ書き込みパケットを生成する。バースト
長は、パケット毎にパケット生成用情報に含まれるの
で、アクセス先によって異なるバースト長でアクセスす
ることが可能となる。
【0192】メッセージ毎に指定できるバースト長を持
つパケット生成用情報に対応する配列は、例えば図14
に示したものを用いることができる。図15および図1
6のコプロセッサ32におけるバースト長を指定するス
カラレジスタ235上の値は全てのパケット生成に際し
て用いられていたが、パケット生成を行う場合は、図1
1、図12、図13のパケットヘッダー内のバースト長
には図14のパケット生成用情報の中にある個別のバー
スト長が用いられる。
【0193】例えば、図14のパケット生成用情報の中
の先頭の要素に対応するパケットは、物理PE番号36
を持つPEに対するデータ2語を書き込むまたは読み出
すパケットを生成し、2番目の要素に対応するパケット
は物理PE番号37を持つPEに対するデータ3語を書
き込むまたは読み出すパケットを生成する。
【0194】図7の形式のパケット生成情報が用いられ
るのか図14の形式のパケット生成情報が用いられるの
かは、遠隔アクセスの起動をかけるためのアドレスを別
のアドレスにマッピングさせておくことなどによって区
別できる。また、本発明は上述した各実施例に限定され
るものではなく、その要旨を逸脱しない範囲で、種々変
形して実施することができる。
【0195】
【発明の効果】本発明によれば、予めローカルメモリに
パケット生成に必要な情報を格納しておき、プロセッサ
からの1つの要求に応答して、上記情報を元に複数の遠
隔メモリアクセスパケットを生成するようにしたので、
大域的多重仮想記憶を実現しつつ、プロセッサからの遠
隔メモリアドレス発生によるキャッシュのミスヒット増
加やTLBのミスヒットに起因する割り込み発生を排除
できるとともに、間欠的にしか発生させることができな
かった遠隔メモリアクセスパケットを連続的に発生させ
ることができる。
【0196】また、プロセッサは、従来のように遠隔メ
モリアクセスの処理のために忙殺されることなく、当該
遠隔メモリアクセス制御装置を起動した後は、別の処理
を行うことが可能となる。
【0197】また、複数のパケットに対するメモリアク
セスを一度にまとめて行うことができるので、バースト
メモリアクセスが促進され、実効メモリバンド幅が向上
し、高速な遠隔メモリアクセスが実現される。とりわ
け、パケット生成用情報を配列とした場合は、少ないハ
ードウェアで高速なメモリアクセスが実現される。
【0198】また、ベクトルプロセッサと遠隔メモリア
クセス装置を融合させた場合は、遠隔メモリ書き込み処
理におけるメモリアクセス回数を減少させることがで
き、より高速な遠隔メモリ書き込みが実現される。
【0199】また、本発明によれば、処理し終わった遠
隔書き込み要求を計数するカウンタを受信側に設けるの
で、受信側での書き込み回数が静的にわかる処理の場合
は、書き込みの完了を速やかに知ることが可能となり、
応答パケットにより結合網が混雑してしまうという弊害
が排除される。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係る遠隔メモリアクセ
ス制御装置を具備した並列計算機の要素プロセッサの構
成を示す図
【図2】同要素プロセッサの構成を示す図
【図3】パケット送信時のパイプライン動作例を示す図
【図4】パケット送信時の他のパイプライン動作例を示
す図
【図5】遠隔読み出し要求パケットの一例を示す図
【図6】アクノリッジ付きの遠隔書き込み要求パケット
ヘッダーの一例を示す図
【図7】アクノリッジなしの遠隔書き込み要求パケット
ヘッダーの一例を示す図
【図8】二次元メッシュ結合型並列計算機におけるマッ
ピング状況の一例を示する図
【図9】論理的なPE群について説明するための図
【図10】アドレス変換の様子を示す図
【図11】通信パターンの一例を示す図
【図12】アドレス変換前の書き込み先ポインタの配列
の一例を示す図
【図13】アドレス変換後の書き込み先ポインタの配列
の一例を示す図
【図14】メッセージ毎に指定できるバースト長を具備
したパケット生成用情報に対応する配列の一例を示す図
【図15】本発明の第2の実施例に係るコプロセッサを
具備する並列計算機の要素プロセッサの構成を示す図
【図16】同要素プロセッサの構成を示す図
【図17】ベクトルプロセッサによる演算結果を送信デ
ータとして直接用いる遠隔メモリ書き込みの送信側動作
を示す図
【符号の説明】
1…遠隔メモリアクセス制御装置、2…マイクロプロセ
ッサ、3…ローカルメモリ、4…外部バス、31…キャ
ッシュメモリ、32…TLB、33…CPU、100…
パケット生成部、101…バスインタフェース部、10
2…メモリアドレス生成部、103…制御装置内TL
B、104…パケット生成用情報ポインタ指定レジス
タ、105…パケット数指定レジスタ、106…パケッ
トデータ部ポインタ指定レジスタ、107…バースト長
指定レジスタ、108…プロセスID指定レジスタ、1
09…パケット生成用情報バッファ、110…送信パケ
ットデータ部バッファ、111…送信パケットバッフ
ァ、112…受信パケットバッファ、113…パケット
受信部、114…応答待ち読み出し要求数カウンタ、1
15…応答待ち書き込み要求数カウンタ、116…受信
書き込み処理完了回数カウンタ、117…プロセッサ間
結合網インタフェース部、121…返信パケットバッフ
ァ、122…ステータスレジスタ、21…コプロセッ
サ、22…メインプロセッサ、23…ローカルメモリ、
24…外部バス、25…ベクトルプロセッサ、41…キ
ャッシュメモリ、42…TLB、43…CPU、200
…パケット生成部、201…バスインタフェース部、2
02…メモリアドレス生成部、203…コプロセッサ内
TLB、208…プロセスID指定レジスタ、211…
送信パケットバッファ、212…受信パケットバッフ
ァ、213…パケット受信部、214…応答待ち読み出
し要求カウンタ、215…応答待ち書き込み要求カウン
タ、216…受信書き込み処理完了回数カウンタ、21
7…プロセッサ間結合網インタフェース部、221…返
信パケットデータ部バッファ、222…ステータスレジ
スタ、232…ベクトル演算パイプライン、233…ロ
ードストアパイプライン、234…ベクトルレジスタ、
235…スカラレジスタ、236…ベクトル長指定レジ
スタ、241…命令バッファ、242…命令制御部、2
43…ベクトルプロセッサ内結合網

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと物理的に分散して実装
    され論理的に該複数のプロセッサから共有メモリとして
    アクセス可能な分散共有メモリとを具備する並列計算機
    において対応するプロセッサの該分散共有メモリに対す
    る遠隔メモリアクセスを制御する遠隔メモリアクセス制
    御装置であって、 パケット生成用情報のアドレスを指定するポインタ指定
    手段と、 生成するパケットの個数を指定するパケット数指定手段
    と、 前記対応するプロセッサからの遠隔メモリアクセス要求
    を検出するアクセス要求検出手段と、 前記遠隔メモリアクセス要求が検出された場合、前記ポ
    インタ指定手段により指示される前記アドレスを元にし
    て、前記対応するプロセッサのローカルメモリから所定
    のフォーマットのパケット生成用情報を読み出すローカ
    ルメモリアクセス手段と、 読み出された前記パケット生成用情報に基づいて、前記
    パケット数指定手段により指示されるパケット数分、前
    記分散共有メモリに対して遠隔メモリアクセスするパケ
    ットを生成するパケット生成手段とを備えたことを特徴
    とする遠隔メモリアクセス制御装置。
  2. 【請求項2】前記ローカルメモリに格納される前記パケ
    ット生成用情報の格納フォーマットを配列とすることを
    特徴とする請求項1に記載の遠隔メモリアクセス制御装
    置。
  3. 【請求項3】前記パケット生成用情報を一時的に格納す
    る第1のバッファ手段と、書き込みデータを一時的に格
    納する第2のバッファ手段とをさらに備え、 前記ローカルメモリアクセス手段は、前記遠隔メモリア
    クセス要求が遠隔メモリ書き込み要求である場合、前記
    ローカルメモリから前記第1及び第2のバッファ手段に
    情報を取り込むものであるとともに、 前記パケット生成手段は、前記遠隔メモリアクセス要求
    が遠隔メモリ書き込み要求である場合、対応する前記パ
    ケット生成用情報と前記書き込みデータとの組がそろっ
    たものから、該組の内容に基づいて遠隔メモリ書き込み
    パケットを生成するものであって、 前記ローカルメモリアクセス手段と前記パケット生成手
    段とを、パイプライン的に同時動作させるようにしたこ
    とを特徴とする請求項1に記載の遠隔メモリアクセス制
    御装置。
  4. 【請求項4】前記ローカルメモリアクセス手段は、連続
    アクセスが高速なローカルメモリをアクセスするもので
    あり、前記パケット生成用情報および前記書き込みデー
    タを前記ローカルメモリから連続アクセスによって各々
    複数パケット分、前記第1および第2のバッファ手段に
    取り込むようにしたことを特徴とする請求項3に記載の
    遠隔メモリアクセス制御装置。
  5. 【請求項5】前記パケットが運ぶべき情報のデータ語数
    を指定するバースト長指定手段をさらに具備し、 該バースト長指定手段により指定される語数の読み書き
    を行う遠隔メモリバーストアクセスパケットを生成する
    ようにしたことを特徴とする請求項1に記載の遠隔メモ
    リアクセス制御装置。
  6. 【請求項6】前記パケット生成用情報には、メモリアド
    レスの他に当該パケットが運ぶべき情報のデータ語数を
    持たせ、各パケット毎に所望の語数の連続データの読み
    書きを行う遠隔メモリバーストアクセスパケットを生成
    するようにしたことを特徴とする請求項1に記載の遠隔
    メモリアクセス制御装置。
  7. 【請求項7】前記パケット生成手段には、非特権モード
    でのプログラムからは特権モードに移行することなく直
    接制御することが不可能なプロテクション情報付加機構
    を設けるとともに、 他のプロセッサからの遠隔メモリアクセスパケットを受
    信した場合に、該パケット中のプロテクション情報に基
    づいてメモリアクセスの許可不許可を制御するメモリア
    クセス保護機構を備えたことを特徴とする請求項1に記
    載の遠隔メモリアクセス制御装置。
  8. 【請求項8】複数のベクトルプロセッサと物理的に分散
    して実装され論理的に該複数のベクトルプロセッサから
    共有メモリとしてアクセス可能な分散共有メモリとを具
    備する並列計算機においてベクトルプロセッサの該分散
    共有メモリに対する遠隔メモリアクセスを制御する遠隔
    メモリアクセス制御装置であって、 ベクトルプロセッサがフェッチしたベクトル命令により
    パケット生成が起動され、ベクトルプロセッサのベクト
    ルロード手段によりローカルメモリからベクトルレジス
    タにロードされたパケット生成用情報に基づいて、ベク
    トル長指定手段により指示されるパケット数分、前記分
    散共有メモリに対して遠隔メモリアクセスするパケット
    を生成するパケット生成手段を備えたことを特徴とする
    遠隔メモリアクセス制御装置。
  9. 【請求項9】パケット生成用情報を前記ベクトルレジス
    タの少なくとも1つに格納するとともに、前記ローカル
    メモリからロードした書き込みデータまたはベクトル演
    算器からの出力として得られる書き込みデータを前記ベ
    クトルレジスタの他のベクトルレジスタに格納し、 対応するパケット生成用情報と書き込みデータを組み合
    わせて、前記フェッチしたベクトル命令によって遠隔メ
    モリ書き込みパケットを生成することを特徴とする請求
    項8に記載の遠隔メモリアクセス制御装置。
  10. 【請求項10】前記ローカルメモリに格納される前記パ
    ケット生成用情報の格納フォーマットを配列とすること
    を特徴とする請求項8に記載の遠隔メモリアクセス制御
    装置。
  11. 【請求項11】前記パケットが運ぶべき情報のデータ語
    数を指定できるベクトル命令を設け、 所定の語数の連続データの読み書きを1つのパケットで
    行う遠隔メモリバーストアクセスパケットを生成するこ
    とを特徴とする請求項8に記載の遠隔メモリアクセス制
    御装置。
  12. 【請求項12】前記パケット生成用情報には、メモリア
    ドレスの他に当該パケットが運ぶべき情報のデータ語数
    を持たせ、各パケット毎に所望の語数の連続データの読
    み書きを行う遠隔メモリバーストアクセスパケットを生
    成するようにしたことを特徴とする請求項8に記載の遠
    隔メモリアクセス制御装置。
  13. 【請求項13】前記パケット生成手段には、非特権モー
    ドでのプログラムからは特権モードに移行することなく
    直接制御することが不可能なプロテクション情報付加機
    構を設けるとともに、 他のプロセッサからの遠隔メモリアクセスパケットを受
    信した場合に、該パケット中のプロテクション情報に基
    づいてメモリアクセスの許可不許可を制御するメモリア
    クセス保護機構を備えたことを特徴とする請求項8に記
    載の遠隔メモリアクセス制御装置。
  14. 【請求項14】遠隔メモリを指定するアドレスとして送
    信側でシステムコールによって変換をかけた変換後アド
    レスを前記ローカルメモリに準備し、実際の遠隔メモリ
    アクセスの際には、前記変換後アドレスを再利用するこ
    とを特徴とする請求項7または13に記載の遠隔メモリ
    アクセス制御装置。
  15. 【請求項15】複数のプロセッサと物理的に分散して実
    装され論理的に該複数のプロセッサから共有メモリとし
    てアクセス可能な分散共有メモリとを具備する並列計算
    機において対応するプロセッサの該分散共有メモリに対
    する遠隔メモリアクセスを制御する遠隔メモリアクセス
    制御装置であって、 前記対応するプロセッサからの遠隔書き込み要求を検出
    するアクセス要求検出手段と、 前記遠隔書き込み要求に応答して、対応するパケットを
    生成し、所定のプロセッサに向けて送信する手段と、 前記対応するプロセッサ以外のプロセッサから前記遠隔
    書き込み要求に対応するパケットを受信する手段と、 前記遠隔書き込み要求に対応するパケットの内容に応じ
    て、対応するローカルメモリにデータ書き込み処理を行
    なう手段と、 前記遠隔書き込み要求に対応するパケットに対する前記
    処理の完了の回数を計数するカウンタ手段とを備えたこ
    とを特徴とする遠隔メモリアクセス制御装置。
JP7045779A 1995-03-06 1995-03-06 遠隔メモリアクセス制御装置 Expired - Lifetime JP2736237B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7045779A JP2736237B2 (ja) 1995-03-06 1995-03-06 遠隔メモリアクセス制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7045779A JP2736237B2 (ja) 1995-03-06 1995-03-06 遠隔メモリアクセス制御装置

Publications (2)

Publication Number Publication Date
JPH08241293A true JPH08241293A (ja) 1996-09-17
JP2736237B2 JP2736237B2 (ja) 1998-04-02

Family

ID=12728785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7045779A Expired - Lifetime JP2736237B2 (ja) 1995-03-06 1995-03-06 遠隔メモリアクセス制御装置

Country Status (1)

Country Link
JP (1) JP2736237B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502866B1 (en) 1999-05-26 2003-01-07 Osaka Gas Co., Ltd. One-touch joint for flexible tube
US6928529B2 (en) 2001-08-07 2005-08-09 Nec Corporation Data transfer between virtual addresses
US7136933B2 (en) 2001-06-06 2006-11-14 Nec Corporation Inter-processor communication systems and methods allowing for advance translation of logical addresses
JP2008269651A (ja) * 2000-10-18 2008-11-06 Beptech Inc 分散型多重処理システム
JP2010102694A (ja) * 2008-10-22 2010-05-06 Internatl Business Mach Corp <Ibm> 高スレッド化ネットワーク・オン・ア・チップ・プロセッサにおけるスループットをユーザが損なうのを防止するためのセキュリティ方法
CN105389120A (zh) * 2014-09-02 2016-03-09 英特尔公司 支持通过活动消息的rma api
JP2019041176A (ja) * 2017-08-23 2019-03-14 株式会社ソフトクリエイト 不正接続遮断装置及び不正接続遮断方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502866B1 (en) 1999-05-26 2003-01-07 Osaka Gas Co., Ltd. One-touch joint for flexible tube
JP2008269651A (ja) * 2000-10-18 2008-11-06 Beptech Inc 分散型多重処理システム
US7136933B2 (en) 2001-06-06 2006-11-14 Nec Corporation Inter-processor communication systems and methods allowing for advance translation of logical addresses
US6928529B2 (en) 2001-08-07 2005-08-09 Nec Corporation Data transfer between virtual addresses
JP2010102694A (ja) * 2008-10-22 2010-05-06 Internatl Business Mach Corp <Ibm> 高スレッド化ネットワーク・オン・ア・チップ・プロセッサにおけるスループットをユーザが損なうのを防止するためのセキュリティ方法
CN105389120A (zh) * 2014-09-02 2016-03-09 英特尔公司 支持通过活动消息的rma api
US9632973B2 (en) 2014-09-02 2017-04-25 Intel Corporation Supporting RMA API over active message
JP2019041176A (ja) * 2017-08-23 2019-03-14 株式会社ソフトクリエイト 不正接続遮断装置及び不正接続遮断方法

Also Published As

Publication number Publication date
JP2736237B2 (ja) 1998-04-02

Similar Documents

Publication Publication Date Title
US5835925A (en) Using external registers to extend memory reference capabilities of a microprocessor
JP2633488B2 (ja) 並列処理を実行する方法およびシステム
US5123094A (en) Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US5864738A (en) Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
JP4755390B2 (ja) メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
US5047917A (en) Apparatus for intrasystem communications within a binary n-cube including buffer lock bit
JP3003418B2 (ja) プロセッサ間データ通信方法
JP4106016B2 (ja) 入出力(i/o)通信のハードウェア・アクセラレーションを実現するデータ処理システム
JP4309420B2 (ja) 特定のspeを使ってcellプロセッサのアトミックなコンペア・アンド・スワップ命令を実行するための技術
JPH08180001A (ja) 通信方式及び通信方法及びネットワークインタフェース
JP4755391B2 (ja) メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
JPH04308956A (ja) 受信バッファ
KR100640515B1 (ko) 주변장치로부터 호스트 컴퓨터 시스템에 인터럽트를전달하기 위한 방법 및 장치
GB2418753A (en) Emulating shared memory in a distributed-memory computing system using memory windows
KR20130111167A (ko) 정보 처리 장치, 연산 장치 및 정보 전송 방법
JPH06309252A (ja) 相互接続インタフェース
Dally The J-machine: System support for Actors
WO2004109432A2 (en) Method and apparatus for local and distributed data memory access (&#39;dma&#39;) control
US5742843A (en) Control system for access between processing elements in a parallel computer
JP2010165022A (ja) プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体
JPH0944424A (ja) 遠隔情報処理システム間のメッセージ伝送方法
JP2000010818A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
JP4130465B2 (ja) メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術
JP2736237B2 (ja) 遠隔メモリアクセス制御装置
US7130936B1 (en) System, methods, and computer program product for shared memory queue

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090109

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090109

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100109

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20100109

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110109

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20140109

Year of fee payment: 16

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term