JPH0830567A - 並列計算機のプロセッサ間相互アクセス方法 - Google Patents
並列計算機のプロセッサ間相互アクセス方法Info
- Publication number
- JPH0830567A JPH0830567A JP6185408A JP18540894A JPH0830567A JP H0830567 A JPH0830567 A JP H0830567A JP 6185408 A JP6185408 A JP 6185408A JP 18540894 A JP18540894 A JP 18540894A JP H0830567 A JPH0830567 A JP H0830567A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- area
- identifier
- processors
- shared area
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 複数の並列プログラムが動作する並列計算機
の各プロセッサのプロセスが、他プロセッサ上のプロセ
スの仮想空間を相互にアクセス可能にする。 【構成】 並列計算機は、並列プログラムが動作中であ
る各プロセスの持つ全ての共有領域に共通な識別子とし
て並列プログラムの識別子を割当て、各プロセッサは共
有領域識別子に対応して自プロセッサ内の各プロセスの
共有領域の情報を保持する領域指定テーブル106、2
06を備え、要求側プロセッサ101は、識別子を領域
指定レジスタ104に、相手先プロセッサ番号をPE番
号レジスタにセットし、アクセスを行うデータの仮想ア
ドレスを指定し、識別子と相手先プロセッサ番号と仮想
アドレスをTLBで変換した実アドレスのオフセットを
返答側プロセッサ201に送出し、返答側は、領域指定
テーブルの内容と識別子に基づきオフセットを自己のプ
ロセッサ内での対応する実アドレスに変換する。
の各プロセッサのプロセスが、他プロセッサ上のプロセ
スの仮想空間を相互にアクセス可能にする。 【構成】 並列計算機は、並列プログラムが動作中であ
る各プロセスの持つ全ての共有領域に共通な識別子とし
て並列プログラムの識別子を割当て、各プロセッサは共
有領域識別子に対応して自プロセッサ内の各プロセスの
共有領域の情報を保持する領域指定テーブル106、2
06を備え、要求側プロセッサ101は、識別子を領域
指定レジスタ104に、相手先プロセッサ番号をPE番
号レジスタにセットし、アクセスを行うデータの仮想ア
ドレスを指定し、識別子と相手先プロセッサ番号と仮想
アドレスをTLBで変換した実アドレスのオフセットを
返答側プロセッサ201に送出し、返答側は、領域指定
テーブルの内容と識別子に基づきオフセットを自己のプ
ロセッサ内での対応する実アドレスに変換する。
Description
【0001】
【産業上の利用分野】本発明は並列計算機におけるプロ
セッサ間での相互アクセス方法に係り、特に複数の並列
プログラムが動作する並列計算機において各プロセッサ
上で動作するプロセスが他プロセッサ上で動作するプロ
セスの仮想空間にアクセス可能にするプロセッサ間相互
アクセス方法に関する。
セッサ間での相互アクセス方法に係り、特に複数の並列
プログラムが動作する並列計算機において各プロセッサ
上で動作するプロセスが他プロセッサ上で動作するプロ
セスの仮想空間にアクセス可能にするプロセッサ間相互
アクセス方法に関する。
【0002】
【従来の技術】複数のプロセッサを結合し並列処理を行
う並列計算機は、プロセッサ台数に応じた計算の高速化
を図ることが可能であるため重要な技術となっている。
プロセッサ台数が比較的少ない場合(〜数十台程度)に
は、共有メモリ型並列計算機が実用化されている。これ
に対しプロセッサ台数が多い場合(数百台〜)には、共
有メモリに対するアクセスの集中を避けるため、分散メ
モリ型並列計算機が開発されている。
う並列計算機は、プロセッサ台数に応じた計算の高速化
を図ることが可能であるため重要な技術となっている。
プロセッサ台数が比較的少ない場合(〜数十台程度)に
は、共有メモリ型並列計算機が実用化されている。これ
に対しプロセッサ台数が多い場合(数百台〜)には、共
有メモリに対するアクセスの集中を避けるため、分散メ
モリ型並列計算機が開発されている。
【0003】従来、分散メモリ型並列計算機において他
プロセッサ上のメモリのデータが必要な場合、相手先プ
ロセッサから自プロセッサ上のメモリに対してデータの
ブロック転送を行うメッセージパッシング方式が使用さ
れている。これに対して、共有メモリ型並列計算機の使
いやすさを分散メモリ型並列計算機で実現するために、
他プロセッサ上のメモリに対して直接アクセス可能であ
る分散共有メモリ型並列計算機の研究が盛んに行われて
いる。分散共有メモリ型並列計算機では、並列計算機内
の全メモリをアクセス可能とするために、グローバルア
ドレス空間を実現する必要がある。
プロセッサ上のメモリのデータが必要な場合、相手先プ
ロセッサから自プロセッサ上のメモリに対してデータの
ブロック転送を行うメッセージパッシング方式が使用さ
れている。これに対して、共有メモリ型並列計算機の使
いやすさを分散メモリ型並列計算機で実現するために、
他プロセッサ上のメモリに対して直接アクセス可能であ
る分散共有メモリ型並列計算機の研究が盛んに行われて
いる。分散共有メモリ型並列計算機では、並列計算機内
の全メモリをアクセス可能とするために、グローバルア
ドレス空間を実現する必要がある。
【0004】従来、ローカルメモリを持ち、独立に動作
可能な複数のプロセッサから構成されるクラスタを複数
用いて構成され、他クラスタの他プロセッサの仮想空間
を互いにアクセス可能な並列計算機においては、アドレ
ス変換方式として論理プロセッサ番号、論理ページ番号
およびページ内オフセットを指定してアクセスを行う方
式を採用していた。例えば、特開平5−89056およ
び特開平5−181751において論じられている方式
がこれに相当する。並列計算機がマルチプロセス環境を
実現する場合、複数のクラスタにまたがって複数の並列
プログラムが動作し、各プロセッサは複数のプロセスを
実行する必要があり、従来技術においてはあるプロセス
が他プロセッサに対してアクセスを行う時に、相手先の
プロセスを指定する方法がないため、全プロセッサ上で
同一のプロセスを動作させ、プロセス切替時には全プロ
セッサが同じ並列プログラムを構成するプロセスにプロ
セス切替を行うギャングスケジューリングと呼ばれるプ
ロセス切替方式を採用している。
可能な複数のプロセッサから構成されるクラスタを複数
用いて構成され、他クラスタの他プロセッサの仮想空間
を互いにアクセス可能な並列計算機においては、アドレ
ス変換方式として論理プロセッサ番号、論理ページ番号
およびページ内オフセットを指定してアクセスを行う方
式を採用していた。例えば、特開平5−89056およ
び特開平5−181751において論じられている方式
がこれに相当する。並列計算機がマルチプロセス環境を
実現する場合、複数のクラスタにまたがって複数の並列
プログラムが動作し、各プロセッサは複数のプロセスを
実行する必要があり、従来技術においてはあるプロセス
が他プロセッサに対してアクセスを行う時に、相手先の
プロセスを指定する方法がないため、全プロセッサ上で
同一のプロセスを動作させ、プロセス切替時には全プロ
セッサが同じ並列プログラムを構成するプロセスにプロ
セス切替を行うギャングスケジューリングと呼ばれるプ
ロセス切替方式を採用している。
【0005】
【発明が解決しようとする課題】上記従来技術おいて
は、ギャングスケジューリングではプロセス切替時に全
プロセッサに対してプロセス切替要求を送信し、全プロ
セッサが発行したアクセスが全て完了したことを確認し
た後、全プロセッサに対してプロセス切替命令を送信す
る必要があり、プロセス切替時に大きなオーバヘッドが
生じる。また、各プロセッサで異なるプロセスを実行す
ることができないため、並列プログラムを構成するプロ
セスの一部が実行中断状態にあっても、これらのプロセ
スのみをプロセス切替することはできない。本発明の目
的は、複数の並列プログラムが動作する並列計算機にお
いて並列プログラムの各プロセッサ担当部分であるプロ
セスが、各プロセッサで自由にタスクスイッチを行って
もプロセスの仮想空間を相互にアクセス可能である方法
を提供することである。
は、ギャングスケジューリングではプロセス切替時に全
プロセッサに対してプロセス切替要求を送信し、全プロ
セッサが発行したアクセスが全て完了したことを確認し
た後、全プロセッサに対してプロセス切替命令を送信す
る必要があり、プロセス切替時に大きなオーバヘッドが
生じる。また、各プロセッサで異なるプロセスを実行す
ることができないため、並列プログラムを構成するプロ
セスの一部が実行中断状態にあっても、これらのプロセ
スのみをプロセス切替することはできない。本発明の目
的は、複数の並列プログラムが動作する並列計算機にお
いて並列プログラムの各プロセッサ担当部分であるプロ
セスが、各プロセッサで自由にタスクスイッチを行って
もプロセスの仮想空間を相互にアクセス可能である方法
を提供することである。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、1台以上のプロセッサと該1台以上のプ
ロセッサにより使用される主記憶装置からなる複数のク
ラスタと、該複数のクラスタを接続するネットワークを
具備し、それぞれのプロセッサにおいて仮想空間が割り
当てられた少なくとも1つのプロセスが動作し、システ
ム内の1以上のクラスタ上の前記各プロセッサ上で動作
する複数の前記プロセスの集合により構成される並列プ
ログラムが少なくとも1つ動作する並列計算機におい
て、前記クラスタ内の各プロセッサで動作中の並列プロ
グラムのプロセッサ担当部分である前記プロセスが、他
クラスタ内のプロセッサ上で同一並列プログラムを構成
するプロセスの仮想空間上の共有領域に対応する実メモ
リ領域をアクセス可能にするプロセッサ間相互アクセス
方法であって、前記並列計算機は、並列プログラムが動
作中である各プロセスの持つ全ての共有領域に共通な識
別子として並列プログラムの識別子を割当て、各プロセ
ッサは前記共有領域識別子に対応して自プロセッサ内の
各プロセスの共有領域の情報を保持する領域指定テーブ
ルを備え、要求側プロセッサは前記共有領域識別子と、
アクセスを行う共有領域を保持する相手先プロセッサ番
号と、アクセスを行うデータの仮想アドレスを指定し、
該識別子と該相手先プロセッサ番号と該仮想アドレスを
変換して得られた実アドレスのオフセットを返答側プロ
セッサに送出してアクセスを行い、返答側プロセッサ
は、前記領域指定テーブルの内容と前記共有領域識別子
に基づき前記オフセットを自己のプロセッサ内での対応
する実アドレスに変換するようにしている。また、前記
並列計算機は、並列プログラムが動作中である各プロセ
スの共有領域全体に対応して1つの共有領域識別子を割
当てるようにしている。また、要求側プロセッサは前記
共有領域識別子と、アクセスを行うデータの仮想アドレ
スとしてアクセスを行う共有領域を保持する相手先プロ
セッサ番号を含む仮想アドレスを指定し、該識別子と、
該相手先プロセッサ番号を含む仮想アドレスを変換して
得られた相手先プロセッサ番号と実アドレスのオフセッ
トとを返答側プロセッサに送出してアクセスを行うよう
にしている。また、共有領域を実メモリ上で連続に確保
し、前記領域指定テーブルの各エントリは共有領域識別
子と共有領域に対応する実メモリ領域のベースアドレス
とサイズを有し、ネットワークインターフェイス回路
は、前記要求側プロセッサからの共有領域識別子により
前記領域指定テーブルをアクセスし、得られたエントリ
の前記ベースアドレスに前記要求側プロセッサからのオ
フセットを加算することにより実アドレスを求めるよう
にしている。また、前記領域指定テーブルをクラスタ毎
に設け、共有領域を実メモリ上で連続に確保し、該領域
指定テーブルの各エントリはクラスタ内プロセッサ番号
と共有領域識別子と共有領域に対応する実メモリ領域の
ベースアドレスとサイズを有し、ネットワークインター
フェイス回路は、前記要求側プロセッサからのプロセッ
サ番号と共有領域識別子により前記領域指定テーブルを
アクセスし、得られたエントリの前記ベースアドレスに
前記要求側プロセッサからのオフセットを加算すること
により実アドレスを求めるようにしている。また、前記
要求側プロセッサが送出する相手先プロセッサ番号を論
理プロセッサ番号とし、共有領域を実メモリ上で連続に
確保し、前記領域指定テーブルの各エントリは共有領域
識別子と論理プロセッサ番号と共有領域に対応する実メ
モリ領域のベースアドレスとサイズを有し、返答側プロ
セッサは、前記要求側プロセッサからの共有領域識別子
と論理プロセッサ番号により前記領域指定テーブルをア
クセスし、得られたエントリの前記ベースアドレスに前
記要求側プロセッサからのオフセットを加算することに
より実アドレスを求めるようにしている。また、前記領
域指定テーブルの各エントリは、さらに、共有領域識別
子に対応してアクセスの発行時にインクリメントされ、
アクセスの完了時にデクリメントされるカウント値を有
するようにしている。前記領域指定テーブルの各エント
リは、さらに、共有領域識別子に対応して領域有効フラ
グ、読み出しフラグ、書き込みフラグを有するようにし
ている。また、前記要求側プロセッサが指定する相手先
プロセッサ番号を論理プロセッサ番号とし、相手先プロ
セッサ番号を論理プロセッサ番号から物理プロセッサ番
号に変換するプロセッサ番号変換手段を設け、該手段に
より論理プロセッサ番号を物理プロセッサ番号に変換し
て返答側プロセッサに送出するようにしている。また、
前記領域指定テーブルを主記憶装置上に配置し、領域指
定テーブルキャッシュを設け、該領域指定テーブルキャ
ッシュに前記領域指定テーブルのエントリをキャッシン
グするようにしている。
め、本発明は、1台以上のプロセッサと該1台以上のプ
ロセッサにより使用される主記憶装置からなる複数のク
ラスタと、該複数のクラスタを接続するネットワークを
具備し、それぞれのプロセッサにおいて仮想空間が割り
当てられた少なくとも1つのプロセスが動作し、システ
ム内の1以上のクラスタ上の前記各プロセッサ上で動作
する複数の前記プロセスの集合により構成される並列プ
ログラムが少なくとも1つ動作する並列計算機におい
て、前記クラスタ内の各プロセッサで動作中の並列プロ
グラムのプロセッサ担当部分である前記プロセスが、他
クラスタ内のプロセッサ上で同一並列プログラムを構成
するプロセスの仮想空間上の共有領域に対応する実メモ
リ領域をアクセス可能にするプロセッサ間相互アクセス
方法であって、前記並列計算機は、並列プログラムが動
作中である各プロセスの持つ全ての共有領域に共通な識
別子として並列プログラムの識別子を割当て、各プロセ
ッサは前記共有領域識別子に対応して自プロセッサ内の
各プロセスの共有領域の情報を保持する領域指定テーブ
ルを備え、要求側プロセッサは前記共有領域識別子と、
アクセスを行う共有領域を保持する相手先プロセッサ番
号と、アクセスを行うデータの仮想アドレスを指定し、
該識別子と該相手先プロセッサ番号と該仮想アドレスを
変換して得られた実アドレスのオフセットを返答側プロ
セッサに送出してアクセスを行い、返答側プロセッサ
は、前記領域指定テーブルの内容と前記共有領域識別子
に基づき前記オフセットを自己のプロセッサ内での対応
する実アドレスに変換するようにしている。また、前記
並列計算機は、並列プログラムが動作中である各プロセ
スの共有領域全体に対応して1つの共有領域識別子を割
当てるようにしている。また、要求側プロセッサは前記
共有領域識別子と、アクセスを行うデータの仮想アドレ
スとしてアクセスを行う共有領域を保持する相手先プロ
セッサ番号を含む仮想アドレスを指定し、該識別子と、
該相手先プロセッサ番号を含む仮想アドレスを変換して
得られた相手先プロセッサ番号と実アドレスのオフセッ
トとを返答側プロセッサに送出してアクセスを行うよう
にしている。また、共有領域を実メモリ上で連続に確保
し、前記領域指定テーブルの各エントリは共有領域識別
子と共有領域に対応する実メモリ領域のベースアドレス
とサイズを有し、ネットワークインターフェイス回路
は、前記要求側プロセッサからの共有領域識別子により
前記領域指定テーブルをアクセスし、得られたエントリ
の前記ベースアドレスに前記要求側プロセッサからのオ
フセットを加算することにより実アドレスを求めるよう
にしている。また、前記領域指定テーブルをクラスタ毎
に設け、共有領域を実メモリ上で連続に確保し、該領域
指定テーブルの各エントリはクラスタ内プロセッサ番号
と共有領域識別子と共有領域に対応する実メモリ領域の
ベースアドレスとサイズを有し、ネットワークインター
フェイス回路は、前記要求側プロセッサからのプロセッ
サ番号と共有領域識別子により前記領域指定テーブルを
アクセスし、得られたエントリの前記ベースアドレスに
前記要求側プロセッサからのオフセットを加算すること
により実アドレスを求めるようにしている。また、前記
要求側プロセッサが送出する相手先プロセッサ番号を論
理プロセッサ番号とし、共有領域を実メモリ上で連続に
確保し、前記領域指定テーブルの各エントリは共有領域
識別子と論理プロセッサ番号と共有領域に対応する実メ
モリ領域のベースアドレスとサイズを有し、返答側プロ
セッサは、前記要求側プロセッサからの共有領域識別子
と論理プロセッサ番号により前記領域指定テーブルをア
クセスし、得られたエントリの前記ベースアドレスに前
記要求側プロセッサからのオフセットを加算することに
より実アドレスを求めるようにしている。また、前記領
域指定テーブルの各エントリは、さらに、共有領域識別
子に対応してアクセスの発行時にインクリメントされ、
アクセスの完了時にデクリメントされるカウント値を有
するようにしている。前記領域指定テーブルの各エント
リは、さらに、共有領域識別子に対応して領域有効フラ
グ、読み出しフラグ、書き込みフラグを有するようにし
ている。また、前記要求側プロセッサが指定する相手先
プロセッサ番号を論理プロセッサ番号とし、相手先プロ
セッサ番号を論理プロセッサ番号から物理プロセッサ番
号に変換するプロセッサ番号変換手段を設け、該手段に
より論理プロセッサ番号を物理プロセッサ番号に変換し
て返答側プロセッサに送出するようにしている。また、
前記領域指定テーブルを主記憶装置上に配置し、領域指
定テーブルキャッシュを設け、該領域指定テーブルキャ
ッシュに前記領域指定テーブルのエントリをキャッシン
グするようにしている。
【0007】
【作用】本発明は、並列プログラムを構成する各プロセ
ッサ上のプロセスの共有領域を共通の識別子で表し、他
プロセッサの共有領域アクセス時に自プロセスの共有領
域の識別子を付加する。そのため、他プロセッサ上でど
のプロセスが動作しているかによらず自プロセスに対応
する他プロセッサの共有領域をアクセスすることができ
る。
ッサ上のプロセスの共有領域を共通の識別子で表し、他
プロセッサの共有領域アクセス時に自プロセスの共有領
域の識別子を付加する。そのため、他プロセッサ上でど
のプロセスが動作しているかによらず自プロセスに対応
する他プロセッサの共有領域をアクセスすることができ
る。
【0008】
【実施例】 〈実施例1〉以下に、本発明の第1の実施例について説
明する。図1は、本発明に係る並列計算機を示す。本実
施例では複数のクラスタ100、200がネットワーク
300により結合されている。図1において、101、
201はプロセッサであり、従来技術によるマイクロプ
ロセッサと同様の構成であってよい。図1では簡単のた
めにプロセッサはクラスタあたり1つとしているが、各
クラスタ100、200は1つ以上のプロセッサからな
る密結合マルチプロセッサ構成を取る。各クラスタ10
0、200はプロセッサ部10、20と1つのネットワ
ークインターフェイス回路12、22および主記憶装置
107、207からなる。クラスタ100に複数プロセ
ッサを設けた場合はプロセッサ部10と同様のものが複
数接続される。クラスタ200に複数プロセッサを設け
た場合もプロセッサ部20と同様のものが複数接続され
る。
明する。図1は、本発明に係る並列計算機を示す。本実
施例では複数のクラスタ100、200がネットワーク
300により結合されている。図1において、101、
201はプロセッサであり、従来技術によるマイクロプ
ロセッサと同様の構成であってよい。図1では簡単のた
めにプロセッサはクラスタあたり1つとしているが、各
クラスタ100、200は1つ以上のプロセッサからな
る密結合マルチプロセッサ構成を取る。各クラスタ10
0、200はプロセッサ部10、20と1つのネットワ
ークインターフェイス回路12、22および主記憶装置
107、207からなる。クラスタ100に複数プロセ
ッサを設けた場合はプロセッサ部10と同様のものが複
数接続される。クラスタ200に複数プロセッサを設け
た場合もプロセッサ部20と同様のものが複数接続され
る。
【0009】主記憶装置107、207は、従来技術を
用いてアドレス線、データ線を使ってアクセスする。主
記憶装置には、例えば32ビットプロセッサでは0x0
0000000から0x7FFFFFFF(0xは16
進数であることを示す記号である)の範囲が実装されて
おり、最上位ビットが1であるアドレス空間には自プロ
セッサ内には対応する実メモリを持たないことにしてい
る。300は複数のクラスタ100、200を接続する
ネットワークであり、あるプロセッサから送信先プロセ
ッサアドレスを指定すると、ネットワークインターフェ
イス回路により制御され、そのアドレスに対応する相手
先プロセッサにデータ等を送信する。111、211
は、他プロセッサに対するメモリアクセス要求を送信す
る要求メッセージ送信回路、112、212は、他プロ
セッサからのメモリアクセス要求を受信する要求メッセ
ージ受信回路、113、213は、他プロセッサからの
メモリアクセス要求を要求メッセージ受信回路112、
212より得て主記憶装置107、207に対してアク
セスを行いメモリアクセスに対する返答メッセージを送
信する返答メッセージ送信回路、114、214は、自
プロセッサからのアクセス要求に対する相手先プロセッ
サからの返答メッセージを受信しプロセッサに対してア
クセスを返す返答メッセージ受信回路であり、それぞれ
ネットワークインターフェイス回路12、22内に存在
する。
用いてアドレス線、データ線を使ってアクセスする。主
記憶装置には、例えば32ビットプロセッサでは0x0
0000000から0x7FFFFFFF(0xは16
進数であることを示す記号である)の範囲が実装されて
おり、最上位ビットが1であるアドレス空間には自プロ
セッサ内には対応する実メモリを持たないことにしてい
る。300は複数のクラスタ100、200を接続する
ネットワークであり、あるプロセッサから送信先プロセ
ッサアドレスを指定すると、ネットワークインターフェ
イス回路により制御され、そのアドレスに対応する相手
先プロセッサにデータ等を送信する。111、211
は、他プロセッサに対するメモリアクセス要求を送信す
る要求メッセージ送信回路、112、212は、他プロ
セッサからのメモリアクセス要求を受信する要求メッセ
ージ受信回路、113、213は、他プロセッサからの
メモリアクセス要求を要求メッセージ受信回路112、
212より得て主記憶装置107、207に対してアク
セスを行いメモリアクセスに対する返答メッセージを送
信する返答メッセージ送信回路、114、214は、自
プロセッサからのアクセス要求に対する相手先プロセッ
サからの返答メッセージを受信しプロセッサに対してア
クセスを返す返答メッセージ受信回路であり、それぞれ
ネットワークインターフェイス回路12、22内に存在
する。
【0010】本実施例では、複数のクラスタ100、2
00上の複数のプロセッサ(101、201等)にまた
がって実行される並列プログラムは、各プロセッサ上で
動作するプロセスにより構成され、各プロセスはプロセ
スの共有領域に対応して主記憶装置107、207上に
実メモリ領域を持ち、共有領域の識別子としては並列プ
ログラムの識別子を並列プログラムを構成する全プロセ
スに共通の識別子として与える。各プロセッサ101、
201は、プロセッサで実行する全プロセスに対応する
共有領域の識別子をテーブルエントリとする領域指定テ
ーブル106、206を持つ。また、領域指定レジスタ
104、204は、現在実行中のプロセスの並列プログ
ラムの識別子を保持する。
00上の複数のプロセッサ(101、201等)にまた
がって実行される並列プログラムは、各プロセッサ上で
動作するプロセスにより構成され、各プロセスはプロセ
スの共有領域に対応して主記憶装置107、207上に
実メモリ領域を持ち、共有領域の識別子としては並列プ
ログラムの識別子を並列プログラムを構成する全プロセ
スに共通の識別子として与える。各プロセッサ101、
201は、プロセッサで実行する全プロセスに対応する
共有領域の識別子をテーブルエントリとする領域指定テ
ーブル106、206を持つ。また、領域指定レジスタ
104、204は、現在実行中のプロセスの並列プログ
ラムの識別子を保持する。
【0011】本実施例では、共有領域を実アドレス空間
で連続な領域として確保して、同一の並列プログラムを
構成する各プロセスに共通な並列プログラムの識別子を
共有領域の識別子として与え、共有領域を領域のベース
アドレスとサイズによって管理することによりページ単
位の管理を避けること、そして、他プロセスの共有領域
へのアクセス時に、プロセッサ番号(PE番号)とオフ
セットからなるアドレスにおけるオフセットをTLBに
よりアドレス変換し、この変換したオフセットのアドレ
スの他にアクセス側のプロセスの共有領域の識別子を付
加して、これをアクセスされる側である上記PE番号の
プロセッサの存在するクラスタに送出し、該クラスタは
これにより一意に定まる共有領域をアクセスすることに
より、アクセスされる側で動作中のプロセスに関わりな
く対応するプロセスの共有領域をアクセスできることに
特徴がある。
で連続な領域として確保して、同一の並列プログラムを
構成する各プロセスに共通な並列プログラムの識別子を
共有領域の識別子として与え、共有領域を領域のベース
アドレスとサイズによって管理することによりページ単
位の管理を避けること、そして、他プロセスの共有領域
へのアクセス時に、プロセッサ番号(PE番号)とオフ
セットからなるアドレスにおけるオフセットをTLBに
よりアドレス変換し、この変換したオフセットのアドレ
スの他にアクセス側のプロセスの共有領域の識別子を付
加して、これをアクセスされる側である上記PE番号の
プロセッサの存在するクラスタに送出し、該クラスタは
これにより一意に定まる共有領域をアクセスすることに
より、アクセスされる側で動作中のプロセスに関わりな
く対応するプロセスの共有領域をアクセスできることに
特徴がある。
【0012】各プロセスの仮想空間の構造を図2に示
す。図では、プロセッサ(PE)101上にプロセス
A、プロセスB、プロセスCが存在している。各プロセ
スは、プロセッサ101上のプロセスからのみアクセス
される仮想プライベート領域(仮想P領域)403、4
13、423と、共有領域のうち実体がプロセッサ10
1にあり、プロセッサ101および他プロセッサ上のプ
ロセスからアクセスされる仮想ローカル領域(仮想L領
域)402、412、422と、プロセッサ101から
他プロセッサ上の仮想ローカル領域をアクセスするため
のウィンドウである仮想グローバル領域(仮想G領域)
401、411、421からなる。ここで、プロセスA
の各領域401、402、403に付された“0”は領
域識別子であり、領域識別子としては並列プログラム番
号が用いられ、ここでは並列プログラム番号は“0”で
ある。また、プロセスBの各領域411、412、41
3の領域識別子は並列プログラム番号の“1”であり、
プロセスCの各領域421、422、423の領域識別
子は並列プログラム番号の“2”である。
す。図では、プロセッサ(PE)101上にプロセス
A、プロセスB、プロセスCが存在している。各プロセ
スは、プロセッサ101上のプロセスからのみアクセス
される仮想プライベート領域(仮想P領域)403、4
13、423と、共有領域のうち実体がプロセッサ10
1にあり、プロセッサ101および他プロセッサ上のプ
ロセスからアクセスされる仮想ローカル領域(仮想L領
域)402、412、422と、プロセッサ101から
他プロセッサ上の仮想ローカル領域をアクセスするため
のウィンドウである仮想グローバル領域(仮想G領域)
401、411、421からなる。ここで、プロセスA
の各領域401、402、403に付された“0”は領
域識別子であり、領域識別子としては並列プログラム番
号が用いられ、ここでは並列プログラム番号は“0”で
ある。また、プロセスBの各領域411、412、41
3の領域識別子は並列プログラム番号の“1”であり、
プロセスCの各領域421、422、423の領域識別
子は並列プログラム番号の“2”である。
【0013】仮想プライベート領域403、413、4
23は、プロセッサ101内のTLBによるアドレス変
換によってページ単位でプロセッサ101内の主記憶装
置107上の任意の実プライベート領域(実P領域)4
32、434、436、438へと変換される。このと
き、TLBの出力であるアドレスは最上位ビットが0と
なっており、アドレス判定回路102がこれを判定し、
アドレスは主記憶装置107に送出される。これによ
り、各プロセスから仮想プライベート領域403、41
3、423をアクセスすると対応する実プライベート領
域内のアドレスが参照される。
23は、プロセッサ101内のTLBによるアドレス変
換によってページ単位でプロセッサ101内の主記憶装
置107上の任意の実プライベート領域(実P領域)4
32、434、436、438へと変換される。このと
き、TLBの出力であるアドレスは最上位ビットが0と
なっており、アドレス判定回路102がこれを判定し、
アドレスは主記憶装置107に送出される。これによ
り、各プロセスから仮想プライベート領域403、41
3、423をアクセスすると対応する実プライベート領
域内のアドレスが参照される。
【0014】仮想ローカル領域402、412、422
は、プロセッサ101内のTLBによるアドレス変換に
よってプロセッサ101内の主記憶装置107上でそれ
ぞれ連続な実ローカル領域(実L領域)433、43
5、437へと変換される。このとき、TLBの出力で
あるアドレスは最上位ビットが0となっており、アドレ
ス判定回路102がこれを判定し、アドレスは主記憶装
置107に送出される。これにより各プロセスから仮想
ローカル領域402、412、422をアクセスすると
対応する実ローカル領域433、435、437内のア
ドレスが参照される。
は、プロセッサ101内のTLBによるアドレス変換に
よってプロセッサ101内の主記憶装置107上でそれ
ぞれ連続な実ローカル領域(実L領域)433、43
5、437へと変換される。このとき、TLBの出力で
あるアドレスは最上位ビットが0となっており、アドレ
ス判定回路102がこれを判定し、アドレスは主記憶装
置107に送出される。これにより各プロセスから仮想
ローカル領域402、412、422をアクセスすると
対応する実ローカル領域433、435、437内のア
ドレスが参照される。
【0015】仮想グローバル領域401、411、42
1は、プロセッサ101内のTLBによるアドレス変換
によって全て一つの連続な実グローバル領域(実G領
域)431へと変換される。変換の結果得られた実グロ
ーバル領域は、実アドレスの最上位ビットが1である領
域であり、主記憶装置107上には対応する領域を持た
ず、アドレス判定回路102がこれを判定し、変換出力
のアドレスを要求メッセージ送信回路111に送出す
る。
1は、プロセッサ101内のTLBによるアドレス変換
によって全て一つの連続な実グローバル領域(実G領
域)431へと変換される。変換の結果得られた実グロ
ーバル領域は、実アドレスの最上位ビットが1である領
域であり、主記憶装置107上には対応する領域を持た
ず、アドレス判定回路102がこれを判定し、変換出力
のアドレスを要求メッセージ送信回路111に送出す
る。
【0016】他プロセッサ201上では、実ローカル領
域445、447、443は任意のアドレスから始まる
連続領域であり、プロセッサ101上の対応する領域と
同じアドレスである必要はない。実ローカル領域445
の領域識別子は並列プログラム番号の“0”であり、実
ローカル領域447の領域識別子は並列プログラム番号
の“1”であり、実ローカル領域443の領域識別子は
並列プログラム番号の“2”である。
域445、447、443は任意のアドレスから始まる
連続領域であり、プロセッサ101上の対応する領域と
同じアドレスである必要はない。実ローカル領域445
の領域識別子は並列プログラム番号の“0”であり、実
ローカル領域447の領域識別子は並列プログラム番号
の“1”であり、実ローカル領域443の領域識別子は
並列プログラム番号の“2”である。
【0017】上記の各実ローカル領域に関する情報(領
域ベースアドレス、領域サイズ等)は図1の領域指定テ
ーブル106あるいは領域指定テーブル206に登録さ
れる。領域指定テーブル106、206の内容は図3に
示したように、領域識別子、領域有効フラグ、領域ベー
スアドレス、領域サイズ、アクセスカウンタ、読み出し
フラグ、書き込みフラグによりなる。領域識別子は、並
列プログラムを構成する各プロセスに対して与えられた
共通の識別子であり、並列プログラムの番号により指定
される。領域有効フラグは、各実ローカル領域の有効ま
たは無効を示すフラグであり、他プロセッサ101より
無効な実ローカル領域がアクセスされるとエラー判定回
路205がそれを判定し、そしてプロセッサ201に対
して割込をかける。領域ベースアドレスは実アドレス空
間上での各領域の先頭アドレスを示し、領域サイズは各
領域のバイト数を示す。
域ベースアドレス、領域サイズ等)は図1の領域指定テ
ーブル106あるいは領域指定テーブル206に登録さ
れる。領域指定テーブル106、206の内容は図3に
示したように、領域識別子、領域有効フラグ、領域ベー
スアドレス、領域サイズ、アクセスカウンタ、読み出し
フラグ、書き込みフラグによりなる。領域識別子は、並
列プログラムを構成する各プロセスに対して与えられた
共通の識別子であり、並列プログラムの番号により指定
される。領域有効フラグは、各実ローカル領域の有効ま
たは無効を示すフラグであり、他プロセッサ101より
無効な実ローカル領域がアクセスされるとエラー判定回
路205がそれを判定し、そしてプロセッサ201に対
して割込をかける。領域ベースアドレスは実アドレス空
間上での各領域の先頭アドレスを示し、領域サイズは各
領域のバイト数を示す。
【0018】アクセスカウンタは、他プロセッサ上の共
有領域へのアクセスの完了を、各共有領域毎に保証する
ために存在する。アクセスカウンタは、共有領域の作成
時に0にセットされる。プロセッサ101で他クラスタ
上のプロセッサ201に対するアクセスが発行される
と、アクセス発行時の領域指定レジスタ104の保持す
る値と同じ領域識別子を持つエントリを領域指定テーブ
ル106から検索し、このエントリのアクセスカウンタ
をインクリメントする。他クラスタ上のプロセッサ20
1に対して発行したアクセスが返答メッセージ受信回路
114に戻ると、メッセージ内の領域識別子に対応する
領域指定テーブル106のエントリのアクセスカウンタ
をデクリメントする。これにより、他クラスタ上のプロ
セッサの共有領域に対してアクセスを発行すると領域指
定テーブル106内の対応する領域のアクセスカウンタ
がインクリメントされ、発行したアクセスが戻ると領域
指定テーブル106内の対応する領域のアクセスカウン
タがデクリメントされる。このため、アクセスカウンタ
は他クラスタ上の共有領域に対して発行した全アクセス
の中で、完了していないアクセスの数を表す。並列プロ
グラムで同期を行なう場合、同期以前の全アクセスの完
了を保証する。この時、アクセスカウンタが0となるま
で待つことにより、同期以前の全アクセスの完了を保証
することができる。
有領域へのアクセスの完了を、各共有領域毎に保証する
ために存在する。アクセスカウンタは、共有領域の作成
時に0にセットされる。プロセッサ101で他クラスタ
上のプロセッサ201に対するアクセスが発行される
と、アクセス発行時の領域指定レジスタ104の保持す
る値と同じ領域識別子を持つエントリを領域指定テーブ
ル106から検索し、このエントリのアクセスカウンタ
をインクリメントする。他クラスタ上のプロセッサ20
1に対して発行したアクセスが返答メッセージ受信回路
114に戻ると、メッセージ内の領域識別子に対応する
領域指定テーブル106のエントリのアクセスカウンタ
をデクリメントする。これにより、他クラスタ上のプロ
セッサの共有領域に対してアクセスを発行すると領域指
定テーブル106内の対応する領域のアクセスカウンタ
がインクリメントされ、発行したアクセスが戻ると領域
指定テーブル106内の対応する領域のアクセスカウン
タがデクリメントされる。このため、アクセスカウンタ
は他クラスタ上の共有領域に対して発行した全アクセス
の中で、完了していないアクセスの数を表す。並列プロ
グラムで同期を行なう場合、同期以前の全アクセスの完
了を保証する。この時、アクセスカウンタが0となるま
で待つことにより、同期以前の全アクセスの完了を保証
することができる。
【0019】読み出しフラグは、他プロセッサからの共
有領域への読み出しアクセスの許可または不許可を指定
するフラグ、書き込みフラグは、他プロセッサからの共
有領域への書き込みアクセスの許可または不許可を指定
するフラグである。並列プログラムの中には、他プロセ
ッサの共有領域の読み出しは許可するが、他プロセッサ
の共有領域への書き込みは行なわないものがある。この
ような並列プログラムの実行時には、書き込みフラグで
他プロセッサの共有領域への書き込みアクセスを不許可
にすることで、誤った書き込みが発生するのを防ぐ。ま
た、並列プログラムの実行中に排他処理を行なう場合、
他プロセッサからの共有領域への読み出しおよび書き込
みを一時的に禁止する。これは、読み出しフラグ、書き
込みフラグを不許可状態にすることにより実現できる。
有領域への読み出しアクセスの許可または不許可を指定
するフラグ、書き込みフラグは、他プロセッサからの共
有領域への書き込みアクセスの許可または不許可を指定
するフラグである。並列プログラムの中には、他プロセ
ッサの共有領域の読み出しは許可するが、他プロセッサ
の共有領域への書き込みは行なわないものがある。この
ような並列プログラムの実行時には、書き込みフラグで
他プロセッサの共有領域への書き込みアクセスを不許可
にすることで、誤った書き込みが発生するのを防ぐ。ま
た、並列プログラムの実行中に排他処理を行なう場合、
他プロセッサからの共有領域への読み出しおよび書き込
みを一時的に禁止する。これは、読み出しフラグ、書き
込みフラグを不許可状態にすることにより実現できる。
【0020】プロセッサ101上のプロセスから他プロ
セッサ201上のプロセスのローカル領域をアクセスす
る場合、プロセッサ101上のグローバル領域が使用さ
れる。本実施例では、プロセッサ101上でプロセスA
が実行中である場合について説明する。 (ステップ1)プロセスA(領域識別子は並列プログラ
ム番号0である)が同一並列プログラムの他プロセッサ
201上のプロセスD(領域識別子は並列プログラム番
号0である)のローカル領域462をアクセスする時、
領域指定レジスタ104に並列プログラム番号0を領域
識別子として設定し、PE番号レジスタ103にアドレ
スの内のプロセッサ201のプロセッサ番号を設定し
て、仮想グローバル領域401に対してアクセスを行
う。アクセスの種類は、読み出し要求又は書き込み要求
であり、プロセッサの制御線により判定される。 (ステップ2)仮想グローバル領域401に対するアク
セスは、アドレスの内のオフセットをプロセッサ101
内のTLBによって実グローバル領域431へとアドレ
ス変換し、プロセッサのアドレス線120aに出力され
る。 (ステップ3)アドレス判定回路102は、アドレスの
最上位ビットが1であることにより実グローバル領域4
31へのアクセスと判定し、最上位ビットを0にセット
することにより相手先プロセッサ201の実ローカル領
域でのオフセットを求め、これを信号線170oを通し
て要求メッセージ回路111へ転送する。また、領域指
定レジスタの値に対応する領域指定テーブル106のア
クセスカウンタの値をインクリメントする。
セッサ201上のプロセスのローカル領域をアクセスす
る場合、プロセッサ101上のグローバル領域が使用さ
れる。本実施例では、プロセッサ101上でプロセスA
が実行中である場合について説明する。 (ステップ1)プロセスA(領域識別子は並列プログラ
ム番号0である)が同一並列プログラムの他プロセッサ
201上のプロセスD(領域識別子は並列プログラム番
号0である)のローカル領域462をアクセスする時、
領域指定レジスタ104に並列プログラム番号0を領域
識別子として設定し、PE番号レジスタ103にアドレ
スの内のプロセッサ201のプロセッサ番号を設定し
て、仮想グローバル領域401に対してアクセスを行
う。アクセスの種類は、読み出し要求又は書き込み要求
であり、プロセッサの制御線により判定される。 (ステップ2)仮想グローバル領域401に対するアク
セスは、アドレスの内のオフセットをプロセッサ101
内のTLBによって実グローバル領域431へとアドレ
ス変換し、プロセッサのアドレス線120aに出力され
る。 (ステップ3)アドレス判定回路102は、アドレスの
最上位ビットが1であることにより実グローバル領域4
31へのアクセスと判定し、最上位ビットを0にセット
することにより相手先プロセッサ201の実ローカル領
域でのオフセットを求め、これを信号線170oを通し
て要求メッセージ回路111へ転送する。また、領域指
定レジスタの値に対応する領域指定テーブル106のア
クセスカウンタの値をインクリメントする。
【0021】(ステップ4)要求メッセージ送信回路1
11は、領域内のオフセットを受けるとPE番号レジス
タ103の値、領域指定レジスタ104の値を信号線1
50p、160rを通して得る。また、アクセスが書き
込みであった場合には、書き込む値をデータ線132d
を通して得る。 (ステップ5)要求メッセージ送信回路111は、ステ
ップ4で得た情報を元に相手先プロセッサ201に対す
る要求メッセージを生成し、ネットワーク300に送出
する。要求メッセージは、図4に示すように、パケット
ヘッダ、転送データにより構成され、パケットヘッダ
は、受信側プロセッサ番号、送信側プロセッサ番号、転
送データ長、パケット種別、領域識別子、領域オフセッ
トからなる。受信側プロセッサ番号はPE番号レジスタ
103の値、送信側プロセッサ番号は自プロセッサ10
1のプロセッサ番号、転送データ長は転送データのサイ
ズ、パケット種別は要求メッセージの種別であり読み出
し要求又は書き込み要求、領域識別子は領域指定レジス
タの値、領域オフセットはアドレス判定回路102によ
り生成されたオフセットである。
11は、領域内のオフセットを受けるとPE番号レジス
タ103の値、領域指定レジスタ104の値を信号線1
50p、160rを通して得る。また、アクセスが書き
込みであった場合には、書き込む値をデータ線132d
を通して得る。 (ステップ5)要求メッセージ送信回路111は、ステ
ップ4で得た情報を元に相手先プロセッサ201に対す
る要求メッセージを生成し、ネットワーク300に送出
する。要求メッセージは、図4に示すように、パケット
ヘッダ、転送データにより構成され、パケットヘッダ
は、受信側プロセッサ番号、送信側プロセッサ番号、転
送データ長、パケット種別、領域識別子、領域オフセッ
トからなる。受信側プロセッサ番号はPE番号レジスタ
103の値、送信側プロセッサ番号は自プロセッサ10
1のプロセッサ番号、転送データ長は転送データのサイ
ズ、パケット種別は要求メッセージの種別であり読み出
し要求又は書き込み要求、領域識別子は領域指定レジス
タの値、領域オフセットはアドレス判定回路102によ
り生成されたオフセットである。
【0022】(ステップ6)要求メッセージは、プロセ
ッサ200の要求メッセージ受信回路212により受信
される。 (ステップ7)要求メッセージ受信回路212は、要求
メッセージの領域識別子を信号線261rを通じて領域
指定テーブル206に与え、対応する実ローカル領域の
属性を読み出す。この時、実ローカル領域445が領域
指定テーブル206に存在していない、または実ローカ
ル領域445の領域有効フラグが無効を示している場合
はエラーとなり、プロセッサ200に割込をかける。 (ステップ8)要求メッセージの領域識別子に対応する
有効な実ローカル領域445が存在する場合、要求メッ
セージの領域オフセットと領域指定テーブル206の対
応するエントリの領域サイズがエラー判定回路205で
比較され、領域オフセットが領域サイズ以上であるなら
エラーとなり信号線284eを使ってプロセッサ201
に割込をかける。また、読み出し要求アクセスにおいて
対応する有効な実ローカル領域の読み出しフラグが不許
可を示している場合、書き込み要求アクセスにおいて対
応する有効な実ローカル領域の書き込みフラグが不許可
を示している場合はエラーとなりプロセッサ201に割
込をかける。
ッサ200の要求メッセージ受信回路212により受信
される。 (ステップ7)要求メッセージ受信回路212は、要求
メッセージの領域識別子を信号線261rを通じて領域
指定テーブル206に与え、対応する実ローカル領域の
属性を読み出す。この時、実ローカル領域445が領域
指定テーブル206に存在していない、または実ローカ
ル領域445の領域有効フラグが無効を示している場合
はエラーとなり、プロセッサ200に割込をかける。 (ステップ8)要求メッセージの領域識別子に対応する
有効な実ローカル領域445が存在する場合、要求メッ
セージの領域オフセットと領域指定テーブル206の対
応するエントリの領域サイズがエラー判定回路205で
比較され、領域オフセットが領域サイズ以上であるなら
エラーとなり信号線284eを使ってプロセッサ201
に割込をかける。また、読み出し要求アクセスにおいて
対応する有効な実ローカル領域の読み出しフラグが不許
可を示している場合、書き込み要求アクセスにおいて対
応する有効な実ローカル領域の書き込みフラグが不許可
を示している場合はエラーとなりプロセッサ201に割
込をかける。
【0023】(ステップ9)正常にアクセスが行われた
場合以上のエラーは成立せず、領域指定テーブル206
から領域ベースアドレス280bが読み出され、加算器
208により領域オフセットを加えて対応する実ローカ
ル領域内のデータのアドレス223aが算出され返答メ
ッセージ送信回路213に与えられる。また、要求メッ
セージのヘッダ上の送信側プロセッサ番号、転送データ
長、パケット種別の各情報についても返答メッセージ送
信回路213に与えられる。 (ステップ10)返答メッセージ送信回路213は、ア
ドレス線222a、データ線238dを使って主記憶装
置207をアクセスし、結果を返答メッセージに組立て
ネットワーク300に送信する。 (ステップ11)返答メッセージ受信回路114は、返
答メッセージを受信してプロセッサ100に結果を返
す。以上の操作により、プロセスAの仮想グローバル領
域から他プロセッサ201上の同一並列プログラムを構
成するプロセスDの実ローカル領域445がアクセスで
き、結果としてプロセスDの仮想ローカル領域402を
アクセスしたこととなる。
場合以上のエラーは成立せず、領域指定テーブル206
から領域ベースアドレス280bが読み出され、加算器
208により領域オフセットを加えて対応する実ローカ
ル領域内のデータのアドレス223aが算出され返答メ
ッセージ送信回路213に与えられる。また、要求メッ
セージのヘッダ上の送信側プロセッサ番号、転送データ
長、パケット種別の各情報についても返答メッセージ送
信回路213に与えられる。 (ステップ10)返答メッセージ送信回路213は、ア
ドレス線222a、データ線238dを使って主記憶装
置207をアクセスし、結果を返答メッセージに組立て
ネットワーク300に送信する。 (ステップ11)返答メッセージ受信回路114は、返
答メッセージを受信してプロセッサ100に結果を返
す。以上の操作により、プロセスAの仮想グローバル領
域から他プロセッサ201上の同一並列プログラムを構
成するプロセスDの実ローカル領域445がアクセスで
き、結果としてプロセスDの仮想ローカル領域402を
アクセスしたこととなる。
【0024】次に、プロセッサ101においてプロセス
Aが実行を中断し、他の並列プログラム番号1のプロセ
スBが実行中となった場合について説明する。プロセス
切替によりプロセスBが実行中となった場合、領域指定
レジスタ104に領域識別子1が書き込まれる。プロセ
スBが実行中に他プロセッサ201に対するアクセスを
行う場合、前述の場合と同様に、PE番号レジスタ10
3にプロセッサ201のプロセッサ番号が書き込まれ仮
想グローバル領域411にアクセスする。そして仮想グ
ローバル領域411は実グローバル領域431に変換さ
れ、要求メッセージ送信回路により他プロセッサ201
へのアクセスが発行される。プロセッサ201では、領
域識別子として1が指定されているので、プロセッサ2
01の実ローカル領域447へのアクセスであると認識
され、アクセスが正しく行われる。このように領域識別
子は、アクセスされるプロセッサで動作中のプロセスに
関係なくアクセスする側のプロセッサによって指定する
ので、各プロセッサが異なる並列プログラムのプロセス
を実行中であっても記憶装置へのアクセスは問題なく動
作する。以上が実施例1である。
Aが実行を中断し、他の並列プログラム番号1のプロセ
スBが実行中となった場合について説明する。プロセス
切替によりプロセスBが実行中となった場合、領域指定
レジスタ104に領域識別子1が書き込まれる。プロセ
スBが実行中に他プロセッサ201に対するアクセスを
行う場合、前述の場合と同様に、PE番号レジスタ10
3にプロセッサ201のプロセッサ番号が書き込まれ仮
想グローバル領域411にアクセスする。そして仮想グ
ローバル領域411は実グローバル領域431に変換さ
れ、要求メッセージ送信回路により他プロセッサ201
へのアクセスが発行される。プロセッサ201では、領
域識別子として1が指定されているので、プロセッサ2
01の実ローカル領域447へのアクセスであると認識
され、アクセスが正しく行われる。このように領域識別
子は、アクセスされるプロセッサで動作中のプロセスに
関係なくアクセスする側のプロセッサによって指定する
ので、各プロセッサが異なる並列プログラムのプロセス
を実行中であっても記憶装置へのアクセスは問題なく動
作する。以上が実施例1である。
【0025】〈実施例1の変形例〉以上に示した実施例
では、共有領域の識別子として並列プログラムの識別子
を使用したが、共有領域自体に独自の識別子を設け、領
域識別子として、並列プログラムの識別子の識別子に代
えて、これを用いてもよい。この場合、各プロセッサ上
の各プロセスは複数の仮想ローカル領域とこれに対応す
る実ローカル領域を保持することができる。
では、共有領域の識別子として並列プログラムの識別子
を使用したが、共有領域自体に独自の識別子を設け、領
域識別子として、並列プログラムの識別子の識別子に代
えて、これを用いてもよい。この場合、各プロセッサ上
の各プロセスは複数の仮想ローカル領域とこれに対応す
る実ローカル領域を保持することができる。
【0026】上記のステップ1ではPE番号をPE番号
レジスタ103に書き込むことにより相手先プロセッサ
を指定しているが、アドレス判定回路102へPE番号
とオフセットを与えるようにTLBを構成し、アドレス
判定回路102の出力する領域オフセット線170oの
上位複数ビットにより指定指定するようにしてもよい。
この場合、PE番号レジスタ103は不要となる。この
場合TLBの出力データ幅は大きくなる。
レジスタ103に書き込むことにより相手先プロセッサ
を指定しているが、アドレス判定回路102へPE番号
とオフセットを与えるようにTLBを構成し、アドレス
判定回路102の出力する領域オフセット線170oの
上位複数ビットにより指定指定するようにしてもよい。
この場合、PE番号レジスタ103は不要となる。この
場合TLBの出力データ幅は大きくなる。
【0027】また、上記のステップ1では領域識別子を
領域番号レジスタ104に書き込むことにより相手先プ
ロセッサ内の領域を指定しているが、アドレス判定回路
へ領域識別子を与えるようにTLBを構成し、アドレス
判定回路102の出力する領域オフセット線170oの
上位複数ビットにより指定してもよい。この場合、領域
指定レジスタ104は不要となる。この場合TLBの出
力データ幅は大きくなる。
領域番号レジスタ104に書き込むことにより相手先プ
ロセッサ内の領域を指定しているが、アドレス判定回路
へ領域識別子を与えるようにTLBを構成し、アドレス
判定回路102の出力する領域オフセット線170oの
上位複数ビットにより指定してもよい。この場合、領域
指定レジスタ104は不要となる。この場合TLBの出
力データ幅は大きくなる。
【0028】〈実施例2〉本発明の実施例2を図5によ
って説明する。本実施例は実施例1の変形であるため、
相違点についてのみ説明する。本実施例は、領域指定テ
ーブル106−2、206−2をクラスタ100、20
0に一つとし、これに対応して領域指定テーブル106
−2、206−2の構造を変更している点が異なる。領
域指定テーブル106−2、206−2の構造を図6に
示す。本実施例での領域指定テーブル106−2の内容
は実施例1の領域指定テーブルにプロセッサ番号を付加
し、領域指定テーブル106−2をプロセッサ番号と共
有領域の識別子の組でアクセスする。
って説明する。本実施例は実施例1の変形であるため、
相違点についてのみ説明する。本実施例は、領域指定テ
ーブル106−2、206−2をクラスタ100、20
0に一つとし、これに対応して領域指定テーブル106
−2、206−2の構造を変更している点が異なる。領
域指定テーブル106−2、206−2の構造を図6に
示す。本実施例での領域指定テーブル106−2の内容
は実施例1の領域指定テーブルにプロセッサ番号を付加
し、領域指定テーブル106−2をプロセッサ番号と共
有領域の識別子の組でアクセスする。
【0029】本実施例では、プロセッサ101によるプ
ロセッサ201への要求メッセージが要求メッセージ受
信回路212に到着した場合の、クラスタ200内での
処理について実施例1のステップに沿って説明する。 (ステップ7)要求メッセージは、クラスタ200の要
求メッセージ受信回路212により受信される。要求メ
ッセージ回路212は領域指定テーブル106−2に対
してプロセッサ番号と要求メッセージの領域識別子を与
え、対応する実ローカル領域の属性を読み出す。実ロー
カル領域445が領域指定テーブル206に存在してい
ない、または実ローカル領域445の領域有効フラグが
無効を示している場合はエラーとなり、プロセッサ20
1に割込をかける。本実施例によれば、領域指定テーブ
ルをクラスタ単位で用意することにより、領域指定テー
ブルをクラスタ単位で一括して制御することができる。
ロセッサ201への要求メッセージが要求メッセージ受
信回路212に到着した場合の、クラスタ200内での
処理について実施例1のステップに沿って説明する。 (ステップ7)要求メッセージは、クラスタ200の要
求メッセージ受信回路212により受信される。要求メ
ッセージ回路212は領域指定テーブル106−2に対
してプロセッサ番号と要求メッセージの領域識別子を与
え、対応する実ローカル領域の属性を読み出す。実ロー
カル領域445が領域指定テーブル206に存在してい
ない、または実ローカル領域445の領域有効フラグが
無効を示している場合はエラーとなり、プロセッサ20
1に割込をかける。本実施例によれば、領域指定テーブ
ルをクラスタ単位で用意することにより、領域指定テー
ブルをクラスタ単位で一括して制御することができる。
【0030】〈実施例3〉本発明の実施例3を図7によ
って説明する。本実施例は実施例1の変形であるため、
相違点についてのみ説明する。本実施例は、PE番号レ
ジスタ103、203を実プロセッサ番号ではなく、論
理プロセッサ番号で指定する点のみが異なる。実プロセ
ッサ番号から論理プロセッサ番号への変換はアクセス発
行側のプロセッサ201内の図7に示した回路で行われ
る。図7の203−2はPE番号変換回路、203−3
はPE番号変換テーブルである。PE番号変換テーブル
203−3はPE番号変換回路203−2により領域の
識別子と論理プロセッサ番号の組でアクセスされ、実プ
ロセッサ番号を返すテーブルである。
って説明する。本実施例は実施例1の変形であるため、
相違点についてのみ説明する。本実施例は、PE番号レ
ジスタ103、203を実プロセッサ番号ではなく、論
理プロセッサ番号で指定する点のみが異なる。実プロセ
ッサ番号から論理プロセッサ番号への変換はアクセス発
行側のプロセッサ201内の図7に示した回路で行われ
る。図7の203−2はPE番号変換回路、203−3
はPE番号変換テーブルである。PE番号変換テーブル
203−3はPE番号変換回路203−2により領域の
識別子と論理プロセッサ番号の組でアクセスされ、実プ
ロセッサ番号を返すテーブルである。
【0031】本実施例では、プロセッサ201はPE番
号レジスタ203に論理プロセッサ番号を書き込む。P
E番号変換回路203−2はプロセッサのPE番号レジ
スタ203とプロセッサ群を表す領域指定レジスタ20
4の値の組でPE番号変換テーブル203−3をアクセ
スし、PE番号レジスタ203の論理プロセッサ番号か
ら実プロセッサ番号に変換して要求メッセージ送信回路
に転送する。 (ステップ4)要求メッセージ送信回路111は、領域
内のオフセットを受けると相手先プロセッサ番号、領域
指定レジスタ104の値を信号線150p、160rを
通して得る。また、アクセスが書き込みであった場合に
は、書き込む値をデータ線132dを通して得る。
号レジスタ203に論理プロセッサ番号を書き込む。P
E番号変換回路203−2はプロセッサのPE番号レジ
スタ203とプロセッサ群を表す領域指定レジスタ20
4の値の組でPE番号変換テーブル203−3をアクセ
スし、PE番号レジスタ203の論理プロセッサ番号か
ら実プロセッサ番号に変換して要求メッセージ送信回路
に転送する。 (ステップ4)要求メッセージ送信回路111は、領域
内のオフセットを受けると相手先プロセッサ番号、領域
指定レジスタ104の値を信号線150p、160rを
通して得る。また、アクセスが書き込みであった場合に
は、書き込む値をデータ線132dを通して得る。
【0032】本実施例により、各並列プログラムを並列
計算機内の任意のプロセッサの組み合せによるプロセッ
サ群で実行し、各プロセッサ上で複数のプロセスを実行
することができる。
計算機内の任意のプロセッサの組み合せによるプロセッ
サ群で実行し、各プロセッサ上で複数のプロセスを実行
することができる。
【0033】〈実施例4〉本発明の実施例4を説明す
る。本実施例は実施例3の変形であるため、異なる点に
ついてのみ説明する。本実施例では要求メッセージに論
理プロセッサ番号を付加し、相手先プロセッサ内で論理
プロセッサ番号と共有領域の識別子の組により領域指定
テーブル106をアクセスする点が実施例3と異なる。
る。本実施例は実施例3の変形であるため、異なる点に
ついてのみ説明する。本実施例では要求メッセージに論
理プロセッサ番号を付加し、相手先プロセッサ内で論理
プロセッサ番号と共有領域の識別子の組により領域指定
テーブル106をアクセスする点が実施例3と異なる。
【0034】本実施例での領域指定テーブル106−3
の構造を図8に示す。本実施例での領域指定テーブル1
06−3は論理プロセッサ番号が付加されており、論理
プロセッサ番号と共有領域の識別子の組によりアクセス
される。また、本実施例の要求メッセージの構造を図9
に示す。要求メッセージには相互結合網300によって
メッセージを返答側プロセッサ又はクラスタに転送する
ために必要な受信側プロセッサ番号に加えて、受信側論
理プロセッサ番号を付加する。
の構造を図8に示す。本実施例での領域指定テーブル1
06−3は論理プロセッサ番号が付加されており、論理
プロセッサ番号と共有領域の識別子の組によりアクセス
される。また、本実施例の要求メッセージの構造を図9
に示す。要求メッセージには相互結合網300によって
メッセージを返答側プロセッサ又はクラスタに転送する
ために必要な受信側プロセッサ番号に加えて、受信側論
理プロセッサ番号を付加する。
【0035】本実施例における各プロセスの仮想空間の
構造を図10に示す。図では、並列プログラムIが動作
しており、プロセッサ(PE)101上に論理プロセッ
サ0および論理プロセッサ1、プロセッサ201上に論
理プロセッサ2および論理プロセッサ3が配置されてい
る。論理プロセッサ0、1、2、3は順にプロセスA、
B、D、Eを実行する。501、511、521、56
1、571、581は各プロセスの仮想グローバル領
域、502、512、522、562、572、582
は各プロセスの仮想ローカル領域、503、513、5
23、563、573、583は各プロセスの仮想プラ
イベート領域、531、541はプロセッサ101、2
01の実グローバル領域、532、534、536、5
38、542、544、546、548はプロセッサ1
01、201の実プライベート領域、533はプロセス
Aの仮想ローカル領域502に対応するプロセッサ10
1の実ローカル領域、535はプロセスBの仮想ローカ
ル領域512に対応するプロセッサ101の実ローカル
領域、537はプロセスCの仮想ローカル領域522に
対応するプロセッサ101の実ローカル領域、545は
プロセスDの仮想ローカル領域562に対応するプロセ
ッサ201の実ローカル領域、547はプロセスEの仮
想ローカル領域572に対応するプロセッサ201の実
ローカル領域、543はプロセスFの仮想ローカル領域
582に対応するプロセッサ201の実ローカル領域で
ある。並列プログラムIの共有領域は仮想ローカル領域
502、512、562、572であり、共通の共有領
域の識別子0を使ってアクセスされる。
構造を図10に示す。図では、並列プログラムIが動作
しており、プロセッサ(PE)101上に論理プロセッ
サ0および論理プロセッサ1、プロセッサ201上に論
理プロセッサ2および論理プロセッサ3が配置されてい
る。論理プロセッサ0、1、2、3は順にプロセスA、
B、D、Eを実行する。501、511、521、56
1、571、581は各プロセスの仮想グローバル領
域、502、512、522、562、572、582
は各プロセスの仮想ローカル領域、503、513、5
23、563、573、583は各プロセスの仮想プラ
イベート領域、531、541はプロセッサ101、2
01の実グローバル領域、532、534、536、5
38、542、544、546、548はプロセッサ1
01、201の実プライベート領域、533はプロセス
Aの仮想ローカル領域502に対応するプロセッサ10
1の実ローカル領域、535はプロセスBの仮想ローカ
ル領域512に対応するプロセッサ101の実ローカル
領域、537はプロセスCの仮想ローカル領域522に
対応するプロセッサ101の実ローカル領域、545は
プロセスDの仮想ローカル領域562に対応するプロセ
ッサ201の実ローカル領域、547はプロセスEの仮
想ローカル領域572に対応するプロセッサ201の実
ローカル領域、543はプロセスFの仮想ローカル領域
582に対応するプロセッサ201の実ローカル領域で
ある。並列プログラムIの共有領域は仮想ローカル領域
502、512、562、572であり、共通の共有領
域の識別子0を使ってアクセスされる。
【0036】本実施例では、論理プロセッサ0で実行中
のプロセスAがプロセスAの仮想グローバル領域を使っ
て論理プロセッサ2上のプロセスDの仮想ローカル領域
をアクセスする場合について実施例3と異なる点を中心
に説明する。 (ステップ1)プロセッサ101は、プロセスAのプロ
グラムに従って領域指定レジスタ104に領域番号0を
設定し、PE番号レジスタ103に論理プロセッサ2の
プロセッサ番号を設定して、仮想グローバル領域501
に対してアクセスを行う。アクセスの種類は、読み出し
要求又は書き込み要求である。 (ステップ2)仮想グローバル領域に対するアクセス
は、プロセッサ101内のTLBによって実グローバル
領域531へとアドレス変換されプロセッサのアドレス
線120aに出力される。 (ステップ3)実施例1と同じである。 (ステップ4)実施例3のステップ4に加えて、要求メ
ッセージ送信回路111はPE番号レジスタ103から
論理プロセッサ番号を得る。 (ステップ5)実施例1のステップ5と同じであるが、
要求メッセージの構造は図9に示したもとなる。 (ステップ6)実施例1と同じである。 (ステップ7)要求メッセージ受信回路212は、要求
メッセージの領域識別子と論理プロセッサ番号を信号線
261rを通じて領域指定テーブル206に与え、対応
する実ローカル領域545の属性を読み出す。この時、
実ローカル領域545が領域指定テーブル206に存在
していない、または実ローカル領域545の領域有効フ
ラグが無効を示している場合はエラーとなり、プロセッ
サ201に割込をかける。 (ステップ8)実施例1と同じである。 (ステップ9)実施例1と同じである。 (ステップ10)実施例1と同じである。 (ステップ11)実施例1と同じである。 以上の操作により、論理プロセッサ0で実行中のプロセ
スAの仮想グローバル領域402から他論理プロセッサ
1上の同一並列プログラムを構成するプロセスDの実ロ
ーカル領域545がアクセスでき、結果としてプロセス
Dの仮想ローカル領域562をアクセスしたこととな
る。本実施例によれば、並列プログラムを構成するプロ
セスを1実プロセッサ上で複数実行することが可能とな
り、プロセッサ数を仮想化することができる。
のプロセスAがプロセスAの仮想グローバル領域を使っ
て論理プロセッサ2上のプロセスDの仮想ローカル領域
をアクセスする場合について実施例3と異なる点を中心
に説明する。 (ステップ1)プロセッサ101は、プロセスAのプロ
グラムに従って領域指定レジスタ104に領域番号0を
設定し、PE番号レジスタ103に論理プロセッサ2の
プロセッサ番号を設定して、仮想グローバル領域501
に対してアクセスを行う。アクセスの種類は、読み出し
要求又は書き込み要求である。 (ステップ2)仮想グローバル領域に対するアクセス
は、プロセッサ101内のTLBによって実グローバル
領域531へとアドレス変換されプロセッサのアドレス
線120aに出力される。 (ステップ3)実施例1と同じである。 (ステップ4)実施例3のステップ4に加えて、要求メ
ッセージ送信回路111はPE番号レジスタ103から
論理プロセッサ番号を得る。 (ステップ5)実施例1のステップ5と同じであるが、
要求メッセージの構造は図9に示したもとなる。 (ステップ6)実施例1と同じである。 (ステップ7)要求メッセージ受信回路212は、要求
メッセージの領域識別子と論理プロセッサ番号を信号線
261rを通じて領域指定テーブル206に与え、対応
する実ローカル領域545の属性を読み出す。この時、
実ローカル領域545が領域指定テーブル206に存在
していない、または実ローカル領域545の領域有効フ
ラグが無効を示している場合はエラーとなり、プロセッ
サ201に割込をかける。 (ステップ8)実施例1と同じである。 (ステップ9)実施例1と同じである。 (ステップ10)実施例1と同じである。 (ステップ11)実施例1と同じである。 以上の操作により、論理プロセッサ0で実行中のプロセ
スAの仮想グローバル領域402から他論理プロセッサ
1上の同一並列プログラムを構成するプロセスDの実ロ
ーカル領域545がアクセスでき、結果としてプロセス
Dの仮想ローカル領域562をアクセスしたこととな
る。本実施例によれば、並列プログラムを構成するプロ
セスを1実プロセッサ上で複数実行することが可能とな
り、プロセッサ数を仮想化することができる。
【0037】〈実施例5〉本発明の実施例5を図11に
よって説明する。本実施例は実施例1の変形であるた
め、相違点についてのみ説明する。本実施例は、領域指
定テーブル106、206を主記憶装置107、207
上に保持し、必要な部分についてのみ領域テーブルキャ
ッシュ106C、206C上にキャッシングする点のみ
が異なる。領域指定テーブルキャッシュ106C、20
6Cは、図3に示した領域指定テーブルの各要素毎にエ
ントリ有効ビットが付加されている他は領域指定テーブ
ルの構造と同じである。
よって説明する。本実施例は実施例1の変形であるた
め、相違点についてのみ説明する。本実施例は、領域指
定テーブル106、206を主記憶装置107、207
上に保持し、必要な部分についてのみ領域テーブルキャ
ッシュ106C、206C上にキャッシングする点のみ
が異なる。領域指定テーブルキャッシュ106C、20
6Cは、図3に示した領域指定テーブルの各要素毎にエ
ントリ有効ビットが付加されている他は領域指定テーブ
ルの構造と同じである。
【0038】本実施例では、プロセッサ101によるプ
ロセッサ201への要求メッセージが要求メッセージ受
信回路212に到着した場合の、クラスタ200内での
処理について実施例1のステップに沿って説明する。
ロセッサ201への要求メッセージが要求メッセージ受
信回路212に到着した場合の、クラスタ200内での
処理について実施例1のステップに沿って説明する。
【0039】(ステップ7)要求メッセージは、クラス
タ200の要求メッセージ受信回路212により受信さ
れる。要求メッセージ回路212は、要求メッセージの
領域識別子を信号線261rを通じて領域指定テーブル
キャッシュ206Cに与え、対応する実ローカル領域の
属性を読み出す。この時、対応する実ローカル領域の属
性が領域指定テーブルキャッシュ206C内に存在しな
い、又は、対応する実ローカル領域の属性のエントリ有
効ビットが無効を示している場合、主記憶装置207上
の領域指定テーブル206の対応する実ローカル領域の
属性をアクセスし、領域指定テーブルキャッシュ206
Cにキャッシングを行う。キャッシングについては従来
技術であるので説明は省略する。また、実ローカル領域
445が領域指定テーブル206に存在していない、ま
たは実ローカル領域445の領域有効フラグが無効を示
している場合はエラーとなり、プロセッサ200に割込
をかける。領域指定テーブル206を変更する場合、プ
ロセッサは領域指定テーブルキャッシュ206の全ての
エントリのエントリ有効ビットを無効にする。本実施例
によれば、領域指定テーブルを主記憶装置内におくこと
ができ実施例1に対してハードウェア量を減少させるこ
とができ、または、領域の最大数を増やすことができ
る。
タ200の要求メッセージ受信回路212により受信さ
れる。要求メッセージ回路212は、要求メッセージの
領域識別子を信号線261rを通じて領域指定テーブル
キャッシュ206Cに与え、対応する実ローカル領域の
属性を読み出す。この時、対応する実ローカル領域の属
性が領域指定テーブルキャッシュ206C内に存在しな
い、又は、対応する実ローカル領域の属性のエントリ有
効ビットが無効を示している場合、主記憶装置207上
の領域指定テーブル206の対応する実ローカル領域の
属性をアクセスし、領域指定テーブルキャッシュ206
Cにキャッシングを行う。キャッシングについては従来
技術であるので説明は省略する。また、実ローカル領域
445が領域指定テーブル206に存在していない、ま
たは実ローカル領域445の領域有効フラグが無効を示
している場合はエラーとなり、プロセッサ200に割込
をかける。領域指定テーブル206を変更する場合、プ
ロセッサは領域指定テーブルキャッシュ206の全ての
エントリのエントリ有効ビットを無効にする。本実施例
によれば、領域指定テーブルを主記憶装置内におくこと
ができ実施例1に対してハードウェア量を減少させるこ
とができ、または、領域の最大数を増やすことができ
る。
【0040】
【発明の効果】本発明によれば、並列計算機を構成する
各プロセッサが相手先プロセッサ上で動作中のプロセス
に関わらず、自プロセッサ上のプロセスに対応する共有
領域をアクセスすることができる。そのため、並列計算
機上で複数の並列プログラムを動作させることができ
る。
各プロセッサが相手先プロセッサ上で動作中のプロセス
に関わらず、自プロセッサ上のプロセスに対応する共有
領域をアクセスすることができる。そのため、並列計算
機上で複数の並列プログラムを動作させることができ
る。
【図面の簡単な説明】
【図1A】実施例1に係る並列計算機の構成の部分を示
す図である。
す図である。
【図1B】実施例1に係る並列計算機の構成の他の部分
を示す図である。
を示す図である。
【図2】実施例1に係る仮想アドレス空間と実アドレス
空間の関係を示す図である。
空間の関係を示す図である。
【図3】実施例1に係る領域指定テーブルの構成を示す
図である。
図である。
【図4】実施例1に係るパケットの構成を示す図であ
る。
る。
【図5A】実施例2に係る並列計算機の構成の部分を示
す図である。
す図である。
【図5B】実施例2に係る並列計算機の構成の他の部分
を示す図である。
を示す図である。
【図6】実施例2に係る領域指定テーブルの構成を示す
図である。
図である。
【図7】実施例3に係るプロセッサ番号変換回路の構成
を示す図である。
を示す図である。
【図8】実施例4に係る領域指定テーブルの構成を示す
図である。
図である。
【図9】実施例4に係るパケットの構成を示す図であ
る。
る。
【図10】実施例4に係る仮想アドレス空間と実アドレ
ス空間の関係を示す図である。
ス空間の関係を示す図である。
【図11A】本発明の実施例5に係る並列計算機の構成
の部分を示す図である。
の部分を示す図である。
【図11B】実施例5に係る並列計算機の構成の他の部
分を示す図である。
分を示す図である。
100、200 クラスタ 10、20、10−2、20−2、10−3、20−3
プロセッサ部 12、22、12−2、22−2、12−3、22−3
ネットワークインターフェイス回路 101、201 プロセッサ 102、202 アドレス判定回路 103、203 プロセッサ番号レジスタ 104、204 領域指定レジスタ 203−2 プロセッサ番号変換回路 203−3 プロセッサ番号変換テーブル 105、205 エラー判定回路 106、206 領域指定テーブル 106C、206C 領域指定テーブルキャッシュ 107、207 主記憶装置 108、208 アドレス加算器 111、211 要求メッセージ送信回路 112、212 要求メッセージ受信回路 113、213 返答メッセージ送信回路 114、214 返答メッセージ受信回路 300 相互結合網 120a、220a プロセッサアドレスバス 121a〜123a、221a〜223a 主記憶アク
セスアドレス線 130d〜139d、230d〜239d データ線 140m〜143m、240m〜243m メッセージ
線 150p、250p プロセッサ番号線 160r、161r、260r、261r 領域番号線 170o、171o、270o、271o 領域オフセ
ット線 180b、280b 領域ベースアドレス線 182s、282s 領域サイズ線 184e、284e エラー信号線
プロセッサ部 12、22、12−2、22−2、12−3、22−3
ネットワークインターフェイス回路 101、201 プロセッサ 102、202 アドレス判定回路 103、203 プロセッサ番号レジスタ 104、204 領域指定レジスタ 203−2 プロセッサ番号変換回路 203−3 プロセッサ番号変換テーブル 105、205 エラー判定回路 106、206 領域指定テーブル 106C、206C 領域指定テーブルキャッシュ 107、207 主記憶装置 108、208 アドレス加算器 111、211 要求メッセージ送信回路 112、212 要求メッセージ受信回路 113、213 返答メッセージ送信回路 114、214 返答メッセージ受信回路 300 相互結合網 120a、220a プロセッサアドレスバス 121a〜123a、221a〜223a 主記憶アク
セスアドレス線 130d〜139d、230d〜239d データ線 140m〜143m、240m〜243m メッセージ
線 150p、250p プロセッサ番号線 160r、161r、260r、261r 領域番号線 170o、171o、270o、271o 領域オフセ
ット線 180b、280b 領域ベースアドレス線 182s、282s 領域サイズ線 184e、284e エラー信号線
───────────────────────────────────────────────────── フロントページの続き (72)発明者 助川 直伸 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内
Claims (10)
- 【請求項1】 1台以上のプロセッサと該1台以上のプ
ロセッサにより使用される主記憶装置からなる複数のク
ラスタと、該複数のクラスタを接続するネットワークを
具備し、それぞれのプロセッサにおいて仮想空間が割り
当てられた少なくとも1つのプロセスが動作し、システ
ム内の1以上のクラスタ上の前記各プロセッサ上で動作
する複数の前記プロセスの集合により構成される並列プ
ログラムが少なくとも1つ動作する並列計算機におい
て、前記クラスタ内の各プロセッサで動作中の並列プロ
グラムのプロセッサ担当部分である前記プロセスが、他
クラスタ内のプロセッサ上で同一並列プログラムを構成
するプロセスの仮想空間上の共有領域に対応する実メモ
リ領域をアクセス可能にするプロセッサ間相互アクセス
方法であって、 前記並列計算機は、並列プログラムが動作中である各プ
ロセスの持つ全ての共有領域に共通な識別子として並列
プログラムの識別子を割当て、 各プロセッサは前記共有領域識別子に対応して自プロセ
ッサ内の各プロセスの共有領域の情報を保持する領域指
定テーブルを備え、 要求側プロセッサは前記共有領域識別子と、アクセスを
行う共有領域を保持する相手先プロセッサ番号と、アク
セスを行うデータの仮想アドレスを指定し、該識別子と
該相手先プロセッサ番号と該仮想アドレスを変換して得
られた実アドレスのオフセットを返答側プロセッサに送
出してアクセスを行い、 返答側プロセッサは、前記領域指定テーブルの内容と前
記共有領域識別子に基づき前記オフセットを自己のプロ
セッサ内での対応する実アドレスに変換することを特徴
とする並列計算機のプロセッサ間相互アクセス方法。 - 【請求項2】 1台以上のプロセッサと該1台以上のプ
ロセッサにより使用される主記憶装置からなる複数のク
ラスタと、該複数のクラスタを接続するネットワークを
具備し、それぞれのプロセッサにおいて仮想空間が割り
当てられた少なくとも1つのプロセスが動作し、システ
ム内の1以上のクラスタ上の前記各プロセッサ上で動作
する複数の前記プロセスの集合により構成される並列プ
ログラムが少なくとも1つ動作する並列計算機におい
て、前記クラスタ内の各プロセッサで動作中の並列プロ
グラムのプロセッサ担当部分である前記プロセスが、他
クラスタ内のプロセッサ上で同一並列プログラムを構成
するプロセスの仮想空間上の共有領域に対応する実メモ
リ領域をアクセス可能にするプロセッサ間相互アクセス
方法であって、 前記並列計算機は、並列プログラムが動作中である各プ
ロセスの共有領域全体に対応して1つの共有領域識別子
を割当て、 各プロセッサは該共有領域識別子に対応して自プロセッ
サ内の各プロセスの共有領域の情報を保持する領域指定
テーブルを持ち、 要求側プロセッサは前記共有領域識別子と、アクセスを
行う共有領域を保持する相手先プロセッサ番号と、アク
セスを行うデータの仮想アドレスを指定し、該識別子と
該相手先プロセッサ番号と該仮想アドレスを変換して得
られた実アドレスのオフセットを返答側プロセッサに送
出してアクセスを行い、 返答側プロセッサは、前記領域指定テーブルの内容と前
記共有領域識別子に基づき前記オフセットを自己のプロ
セッサ内での対応する実アドレスに変換することを特徴
とする並列計算機のプロセッサ間相互アクセス方法。 - 【請求項3】 請求項1または請求項2記載の並列計算
機のプロセッサ間相互アクセス方法において、 要求側プロセッサは前記共有領域識別子と、アクセスを
行うデータの仮想アドレスとしてアクセスを行う共有領
域を保持する相手先プロセッサ番号を含む仮想アドレス
を指定し、該識別子と、該相手先プロセッサ番号を含む
仮想アドレスを変換して得られた相手先プロセッサ番号
と実アドレスのオフセットとを返答側プロセッサに送出
してアクセスを行うことを特徴とする並列計算機のプロ
セッサ間相互アクセス方法。 - 【請求項4】 請求項1乃至請求項3のいずれかの請求
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 共有領域を実メモリ上で連続に確保し、前記領域指定テ
ーブルの各エントリは共有領域識別子と共有領域に対応
する実メモリ領域のベースアドレスとサイズを有し、 返答側プロセッサは、前記要求側プロセッサからの共有
領域識別子により前記領域指定テーブルをアクセスし、
得られたエントリの前記ベースアドレスに前記要求側プ
ロセッサからのオフセットを加算することにより実アド
レスを求めることを特徴とする並列計算機のプロセッサ
間相互アクセス方法。 - 【請求項5】 請求項1乃至請求項3のいずれかの請求
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記領域指定テーブルをクラスタ毎に設け、 共有領域を実メモリ上で連続に確保し、該領域指定テー
ブルの各エントリはクラスタ内プロセッサ番号と共有領
域識別子と共有領域に対応する実メモリ領域のベースア
ドレスとサイズを有し、 返答側プロセッサは、前記要求側プロセッサからのプロ
セッサ番号と共有領域識別子により前記領域指定テーブ
ルをアクセスし、得られたエントリの前記ベースアドレ
スに前記要求側プロセッサからのオフセットを加算する
ことにより実アドレスを求めることを特徴とする並列計
算機のプロセッサ間相互アクセス方法。 - 【請求項6】 請求項1乃至請求項3のいずれかの請求
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記要求側プロセッサが送出する相手先プロセッサ番号
を論理プロセッサ番号とし、 共有領域を実メモリ上で連続に確保し、前記領域指定テ
ーブルの各エントリは共有領域識別子と論理プロセッサ
番号と共有領域に対応する実メモリ領域のベースアドレ
スとサイズを有し、 返答側プロセッサは、前記要求側プロセッサからの共有
領域識別子と論理プロセッサ番号により前記領域指定テ
ーブルをアクセスし、得られたエントリの前記ベースア
ドレスに前記要求側プロセッサからのオフセットを加算
することにより実アドレスを求めることを特徴とする並
列計算機のプロセッサ間相互アクセス方法。 - 【請求項7】 請求項4乃至請求項6のいずれかの請求
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記領域指定テーブルの各エントリは、さらに、共有領
域識別子に対応してアクセスの発行時にインクリメント
され、アクセスの完了時にデクリメントされるカウント
値を有することを特徴とする並列計算機のプロセッサ間
相互アクセス方法。 - 【請求項8】 請求項4乃至請求項6のいずれかの請求
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記領域指定テーブルの各エントリは、さらに、共有領
域識別子に対応して領域有効フラグ、読み出しフラグ、
書き込みフラグを有することを特徴とする並列計算機の
プロセッサ間相互アクセス方法。 - 【請求項9】 請求項1乃至請求項3のいずれかの請求
項記載の並列計算機のプロセッサ間相互アクセス方法に
おいて、 前記要求側プロセッサが指定する相手先プロセッサ番号
を論理プロセッサ番号とし、 相手先プロセッサ番号を論理プロセッサ番号から物理プ
ロセッサ番号に変換するプロセッサ番号変換手段を設
け、 該手段により論理プロセッサ番号を物理プロセッサ番号
に変換して返答側プロセッサに送出することを特徴とす
る並列計算機のプロセッサ間相互アクセス方法。 - 【請求項10】 請求項1乃至請求項3のいずれかの請
求項記載の並列計算機のプロセッサ間相互アクセス方法
において、 前記領域指定テーブルを主記憶装置上に配置し、領域指
定テーブルキャッシュを設け、該領域指定テーブルキャ
ッシュに前記領域指定テーブルのエントリをキャッシン
グすることを特徴とする並列計算機のプロセッサ間相互
アクセス方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6185408A JPH0830567A (ja) | 1994-07-14 | 1994-07-14 | 並列計算機のプロセッサ間相互アクセス方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6185408A JPH0830567A (ja) | 1994-07-14 | 1994-07-14 | 並列計算機のプロセッサ間相互アクセス方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0830567A true JPH0830567A (ja) | 1996-02-02 |
Family
ID=16170275
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6185408A Pending JPH0830567A (ja) | 1994-07-14 | 1994-07-14 | 並列計算機のプロセッサ間相互アクセス方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0830567A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007080718A1 (ja) * | 2006-01-16 | 2007-07-19 | Sony Corporation | ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法 |
-
1994
- 1994-07-14 JP JP6185408A patent/JPH0830567A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007080718A1 (ja) * | 2006-01-16 | 2007-07-19 | Sony Corporation | ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7577816B2 (en) | Remote translation mechanism for a multinode system | |
| US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
| Dubnicki et al. | Software support for virtual memory-mapped communication | |
| JP2625385B2 (ja) | マルチプロセッサシステム | |
| JP2819982B2 (ja) | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム | |
| US5123094A (en) | Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers | |
| US6295598B1 (en) | Split directory-based cache coherency technique for a multi-processor computer system | |
| JP2977688B2 (ja) | マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ | |
| JP3687990B2 (ja) | メモリアクセス機構 | |
| JPH1196127A (ja) | 第1のコンピュータと第2のコンピュータとの間で遠隔ディスク読取り操作を実施する方法と装置 | |
| US5574862A (en) | Multiprocessing system with distributed input/output management | |
| JP2974526B2 (ja) | データ転送処理方法及びデータ転送処理装置 | |
| US20050144422A1 (en) | Virtual to physical address translation | |
| US20040093455A1 (en) | System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system | |
| US20040162952A1 (en) | Global pointers for scalable parallel applications | |
| CN111431757A (zh) | 虚拟网络的流量采集方法及装置 | |
| JPH0816470A (ja) | 並列計算機 | |
| JPH0950404A (ja) | 遅延ページ再マッピングを使用するドメイン間データ転送 | |
| CN114328295A (zh) | 存储管理装置、处理器、相关装置和相关方法 | |
| JP2005141606A (ja) | マルチプロセッサシステム | |
| US20240202144A1 (en) | Coherent block read fulfillment | |
| JPH10187631A (ja) | 拡張された対称マルチプロセッサ・アーキテクチャ | |
| JPH0830567A (ja) | 並列計算機のプロセッサ間相互アクセス方法 | |
| US8688890B2 (en) | Bit ordering for communicating an address on a serial fabric | |
| EP1396790A2 (en) | Remote translation mechanism of a virtual address from a source a node in a multi-node system |