JP2003178039A - 分散共有仮想メモリーとその構成方法 - Google Patents
分散共有仮想メモリーとその構成方法Info
- Publication number
- JP2003178039A JP2003178039A JP2002280316A JP2002280316A JP2003178039A JP 2003178039 A JP2003178039 A JP 2003178039A JP 2002280316 A JP2002280316 A JP 2002280316A JP 2002280316 A JP2002280316 A JP 2002280316A JP 2003178039 A JP2003178039 A JP 2003178039A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- network
- address
- node
- virtual
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【課題】 複数のプロセッサやコンピュータ、マルチプ
ロセッサ、および電子的あるいは光デバイスを接続する
分散共有メモリーによってプロセッサ間通信を行う。 【解決手段】 複数のコンピュータノードからなるコン
ピュータネットワークの各ノードに1つのプロセッサを
有し、ネットワークは前記ノード間の相互接続よりな
り、各ノードにネットワークに相互接続するためのリン
クハードウエアからなるアダプターカードと、入力バッ
ファーと、メモリーロケーションと、ページテーブル
と、1組の制御・ステータスレジスターと、出力バッフ
ァーを有する。これにより、すべてのネットワークのア
クティビテーが書き込みと制御動作だけで完了し得る。
ロセッサ、および電子的あるいは光デバイスを接続する
分散共有メモリーによってプロセッサ間通信を行う。 【解決手段】 複数のコンピュータノードからなるコン
ピュータネットワークの各ノードに1つのプロセッサを
有し、ネットワークは前記ノード間の相互接続よりな
り、各ノードにネットワークに相互接続するためのリン
クハードウエアからなるアダプターカードと、入力バッ
ファーと、メモリーロケーションと、ページテーブル
と、1組の制御・ステータスレジスターと、出力バッフ
ァーを有する。これにより、すべてのネットワークのア
クティビテーが書き込みと制御動作だけで完了し得る。
Description
【0001】
【発明の属する技術分野】本発明は、ネットワーク中の
複数の遠隔地点のノードに分散しているメモリーの共有
に関する。特に、非同期的に動作している複数のノード
について、ネットワークに接続されているコンピュータ
ーの物理的メモリーへの書き込みのみならず、仮想メモ
リーキャッシュ(cache)へのアクセスや、また相
互通信における共有仮想メモリー空間へのマッピングな
どについての方法ならびに手段を教示する。
複数の遠隔地点のノードに分散しているメモリーの共有
に関する。特に、非同期的に動作している複数のノード
について、ネットワークに接続されているコンピュータ
ーの物理的メモリーへの書き込みのみならず、仮想メモ
リーキャッシュ(cache)へのアクセスや、また相
互通信における共有仮想メモリー空間へのマッピングな
どについての方法ならびに手段を教示する。
【0002】
【従来の技術】マルチコンピューターの配置法の高度化
によって、マルチプロセッサーシステムが開発されてき
た結果、データ処理の必要性が高まってきている。マル
チプロセッサーの分野では、複数のプロセッサーが同時
にプログラムを実行し、入出力デバイスなどの資源を共
有して、相互に影響を及ぼし合う。一般的に、このよう
なシステムのマルチプロセッサーは共通メモリーにたく
わえられたデータを共有している。それ以外にも、各プ
ロセッサーは非共有データ用の付加的メモリーに対して
も専用のアクセスを行う。共有メモリーに関しては、多
くのプロセッサーがデータにアクセスしようとして競合
し、そのことは時間的にも資源的にも、効率低下をもた
らす。
によって、マルチプロセッサーシステムが開発されてき
た結果、データ処理の必要性が高まってきている。マル
チプロセッサーの分野では、複数のプロセッサーが同時
にプログラムを実行し、入出力デバイスなどの資源を共
有して、相互に影響を及ぼし合う。一般的に、このよう
なシステムのマルチプロセッサーは共通メモリーにたく
わえられたデータを共有している。それ以外にも、各プ
ロセッサーは非共有データ用の付加的メモリーに対して
も専用のアクセスを行う。共有メモリーに関しては、多
くのプロセッサーがデータにアクセスしようとして競合
し、そのことは時間的にも資源的にも、効率低下をもた
らす。
【0003】マルチコンピューターシステムは、共有デ
ータのそれぞれのコピーを持つ多くのノードを通して動
作することが多い。共有メモリーが矛盾なく動作するた
めには、各ノードは、すべての関連するノードにある共
有データを同時に書き換えることができるように、他の
ノードにしまわれているデータ、すなわち、「物理メモ
リー」に直接アクセスできなければならない。共有物理
メモリーについての一つの問題点は、メモリーの同じロ
ケーションに1つ以上のコンピューターが同時に書き込
もうとすると、ノード間に矛盾が生ずることである。さ
らに、一つのノードは、他の何れかのノードがデータ更
新のため書き込み動作期間にある間、インアクティブに
保持されなければならないということも問題である。
ータのそれぞれのコピーを持つ多くのノードを通して動
作することが多い。共有メモリーが矛盾なく動作するた
めには、各ノードは、すべての関連するノードにある共
有データを同時に書き換えることができるように、他の
ノードにしまわれているデータ、すなわち、「物理メモ
リー」に直接アクセスできなければならない。共有物理
メモリーについての一つの問題点は、メモリーの同じロ
ケーションに1つ以上のコンピューターが同時に書き込
もうとすると、ノード間に矛盾が生ずることである。さ
らに、一つのノードは、他の何れかのノードがデータ更
新のため書き込み動作期間にある間、インアクティブに
保持されなければならないということも問題である。
【0004】その他にも、一時に1つの更新のみが可能
な1つのメモリーを共有する2つ以上のノードを持つシ
ステムでは、異なるノード間では、対応するメモリー位
置において異なる値、すなわち、一方では更新されてい
るが、他方では未だ更新されていない、ということがあ
るかも知れない、というよりは、大いにあり得る。一般
的には、メモリーの共有を行うために、ネットワーク中
の他のノードからの直接アクセスを確保するため、共有
されるべきデータが各ノードのモード空間中で同一のメ
モリー位置を占めることが要求されてきていた。この固
定したロケーションの物理メモリーを共有するというこ
とは、各ノードにそれら自身ののメモリー空間を最も効
率的に割当てることを妨げるものである。2台以上の機
器にこのメモリー共有の概念を拡張することは、上述の
障害がある限り困難である。
な1つのメモリーを共有する2つ以上のノードを持つシ
ステムでは、異なるノード間では、対応するメモリー位
置において異なる値、すなわち、一方では更新されてい
るが、他方では未だ更新されていない、ということがあ
るかも知れない、というよりは、大いにあり得る。一般
的には、メモリーの共有を行うために、ネットワーク中
の他のノードからの直接アクセスを確保するため、共有
されるべきデータが各ノードのモード空間中で同一のメ
モリー位置を占めることが要求されてきていた。この固
定したロケーションの物理メモリーを共有するというこ
とは、各ノードにそれら自身ののメモリー空間を最も効
率的に割当てることを妨げるものである。2台以上の機
器にこのメモリー共有の概念を拡張することは、上述の
障害がある限り困難である。
【0005】プロセッサー間の通信は、ネットワークの
バンド幅や上述の整合に関する問題によって制限され
る。最近提案されている高速コンピューターネットワー
クのアーキテクチャーの多くのものは、従来の物理的接
続にもとづくバスやリングから、集中スイッチングにも
とづく接続へと移行しつつある。このスイッチング・ネ
ットワークのアーキテクチャーは、分散システム上で動
く画像やマルチメディアなどへの応用の、より高速なデ
ータ伝送速度ならびにスループットを約束するものであ
る。さらに、高速スイッチング技術にもとづくネットワ
ーク・アーキテクチャーは、パーソナルコンピューター
からスーパーコンピューターシステムまでを含む商用コ
ンピューターネットワークを悩ませているプロセッサー
間通信のボトルネックを根本的に取除く可能性を秘めて
いる。
バンド幅や上述の整合に関する問題によって制限され
る。最近提案されている高速コンピューターネットワー
クのアーキテクチャーの多くのものは、従来の物理的接
続にもとづくバスやリングから、集中スイッチングにも
とづく接続へと移行しつつある。このスイッチング・ネ
ットワークのアーキテクチャーは、分散システム上で動
く画像やマルチメディアなどへの応用の、より高速なデ
ータ伝送速度ならびにスループットを約束するものであ
る。さらに、高速スイッチング技術にもとづくネットワ
ーク・アーキテクチャーは、パーソナルコンピューター
からスーパーコンピューターシステムまでを含む商用コ
ンピューターネットワークを悩ませているプロセッサー
間通信のボトルネックを根本的に取除く可能性を秘めて
いる。
【0006】プロセッサー間通信のボトルネックを除く
ためには、SRAMアクセスのスピードが要求される
し、またこのことは、さらに、以下に述べる同程度に重
要な次の二つの問題の解決を必要としている。これら二
つの問題を、1つのネットワークにリンクされた2つの
コンピューターまたは2つのノード、10および11、
を含む従来例を示す図1を用いて説明する。それぞれの
コンピューターは、それぞれプロセッサー(P)12、
13、メモリー(M)14、15、および、ネットワー
クアダプタ(NA)16、17からなる。「A」とラベル
した線路18、19は、それぞれのコンピューター内に
おいて、メモリーをネットワークアダプタに接続するも
のであり、ユーザーのメモリーアドレス空間からネット
ワークアダプタ・ハードウエアの出力ポートまでのバン
ド幅を表わしている。番号20で示した「B」とラベル
した線路はネットワークについてのバンド幅、すなわ
ち、ネットワークアダプタの出力ポート、たとえば1
6、からいま一つのネットワークアダプタの対応する出
力ポート、ここでは17、までのネットワークのバンド
幅を表わしている。一言で云えば、プロセッサー間通信
の目標とするところは、データを1つのコンピューター
のメモリー空間から他の1つまたはそれ以上の数のコン
ピューターのメモリー空間へ動かすことである。したが
って、「A」とか「B」で表わされているバンド幅は、
いずれもネットワークの性能に密接に関係する。
ためには、SRAMアクセスのスピードが要求される
し、またこのことは、さらに、以下に述べる同程度に重
要な次の二つの問題の解決を必要としている。これら二
つの問題を、1つのネットワークにリンクされた2つの
コンピューターまたは2つのノード、10および11、
を含む従来例を示す図1を用いて説明する。それぞれの
コンピューターは、それぞれプロセッサー(P)12、
13、メモリー(M)14、15、および、ネットワー
クアダプタ(NA)16、17からなる。「A」とラベル
した線路18、19は、それぞれのコンピューター内に
おいて、メモリーをネットワークアダプタに接続するも
のであり、ユーザーのメモリーアドレス空間からネット
ワークアダプタ・ハードウエアの出力ポートまでのバン
ド幅を表わしている。番号20で示した「B」とラベル
した線路はネットワークについてのバンド幅、すなわ
ち、ネットワークアダプタの出力ポート、たとえば1
6、からいま一つのネットワークアダプタの対応する出
力ポート、ここでは17、までのネットワークのバンド
幅を表わしている。一言で云えば、プロセッサー間通信
の目標とするところは、データを1つのコンピューター
のメモリー空間から他の1つまたはそれ以上の数のコン
ピューターのメモリー空間へ動かすことである。したが
って、「A」とか「B」で表わされているバンド幅は、
いずれもネットワークの性能に密接に関係する。
【0007】上記の2つの問題のうちの第1の問題は、
ネットワークのバンド幅の問題であり、分散共有メモリ
ーの更新に必要と考えられるであろうことであって、潜
在的に大きなネットワーク全体に対して、如何にして、
データを迅速かつ確実に多方方向に送り出すかというこ
とである。バンド幅「B」がネットワーク全体を通じて
維持されるのでなければ、ネットワークを通じての伝送
は分散システムのボトルネックを解消することはできな
い。一旦データがネットワークに与えられたならば、そ
れが如何なるルートを通って指定された組のネットワー
クの目的地に配送されるかが、バンド幅の「過密」の解
消に特に重要である。分散メモリーを共有することは、
ネットワーク中の何れの場所においても、メモリーのコ
ピーを持っていることになるから、相互に接続された機
器間のメモリー読み込み通信は不要になる。
ネットワークのバンド幅の問題であり、分散共有メモリ
ーの更新に必要と考えられるであろうことであって、潜
在的に大きなネットワーク全体に対して、如何にして、
データを迅速かつ確実に多方方向に送り出すかというこ
とである。バンド幅「B」がネットワーク全体を通じて
維持されるのでなければ、ネットワークを通じての伝送
は分散システムのボトルネックを解消することはできな
い。一旦データがネットワークに与えられたならば、そ
れが如何なるルートを通って指定された組のネットワー
クの目的地に配送されるかが、バンド幅の「過密」の解
消に特に重要である。分散メモリーを共有することは、
ネットワーク中の何れの場所においても、メモリーのコ
ピーを持っていることになるから、相互に接続された機
器間のメモリー読み込み通信は不要になる。
【0008】しかし、ネットワークの各地点でメモリー
の最新のコピーを常に維持するためには、メモリー書き
込みまたは更新は、それがどこで起ころうとも、ネット
ワーク全体に多方向に送出されなければならない。プロ
セッサー間通信のボトルネックに直面する時に遭遇する
第2の問題は、プロセスからプロセスへのバンド幅の問
題である。ユーザー・メモリー、したがって、プロセッ
サーを接続しているケーブル、すなわち、図1中の18
および19で示した線路「A」からネットワークへのデ
ータのロードや、それからの読み込み動作を最適化する
必要がある。もし、ユーザー・プロセッサーのアクセス
が数分の1のバンド幅しか持っていなければ、ネットワ
ークへの接続はボトルネックにとどまることになる。ネ
ットワークのバンド幅問題を解決する努力が大いになさ
れた結果、多くのネットワークにおいて、「B」が
「A」よりもはるかに大きいという特性を持つようにな
った。その結果、多くのノード上のユーザー・プロセッ
サーやメモリー空間、あるいはパーソナルコンピュータ
ーが、如何にしてこのように性能向上したネットワーク
に迅速にアクセスできるかという問題が残ってきた。し
たがって、複数台のコンピューターの大規模ネットワー
ク化を促進改善するために関連のある問題として、以下
のような事項をあげることができる。すなわち、ネット
ワークのバンド幅、個々のプロセッサー内で得られるプ
ロセス間のバンド幅、共有メモリーの書き込みの順番と
受け付け、同種または異種のオペレーティングシステム
を持つ広範なロケーション間の相互接続、などである。
の最新のコピーを常に維持するためには、メモリー書き
込みまたは更新は、それがどこで起ころうとも、ネット
ワーク全体に多方向に送出されなければならない。プロ
セッサー間通信のボトルネックに直面する時に遭遇する
第2の問題は、プロセスからプロセスへのバンド幅の問
題である。ユーザー・メモリー、したがって、プロセッ
サーを接続しているケーブル、すなわち、図1中の18
および19で示した線路「A」からネットワークへのデ
ータのロードや、それからの読み込み動作を最適化する
必要がある。もし、ユーザー・プロセッサーのアクセス
が数分の1のバンド幅しか持っていなければ、ネットワ
ークへの接続はボトルネックにとどまることになる。ネ
ットワークのバンド幅問題を解決する努力が大いになさ
れた結果、多くのネットワークにおいて、「B」が
「A」よりもはるかに大きいという特性を持つようにな
った。その結果、多くのノード上のユーザー・プロセッ
サーやメモリー空間、あるいはパーソナルコンピュータ
ーが、如何にしてこのように性能向上したネットワーク
に迅速にアクセスできるかという問題が残ってきた。し
たがって、複数台のコンピューターの大規模ネットワー
ク化を促進改善するために関連のある問題として、以下
のような事項をあげることができる。すなわち、ネット
ワークのバンド幅、個々のプロセッサー内で得られるプ
ロセス間のバンド幅、共有メモリーの書き込みの順番と
受け付け、同種または異種のオペレーティングシステム
を持つ広範なロケーション間の相互接続、などである。
【0009】分散メモリーを共有し、相互のローカルメ
モリーに書き込む能力を有するネットワーク中に分散ノ
ードを配置するシステムが、「忘れっぽいメモリーコン
ピューターネットワーク化」と題して、1990年3月
28日公開、公開番号0360153のヨーロッパ特許
出願89117024.3、対応米国特許出願249,
645、に述べられている。そこで述べられている通信
ネットワークでは、ネットワーク中の何れの機器も、ネ
ットワーク中の他の機器の分散共有メモリーのロケーシ
ョンに書き込むことができる。そこでは、相互接続され
た機器中の共有メモリーの対応するロケーションの物理
アドレスがしまわれている分散メモリーを付随して持つ
ファイルレジスタが設置されている。
モリーに書き込む能力を有するネットワーク中に分散ノ
ードを配置するシステムが、「忘れっぽいメモリーコン
ピューターネットワーク化」と題して、1990年3月
28日公開、公開番号0360153のヨーロッパ特許
出願89117024.3、対応米国特許出願249,
645、に述べられている。そこで述べられている通信
ネットワークでは、ネットワーク中の何れの機器も、ネ
ットワーク中の他の機器の分散共有メモリーのロケーシ
ョンに書き込むことができる。そこでは、相互接続され
た機器中の共有メモリーの対応するロケーションの物理
アドレスがしまわれている分散メモリーを付随して持つ
ファイルレジスタが設置されている。
【0010】リンクされたノード、いわゆるビクテイム
ノード、への書き込み動作は、それのアドレスがアドレ
シングに付随するファイルレジスタ(すなわちホストユ
ニット)に常駐している物理メモリーに対して行われ
る。ここでビクテイムとはローカルなメモリーが離れた
ところから書き込まれるところの場所、つまりノードの
ことを言う。ビクテイムロケーションはメモリーの更新
の制御をしたり、それに参加したりすることはない。ネ
ットワークのロケーションは、ホストコンピューターが
希望するファイルのロケーションを「ルックアップ」
し、分散共有メモリー中のビクテイムのロケーションに
対してアドレスパケットを準備するように、物理メモリ
ーロケーション中にメモリーマップされる。03601
53のシステムでは、主として、確認メッセージを省略
することによってネットワークのバンド幅問題を極小化
し、データをメインメモリーのスピードでネットワーク
中に伝送できるようにして、従来技術を改良している。
確認機構を省略することによって、この方法は弱い一致
検出方式に頼ることになり、共有メモリーロケーション
間の厳密な一致検出は放棄されている。
ノード、への書き込み動作は、それのアドレスがアドレ
シングに付随するファイルレジスタ(すなわちホストユ
ニット)に常駐している物理メモリーに対して行われ
る。ここでビクテイムとはローカルなメモリーが離れた
ところから書き込まれるところの場所、つまりノードの
ことを言う。ビクテイムロケーションはメモリーの更新
の制御をしたり、それに参加したりすることはない。ネ
ットワークのロケーションは、ホストコンピューターが
希望するファイルのロケーションを「ルックアップ」
し、分散共有メモリー中のビクテイムのロケーションに
対してアドレスパケットを準備するように、物理メモリ
ーロケーション中にメモリーマップされる。03601
53のシステムでは、主として、確認メッセージを省略
することによってネットワークのバンド幅問題を極小化
し、データをメインメモリーのスピードでネットワーク
中に伝送できるようにして、従来技術を改良している。
確認機構を省略することによって、この方法は弱い一致
検出方式に頼ることになり、共有メモリーロケーション
間の厳密な一致検出は放棄されている。
【0011】0360153のシステムのいま一つの改
良点は、ホスト、すなわち、データ送出側のプロセッサ
ーは、ビクティムプロセッサーの更新データの受取りな
らびに処理のサイクルの期間中、その動作の中断を必要
としないことである。ネットワークアダプタ、たとえば
16、からコンピューター10のメモリー空間14への
実際のネットワークの伝送や内部メモリーのストアトラ
ンザクションの作成などはホストプロセッサーのたすけ
を借りることなく、あるいは、ホストプロセッサーに
「気づかれる」ことさえなく行われる。書き込みプロセ
スが行われることによって、ホストプロセッサーは更新
データの送出後のすべての動作を忘れることが許され
る。弱い一致検出方式の一つの欠点は、共有メモリーロ
ケーションに対する更新がそれらが生成された順番に行
われなければならないことである。
良点は、ホスト、すなわち、データ送出側のプロセッサ
ーは、ビクティムプロセッサーの更新データの受取りな
らびに処理のサイクルの期間中、その動作の中断を必要
としないことである。ネットワークアダプタ、たとえば
16、からコンピューター10のメモリー空間14への
実際のネットワークの伝送や内部メモリーのストアトラ
ンザクションの作成などはホストプロセッサーのたすけ
を借りることなく、あるいは、ホストプロセッサーに
「気づかれる」ことさえなく行われる。書き込みプロセ
スが行われることによって、ホストプロセッサーは更新
データの送出後のすべての動作を忘れることが許され
る。弱い一致検出方式の一つの欠点は、共有メモリーロ
ケーションに対する更新がそれらが生成された順番に行
われなければならないことである。
【0012】0360153のシステムに見られるメモ
リーマップされた中断機構は、それが非選択的である点
でまた問題である。しばしば、ロケーションプロセスは
ネットワークサービスを要求するのにリーダープロセス
に全面的に中断発生を要求する。1台の目標の機器に中
断を発生させるのに、その他のすべての付随する機器は
その中断を受入れ、処理しなければならない。中断の機
構は、中断のターゲットがただ1台のプロセッサーであ
る場合に、データ転送をはじめたりサービスを要求した
りすることに対して、上述のように重要である。全域の
中断を発生する必要のある例は多いが、ネットワーク中
に選択的な中断あるいは多方向での中断を生起させ、進
行中のネットワーク通信があっても、多くの加入者に対
して、その中断動作を継続させるような機能を持つこと
が望ましいこともある。0360153システムの今一
つの欠点はメモリーの更新を行うために、物理メモリー
のロケーションが相互接続されている各ノードにあるレ
ジスタに「マップ」されるということである。共有メモ
リーの物理的ロケーションはローカルなプロセッサーか
らは変更できないから、このことはそれらのメモリー空
間の最も効率的な割当て能力を制限することになる。
リーマップされた中断機構は、それが非選択的である点
でまた問題である。しばしば、ロケーションプロセスは
ネットワークサービスを要求するのにリーダープロセス
に全面的に中断発生を要求する。1台の目標の機器に中
断を発生させるのに、その他のすべての付随する機器は
その中断を受入れ、処理しなければならない。中断の機
構は、中断のターゲットがただ1台のプロセッサーであ
る場合に、データ転送をはじめたりサービスを要求した
りすることに対して、上述のように重要である。全域の
中断を発生する必要のある例は多いが、ネットワーク中
に選択的な中断あるいは多方向での中断を生起させ、進
行中のネットワーク通信があっても、多くの加入者に対
して、その中断動作を継続させるような機能を持つこと
が望ましいこともある。0360153システムの今一
つの欠点はメモリーの更新を行うために、物理メモリー
のロケーションが相互接続されている各ノードにあるレ
ジスタに「マップ」されるということである。共有メモ
リーの物理的ロケーションはローカルなプロセッサーか
らは変更できないから、このことはそれらのメモリー空
間の最も効率的な割当て能力を制限することになる。
【0013】Nigel Llewelyn Vinc
eによって開発され、ヨーロッパ特許公開0 092
895で1988年5月11日付けで開示されたヨーロ
ッパ特許出版第83311516.8に、仮想アドレス
を用いた関連プロセッサーのメモリーへの接近法が開示
されている。ホストプロセッサーファイルレジスタや相
互に接続されている各プロセッサーはメモリー格納場所
の仮想アドレスを含んでいる。ホストプロセッサーは仮
想アドレスやその更新内容を含む書き込みパケットをア
ッセンブルする。ビクテイムプロセッサーはパケットを
受け取り、引き続いて更新すべきメモリーの物理的ロケ
ーションにアクセスするために仮想アドレスをデコード
する。入って来るパケットは全て、それらが発生した順
序で受信されなければならない。Vince特許はパケ
ットの順序の維持を必要とするトークンリングを用いた
実施例について述べている。Vince特許のより広範
な応用において、トークンリング以外の相互接続ネット
ワークの使用についても検討しているが、その場合で
も、カウンターとかその他の手段でパケットの順序維持
という特徴は保持されることが必要である。この様なパ
ケットの順序維持の必要性は相互接続システムで到達可
能なスピードを制限するものである。
eによって開発され、ヨーロッパ特許公開0 092
895で1988年5月11日付けで開示されたヨーロ
ッパ特許出版第83311516.8に、仮想アドレス
を用いた関連プロセッサーのメモリーへの接近法が開示
されている。ホストプロセッサーファイルレジスタや相
互に接続されている各プロセッサーはメモリー格納場所
の仮想アドレスを含んでいる。ホストプロセッサーは仮
想アドレスやその更新内容を含む書き込みパケットをア
ッセンブルする。ビクテイムプロセッサーはパケットを
受け取り、引き続いて更新すべきメモリーの物理的ロケ
ーションにアクセスするために仮想アドレスをデコード
する。入って来るパケットは全て、それらが発生した順
序で受信されなければならない。Vince特許はパケ
ットの順序の維持を必要とするトークンリングを用いた
実施例について述べている。Vince特許のより広範
な応用において、トークンリング以外の相互接続ネット
ワークの使用についても検討しているが、その場合で
も、カウンターとかその他の手段でパケットの順序維持
という特徴は保持されることが必要である。この様なパ
ケットの順序維持の必要性は相互接続システムで到達可
能なスピードを制限するものである。
【0014】
【特許文献1】欧州特許公開第0360153号公報
【特許文献2】欧州特許公開第0092895号公報
【0015】
【発明が解決しようとする課題】ネットワーク全体を通
じて物理的のみならず仮想メモリーアドレスへのアクセ
スを提供する仮想メモリーマッピングの能力は、ネット
ワークの効率を飛躍的に向上させる。仮想共有メモリー
への直接のネットワークアクセスに対する仮想メモリー
アドレッシングの概念の拡張はネットワーク通信を容易
にし、プロセッサーの介入なしに即時メモリー更新を可
能にするものである。その上、仮想メモリー空間を実際
に設置されている物理メモリーよりも大幅に拡大して取
ることができる。したがって、広域に分散したネットワ
ーク全体を通じて仮想共有メモリーを提供することが本
発明の目的とするところである。本発明の更に目的とす
るところは、プロセッサーの介入なしに仮想共有メモリ
ーに対してネットワークアクセスを提供することであ
る。本発明のいま1つの目的は、既存のネットワークに
対して仮想メモリーマッピングならびにアクセスの能力
を提供することである。本発明の更に目的とするところ
は、異種のオペレーテイングシステム(OS)で動作
し、また異なるメインメモリーバイト数を持つノード間
に相互接続を提供することである。更にいま1つの目的
は、既存のネットワークに対してダイナミック再配置の
能力を提供することである。
じて物理的のみならず仮想メモリーアドレスへのアクセ
スを提供する仮想メモリーマッピングの能力は、ネット
ワークの効率を飛躍的に向上させる。仮想共有メモリー
への直接のネットワークアクセスに対する仮想メモリー
アドレッシングの概念の拡張はネットワーク通信を容易
にし、プロセッサーの介入なしに即時メモリー更新を可
能にするものである。その上、仮想メモリー空間を実際
に設置されている物理メモリーよりも大幅に拡大して取
ることができる。したがって、広域に分散したネットワ
ーク全体を通じて仮想共有メモリーを提供することが本
発明の目的とするところである。本発明の更に目的とす
るところは、プロセッサーの介入なしに仮想共有メモリ
ーに対してネットワークアクセスを提供することであ
る。本発明のいま1つの目的は、既存のネットワークに
対して仮想メモリーマッピングならびにアクセスの能力
を提供することである。本発明の更に目的とするところ
は、異種のオペレーテイングシステム(OS)で動作
し、また異なるメインメモリーバイト数を持つノード間
に相互接続を提供することである。更にいま1つの目的
は、既存のネットワークに対してダイナミック再配置の
能力を提供することである。
【0016】
【課題を解決するための手段】請求項1の発明の方法
は、第1のノードが第1のメモリーロケーションを更新
する方法であって、それぞれの前記第1のノードは少な
くとも1つの第1のプロセッサーと、第1のオペレーテ
ィングシステムと、第1の仮想メモリーロケーションア
ドレスを有する前記第1のメモリーロケーションとを持
ち、前記第1のノードは、ネットワークを通じて複数の
第2のノードに接続され、それぞれの前記第2のノード
は少なくとも1つの第2のプロセッサーと、第2のオペ
レーティングシステムと、第2の仮想メモリーロケーシ
ョンアドレスを有する第2のメモリーロケーションとを
持ち、前記第1のメモリーロケーション及び前記複数の
第2のメモリーロケーションは共有メモリー値を有し、
それぞれの前記第1のノードは、前記第1のノードにお
ける前記第1のメモリーロケーションの仮想アドレス及
び物理アドレスと前記複数の第2のノードにおける前記
第2のメモリーロケーションの仮想アドレス及び物理ア
ドレスとを有する少なくとも1つのページテーブルを持
つ、下記のステップを有する方法である。: (a)前記第1のノードにおいて、更新値と前記第1の
仮想メモリーロケーションアドレスとを含む前記ネット
ワークからのパケットを受け取るステップ、(b)前記
少なくとも1つのページテーブルにアクセスして、前記
第1の仮想メモリーロケーションアドレスを前記第1の
メモリーロケーションに対応する物理メモリーアドレス
に翻訳するステップ、(c)前記物理メモリーアドレス
で、前記第1のメモリーロケーションを前記更新値で更
新するステップ、ここで、前記受け取り及び前記更新
は、前記第1のオペレーティングシステムの動作から独
立して自動的に生じる。
は、第1のノードが第1のメモリーロケーションを更新
する方法であって、それぞれの前記第1のノードは少な
くとも1つの第1のプロセッサーと、第1のオペレーテ
ィングシステムと、第1の仮想メモリーロケーションア
ドレスを有する前記第1のメモリーロケーションとを持
ち、前記第1のノードは、ネットワークを通じて複数の
第2のノードに接続され、それぞれの前記第2のノード
は少なくとも1つの第2のプロセッサーと、第2のオペ
レーティングシステムと、第2の仮想メモリーロケーシ
ョンアドレスを有する第2のメモリーロケーションとを
持ち、前記第1のメモリーロケーション及び前記複数の
第2のメモリーロケーションは共有メモリー値を有し、
それぞれの前記第1のノードは、前記第1のノードにお
ける前記第1のメモリーロケーションの仮想アドレス及
び物理アドレスと前記複数の第2のノードにおける前記
第2のメモリーロケーションの仮想アドレス及び物理ア
ドレスとを有する少なくとも1つのページテーブルを持
つ、下記のステップを有する方法である。: (a)前記第1のノードにおいて、更新値と前記第1の
仮想メモリーロケーションアドレスとを含む前記ネット
ワークからのパケットを受け取るステップ、(b)前記
少なくとも1つのページテーブルにアクセスして、前記
第1の仮想メモリーロケーションアドレスを前記第1の
メモリーロケーションに対応する物理メモリーアドレス
に翻訳するステップ、(c)前記物理メモリーアドレス
で、前記第1のメモリーロケーションを前記更新値で更
新するステップ、ここで、前記受け取り及び前記更新
は、前記第1のオペレーティングシステムの動作から独
立して自動的に生じる。
【0017】請求項2の発明の装置は、第1のメモリー
ロケーションを更新する、第1のノードにおける装置で
あって、それぞれの前記第1のノードは少なくとも1つ
の第1のプロセッサーと、第1のオペレーティングシス
テムと、第1の仮想メモリーロケーションアドレスを有
する第1のメモリーロケーションとを持ち、前記第1の
ノードは、ネットワークを通じて複数の第2のノードに
接続され、それぞれの前記第2のノードは少なくとも1
つの第2のプロセッサーと、第2のオペレーティングシ
ステムと、第2の仮想メモリーロケーションアドレスを
有する第2のメモリーロケーションとを持ち、前記第1
のメモリーロケーション及び前記複数の第2のメモリー
ロケーションは共有メモリー値を有し、それぞれの前記
第1のノードは、前記第1のノードにおける前記第1の
メモリーロケーションの仮想アドレス及び物理アドレス
と前記複数の第2のノードにおける前記第2のメモリー
ロケーションの仮想アドレス及び物理アドレスとを有す
る少なくとも1つのページテーブルを持つ、下記を有す
る装置である。: (a)更新値と前記第1の仮想メモリーロケーションア
ドレスとを含む前記ネットワークからのパケットを受け
取る、前記第1のノードにおけるリンクハードウエア手
段、(b)前記少なくとも1つのページテーブルにアク
セスして、前記第1の仮想メモリーロケーションアドレ
スを前記第1のメモリーロケーションに対応する物理メ
モリーアドレスに翻訳する手段、(c)前記物理メモリ
ーアドレスで、前記第1のメモリーロケーションを前記
更新値で更新する手段、ここで、前記受け取り手段及び
前記更新手段は、前記第1のオペレーティングシステム
の動作から独立して自動的に動作する。
ロケーションを更新する、第1のノードにおける装置で
あって、それぞれの前記第1のノードは少なくとも1つ
の第1のプロセッサーと、第1のオペレーティングシス
テムと、第1の仮想メモリーロケーションアドレスを有
する第1のメモリーロケーションとを持ち、前記第1の
ノードは、ネットワークを通じて複数の第2のノードに
接続され、それぞれの前記第2のノードは少なくとも1
つの第2のプロセッサーと、第2のオペレーティングシ
ステムと、第2の仮想メモリーロケーションアドレスを
有する第2のメモリーロケーションとを持ち、前記第1
のメモリーロケーション及び前記複数の第2のメモリー
ロケーションは共有メモリー値を有し、それぞれの前記
第1のノードは、前記第1のノードにおける前記第1の
メモリーロケーションの仮想アドレス及び物理アドレス
と前記複数の第2のノードにおける前記第2のメモリー
ロケーションの仮想アドレス及び物理アドレスとを有す
る少なくとも1つのページテーブルを持つ、下記を有す
る装置である。: (a)更新値と前記第1の仮想メモリーロケーションア
ドレスとを含む前記ネットワークからのパケットを受け
取る、前記第1のノードにおけるリンクハードウエア手
段、(b)前記少なくとも1つのページテーブルにアク
セスして、前記第1の仮想メモリーロケーションアドレ
スを前記第1のメモリーロケーションに対応する物理メ
モリーアドレスに翻訳する手段、(c)前記物理メモリ
ーアドレスで、前記第1のメモリーロケーションを前記
更新値で更新する手段、ここで、前記受け取り手段及び
前記更新手段は、前記第1のオペレーティングシステム
の動作から独立して自動的に動作する。
【0018】
【作用】上記発明の目的は上記の課題を解決するための
手段に示された構成により、アダプタカードが既存のノ
ードに取付けられ、さらに本発明のスイッチポートとバ
ス配列を経てネットワークに接続されることによって達
成される。アダプタとスイッチポートは物理的あるいは
仮想メモリーアドレスに対してのみならず、ネットワー
ク中の通信を実行し得るネットワークの仮想共有メモリ
ーアドレスに対しても、優れたメモリーマッピングを提
供し得る制御ならびにステータスレジスタ、ページテー
ブル、入力ならびに出力FIFOならびにリンクハード
ウエアなどよりなる。アダプタの構成に含まれるものに
は、さらに、相互に接続されたネットワークの各ロケー
ション間で共有されているメモリー値をたくわえている
物理的メモリーがある。ネットワークアダプタはルート
を設定したり、ネットワークのパケットを多方向送出し
たりするために、スイッチポートにおいて、あらかじめ
ロードされているページテーブルと動作時アドレス翻訳
を用いている。本発明は、地理的に広範囲な地域に広が
る任意に大きな数の高速ノードあるいはプロセッサーを
相互接続するのに用いることができる。さらに、ネット
ワーク中のプロセッサーの接続について、その数、ロケ
ーション、タイプなどを、広範囲にそのスケールを変更
することができるものである。
手段に示された構成により、アダプタカードが既存のノ
ードに取付けられ、さらに本発明のスイッチポートとバ
ス配列を経てネットワークに接続されることによって達
成される。アダプタとスイッチポートは物理的あるいは
仮想メモリーアドレスに対してのみならず、ネットワー
ク中の通信を実行し得るネットワークの仮想共有メモリ
ーアドレスに対しても、優れたメモリーマッピングを提
供し得る制御ならびにステータスレジスタ、ページテー
ブル、入力ならびに出力FIFOならびにリンクハード
ウエアなどよりなる。アダプタの構成に含まれるものに
は、さらに、相互に接続されたネットワークの各ロケー
ション間で共有されているメモリー値をたくわえている
物理的メモリーがある。ネットワークアダプタはルート
を設定したり、ネットワークのパケットを多方向送出し
たりするために、スイッチポートにおいて、あらかじめ
ロードされているページテーブルと動作時アドレス翻訳
を用いている。本発明は、地理的に広範囲な地域に広が
る任意に大きな数の高速ノードあるいはプロセッサーを
相互接続するのに用いることができる。さらに、ネット
ワーク中のプロセッサーの接続について、その数、ロケ
ーション、タイプなどを、広範囲にそのスケールを変更
することができるものである。
【0019】
【発明の実施の形態】以下本発明の実施をするための最
良の形態を具体的に示した実施例について、図面ととも
に記載する。
良の形態を具体的に示した実施例について、図面ととも
に記載する。
【0020】《実施例》本発明の詳細を、その構成なら
びに動作の両面について、以下添付の図面を参照しつつ
説明する。本発明は共有仮想メモリーレベルにおけるプ
ロセッサー間ネットワーク通信を行うための方法と手段
を提供するものである。ここで、本発明は、その構成要
素として、本文中では詳しく述べていない周知のコンピ
ューター回路、種々の素子、機能性ユニットなどを含む
新しい構成に関係しているということを指摘しておかな
ければならない。したがって、これらの周知の回路や素
子の構造、制御ならびに配列などについては、わかりや
すいように、本発明に関連する特定の部分についてだけ
ブロック図とそれらの機能についてのダイアグラムで表
わすこととする。このことは、それらの機能についての
記述という点から考えて、この分野に精通している人に
は、明白な構造上の詳細な記述がかえって発明そのもの
を不明瞭にすることを避けたいためである。このように
すれば、これらのシステムの種々の部分が確認され、機
能によって分類されるので、発明に関連のあるそれらの
特徴を強調することができる。
びに動作の両面について、以下添付の図面を参照しつつ
説明する。本発明は共有仮想メモリーレベルにおけるプ
ロセッサー間ネットワーク通信を行うための方法と手段
を提供するものである。ここで、本発明は、その構成要
素として、本文中では詳しく述べていない周知のコンピ
ューター回路、種々の素子、機能性ユニットなどを含む
新しい構成に関係しているということを指摘しておかな
ければならない。したがって、これらの周知の回路や素
子の構造、制御ならびに配列などについては、わかりや
すいように、本発明に関連する特定の部分についてだけ
ブロック図とそれらの機能についてのダイアグラムで表
わすこととする。このことは、それらの機能についての
記述という点から考えて、この分野に精通している人に
は、明白な構造上の詳細な記述がかえって発明そのもの
を不明瞭にすることを避けたいためである。このように
すれば、これらのシステムの種々の部分が確認され、機
能によって分類されるので、発明に関連のあるそれらの
特徴を強調することができる。
【0021】以下の記述は、この分野に精通している人
が、ここに開示される発明の可能性と能力を十分に理解
し、これを種々のコンピューターアーキテクチャに組込
むことができるように配慮してある。本発明の利点を実
現するシステムは、すぐれたネットワーク対バンド幅特
性を備えていなければならない。本発明を実現するのに
必要な現在入手可能なハードウエアの中には、是非とも
必要というわけではないが、パラレルシリアルクロック
変換可能なデータ伝送のできるAMDタクシー(AMD
社の登録商標)チップ、光電変換可能な光データリン
ク、データのフローをバッファしたり制御する入出力F
IFO、ならびに、SARM、などなどの種々の光ある
いはエレクトロニックなパーツが含まれている。今迄是
非とも必要とされたもので構成要素リストに記載されな
くなることが特に目立つパーツは、オンボードプロトコ
ルプロセッサーであるが、これは本発明によって不要と
なるものである。
が、ここに開示される発明の可能性と能力を十分に理解
し、これを種々のコンピューターアーキテクチャに組込
むことができるように配慮してある。本発明の利点を実
現するシステムは、すぐれたネットワーク対バンド幅特
性を備えていなければならない。本発明を実現するのに
必要な現在入手可能なハードウエアの中には、是非とも
必要というわけではないが、パラレルシリアルクロック
変換可能なデータ伝送のできるAMDタクシー(AMD
社の登録商標)チップ、光電変換可能な光データリン
ク、データのフローをバッファしたり制御する入出力F
IFO、ならびに、SARM、などなどの種々の光ある
いはエレクトロニックなパーツが含まれている。今迄是
非とも必要とされたもので構成要素リストに記載されな
くなることが特に目立つパーツは、オンボードプロトコ
ルプロセッサーであるが、これは本発明によって不要と
なるものである。
【0022】以下に述べる本発明の記述を通じて、ある
種の広義な用語が記述の統一性と明確性のために用いら
れている。本発明者は、それらの用語が当該技術のより
広範な局面に用いられることが意図されていることが明
らかな時にもそれらの用語の用法が厳密な解釈に限られ
るということは望まないものである。特に、以下の用語
は広義の用法で用いられることを断っておく。「ノー
ド」という語はプロセッサー、コンピューター、スーパ
ーコンピューター、あるいは、マルチプロセッサーなど
を含む(それらに限られないが)、独立して動作する機
器を表示するのに使われる。「プロセッサー」という語
はノード中にある制御プロセッサーを指すのに使われ
る。「ホストプロセッサー」という語は受信あるいは犠
牲プロセッサーに通信されるべき書き込みあるいは制御
コマンドを送出している一つのノード中のプロセッサー
を指すのに使われる。「インタープロセッサー」という
語は独立したノード間のネットワーク、あるいはそのよ
うな独立したノード間のネットワーク中にある通信を指
す。
種の広義な用語が記述の統一性と明確性のために用いら
れている。本発明者は、それらの用語が当該技術のより
広範な局面に用いられることが意図されていることが明
らかな時にもそれらの用語の用法が厳密な解釈に限られ
るということは望まないものである。特に、以下の用語
は広義の用法で用いられることを断っておく。「ノー
ド」という語はプロセッサー、コンピューター、スーパ
ーコンピューター、あるいは、マルチプロセッサーなど
を含む(それらに限られないが)、独立して動作する機
器を表示するのに使われる。「プロセッサー」という語
はノード中にある制御プロセッサーを指すのに使われ
る。「ホストプロセッサー」という語は受信あるいは犠
牲プロセッサーに通信されるべき書き込みあるいは制御
コマンドを送出している一つのノード中のプロセッサー
を指すのに使われる。「インタープロセッサー」という
語は独立したノード間のネットワーク、あるいはそのよ
うな独立したノード間のネットワーク中にある通信を指
す。
【0023】基本的に、あるいは概念的に、本発明中に
おけるコンピューターノードというものは、メモリーの
マッピングを通じて、メモリーバスの書き込みあるいは
ネットワーク上の制御コマンドを繰り返すだけでアクセ
スできる仮想アドレス空間にリンクされている。各ノー
ドで実行されているプログラムは仮想メモリーのひとつ
あるいはそれ以上のセグメントを共有し、それらのセグ
メントをあたかも各プログラムの一部であるかのように
使う。メモリーの共有されたセグメントは個々のプログ
ラムから同時にアクセス可能である。したがって、ネッ
トワーク上のプログラムは共通のメモリーセグメントを
通じて互いにデータを交換することによって通信するこ
とができる。共有メモリー通信のこのような形態は、共
有メモリーを通して通信しているプロセスに対するイン
タープロセス通信について、それらのプロセスが同じノ
ード(すなわち、シングルの)上で走っている場合に
は、既にサポートされている。この例における共有メモ
リーは、ワークステーションあるいはノードの物理メモ
リーである。現在のところ、多くのノード上で動作して
いるプロセス間の通信を成立させるために、ノード内で
動作するSRAMのスピードで共有メモリーコールを用
いる方法は、本発明以外存在しない。
おけるコンピューターノードというものは、メモリーの
マッピングを通じて、メモリーバスの書き込みあるいは
ネットワーク上の制御コマンドを繰り返すだけでアクセ
スできる仮想アドレス空間にリンクされている。各ノー
ドで実行されているプログラムは仮想メモリーのひとつ
あるいはそれ以上のセグメントを共有し、それらのセグ
メントをあたかも各プログラムの一部であるかのように
使う。メモリーの共有されたセグメントは個々のプログ
ラムから同時にアクセス可能である。したがって、ネッ
トワーク上のプログラムは共通のメモリーセグメントを
通じて互いにデータを交換することによって通信するこ
とができる。共有メモリー通信のこのような形態は、共
有メモリーを通して通信しているプロセスに対するイン
タープロセス通信について、それらのプロセスが同じノ
ード(すなわち、シングルの)上で走っている場合に
は、既にサポートされている。この例における共有メモ
リーは、ワークステーションあるいはノードの物理メモ
リーである。現在のところ、多くのノード上で動作して
いるプロセス間の通信を成立させるために、ノード内で
動作するSRAMのスピードで共有メモリーコールを用
いる方法は、本発明以外存在しない。
【0024】このような低レベルのメモリーでインター
プロセッサー通信を行うことには、利点と欠点の両面が
ある。欠点は、一つには、新しい共有メモリーのプログ
ラミングモデルを必要とすることであり、一つには、ア
ーキテクチャーの異なるコンピューター間で、あるタイ
プのデータ(たとえば、浮動小数点データ)を送るとき
にデータタイプ間の変換を必要とすることである。プロ
グラミング技術に精通した人ならば、このような比較的
軽微な不便さを簡単に補償することができる。利点とし
ては、インタープロセッサー通信に対して、OSの違い
にほとんどかあるいは全く依存しない点が含まれる。O
S依存性の少なさは、インタープロセッサー通信のメモ
リーマッピングからきている。
プロセッサー通信を行うことには、利点と欠点の両面が
ある。欠点は、一つには、新しい共有メモリーのプログ
ラミングモデルを必要とすることであり、一つには、ア
ーキテクチャーの異なるコンピューター間で、あるタイ
プのデータ(たとえば、浮動小数点データ)を送るとき
にデータタイプ間の変換を必要とすることである。プロ
グラミング技術に精通した人ならば、このような比較的
軽微な不便さを簡単に補償することができる。利点とし
ては、インタープロセッサー通信に対して、OSの違い
にほとんどかあるいは全く依存しない点が含まれる。O
S依存性の少なさは、インタープロセッサー通信のメモ
リーマッピングからきている。
【0025】その上、ネットワーク通信や共有メモリー
のやりとりは、固定した物理メモリーロケーションを指
定せずにアクセスできる適宜なキャッシュ中のメモリー
を指定する能力をノードに対して制限することなしに、
ノード内のメモリーにアクセスすることを可能としてい
る。システムは、その仮想メモリーページのある箇所を
共有するように指定したり、それ自身のアダプタカード
のメモリーロケーションの更新をおこなったり、また他
の組み合わさっているネットワークの多くのノードのペ
ージテブルを同時に更新するように多方向に指令を発し
たりして、そのメモリー空間を連続的に管理することを
許している。このようにして、ネットワーク上の各ノー
ドは基本的には、仮想メモリー空間を経由して関連する
ノードのいかなるレベルのメモリーにも直接アクセスす
ることができる。もしも、ある一つのノードのみがある
データにアクセスすることができるようにしたければ、
共有仮想メモリーのすべてのメモリーページの内容は、
一般に、他の仮想メモリーページが保護されているのと
同じやりかたで保護されている必要がある。プログラム
は、共有可能である旨をパブリックにあるいはプライベ
ートに宣言されているページに対して、読み/書きの優
先権を与えられている。
のやりとりは、固定した物理メモリーロケーションを指
定せずにアクセスできる適宜なキャッシュ中のメモリー
を指定する能力をノードに対して制限することなしに、
ノード内のメモリーにアクセスすることを可能としてい
る。システムは、その仮想メモリーページのある箇所を
共有するように指定したり、それ自身のアダプタカード
のメモリーロケーションの更新をおこなったり、また他
の組み合わさっているネットワークの多くのノードのペ
ージテブルを同時に更新するように多方向に指令を発し
たりして、そのメモリー空間を連続的に管理することを
許している。このようにして、ネットワーク上の各ノー
ドは基本的には、仮想メモリー空間を経由して関連する
ノードのいかなるレベルのメモリーにも直接アクセスす
ることができる。もしも、ある一つのノードのみがある
データにアクセスすることができるようにしたければ、
共有仮想メモリーのすべてのメモリーページの内容は、
一般に、他の仮想メモリーページが保護されているのと
同じやりかたで保護されている必要がある。プログラム
は、共有可能である旨をパブリックにあるいはプライベ
ートに宣言されているページに対して、読み/書きの優
先権を与えられている。
【0026】共有仮想メモリー(SVM)でマップされ
たコンピューターネットワークについてのルート選択や
管理と言うものは、まったく新しい概念である。SVM
のアドレス空間は各ユーザーの仮想メモリーアドレス空
間についても、また、いずれのホストノード上のOSの
アドレス空間についても独立なものである。共有仮想空
間は単一のネットワークの広さのアドレス空間を持ち、
このシステムはプログラムがそれらの仮想メモリーのセ
グメントをひっつけたりすることができるように設計さ
れている。システムはプログラムに対し、それらの仮想
メモリーページのどこかあるいはすべてに共有されるこ
とを指示することができる。共有メモリーセグメントは
どのような固定の標準サイズに制限されることもない。
たコンピューターネットワークについてのルート選択や
管理と言うものは、まったく新しい概念である。SVM
のアドレス空間は各ユーザーの仮想メモリーアドレス空
間についても、また、いずれのホストノード上のOSの
アドレス空間についても独立なものである。共有仮想空
間は単一のネットワークの広さのアドレス空間を持ち、
このシステムはプログラムがそれらの仮想メモリーのセ
グメントをひっつけたりすることができるように設計さ
れている。システムはプログラムに対し、それらの仮想
メモリーページのどこかあるいはすべてに共有されるこ
とを指示することができる。共有メモリーセグメントは
どのような固定の標準サイズに制限されることもない。
【0027】SVM空間は長いアドレス(たとえば、12
8ビット長の)をも含む共有仮想メモリーロケーション
の1次元の並びである。共有仮想メモリー空間は非常に
大きいので、各共有仮想メモリーページが実際の物理的
なRAMの1ページを表わすということはありそうにな
い。したがって、この場合には、共有仮想メモリーのア
ドレスは、ただ単に、共有セグメントを作るときにどの
ようなネットワークプログラミングによっても使われる
名前として機能しているに過ぎない。もし、あるプロセ
スがSVMのある与えられたページに対する保証機能と
して動作することに同意するならば、その与えられたペ
ージ内にうまくマップすることのできるプログラムは、
上の保証機能がメモリー割当てプロセスの一部としてS
VMページの内容のコピーを送ってくるであろうことを
期待できる。本発明のシステムは高機能なコンピュータ
ーネットワークの管理を簡単化するために、SVMアド
レス空間を使う。
8ビット長の)をも含む共有仮想メモリーロケーション
の1次元の並びである。共有仮想メモリー空間は非常に
大きいので、各共有仮想メモリーページが実際の物理的
なRAMの1ページを表わすということはありそうにな
い。したがって、この場合には、共有仮想メモリーのア
ドレスは、ただ単に、共有セグメントを作るときにどの
ようなネットワークプログラミングによっても使われる
名前として機能しているに過ぎない。もし、あるプロセ
スがSVMのある与えられたページに対する保証機能と
して動作することに同意するならば、その与えられたペ
ージ内にうまくマップすることのできるプログラムは、
上の保証機能がメモリー割当てプロセスの一部としてS
VMページの内容のコピーを送ってくるであろうことを
期待できる。本発明のシステムは高機能なコンピュータ
ーネットワークの管理を簡単化するために、SVMアド
レス空間を使う。
【0028】図2は、SVMアドレス空間24中のペー
ジ1、k、zの3ページを、互いに大きな距離を隔てて
位置するノード上を走ってアダプタロケーション共有メ
モリーへメモリーマッピングをするところを説明する図
である。ロケーション21にあるノードでは、アダプタ
メモリーのページ0がSVMのページ1に、さらに、ロ
ケーション23のメモリーのページ0にマップされる。
ロケーション21と23は高速2方向リンクとして、そ
れらの物理的共有メモリーのページ0を用いている。ロ
ケーション21のメモリーのページkはSVMのページ
kに、また、SVMのページkはロケーション22のペ
ージ1とロケーション23のページ1にデータを送るこ
とができる。各ロケーションにおけるノードはSVMの
ページkを通じて3方向の通信を行うことができる。こ
れはSVMネットワーク中でデータを多方向送出する一
つの方法である。ロケーション21のメモリーページk
の更新はその度に物理メモリーのページ1にあるロケー
ション22とロケーション23から見ることができる。
アドレスの変更はすべて動作時に行われる。このことに
ついては、後で、さらに検討する。
ジ1、k、zの3ページを、互いに大きな距離を隔てて
位置するノード上を走ってアダプタロケーション共有メ
モリーへメモリーマッピングをするところを説明する図
である。ロケーション21にあるノードでは、アダプタ
メモリーのページ0がSVMのページ1に、さらに、ロ
ケーション23のメモリーのページ0にマップされる。
ロケーション21と23は高速2方向リンクとして、そ
れらの物理的共有メモリーのページ0を用いている。ロ
ケーション21のメモリーのページkはSVMのページ
kに、また、SVMのページkはロケーション22のペ
ージ1とロケーション23のページ1にデータを送るこ
とができる。各ロケーションにおけるノードはSVMの
ページkを通じて3方向の通信を行うことができる。こ
れはSVMネットワーク中でデータを多方向送出する一
つの方法である。ロケーション21のメモリーページk
の更新はその度に物理メモリーのページ1にあるロケー
ション22とロケーション23から見ることができる。
アドレスの変更はすべて動作時に行われる。このことに
ついては、後で、さらに検討する。
【0029】ネットワーク管理の方針として、SVM空
間の継続するページは特定のノードに静的に割当てるこ
とができる。SVMアドレスの静的な割当ては、プログ
ラムからの要請による通信チャンネルの迅速な自動立ち
上がりを支援するものである。たとえば、図2におい
て、ロケーション21のノードはSVMのページkから
k+100を有し得る(の保証者である)と考えてよ
い。ロケーション22と23に走っているアプリケーシ
ョンがロケーション21にデータの転送を要求すると
き、それらのデータは一旦、SVMのページkにマップ
される。各ノード間のネットワーク通信はメモリー(バ
ス)の書き込みあるいは制御コマンドを特別につくった
通信ネットワークのスイッチとバスシステム(詳細は後
述)を通じて繰り返すことによって実行される。光、同
軸、その他の最近入手可能となってきた伝送誤り率の低
い改良された伝送システムにより、ネットワーク全体に
わたってメモリーバスに書き込み要求を繰り返すだけの
ことによってネットワークのインタープロセッサー通信
を可能にするようになってきた。
間の継続するページは特定のノードに静的に割当てるこ
とができる。SVMアドレスの静的な割当ては、プログ
ラムからの要請による通信チャンネルの迅速な自動立ち
上がりを支援するものである。たとえば、図2におい
て、ロケーション21のノードはSVMのページkから
k+100を有し得る(の保証者である)と考えてよ
い。ロケーション22と23に走っているアプリケーシ
ョンがロケーション21にデータの転送を要求すると
き、それらのデータは一旦、SVMのページkにマップ
される。各ノード間のネットワーク通信はメモリー(バ
ス)の書き込みあるいは制御コマンドを特別につくった
通信ネットワークのスイッチとバスシステム(詳細は後
述)を通じて繰り返すことによって実行される。光、同
軸、その他の最近入手可能となってきた伝送誤り率の低
い改良された伝送システムにより、ネットワーク全体に
わたってメモリーバスに書き込み要求を繰り返すだけの
ことによってネットワークのインタープロセッサー通信
を可能にするようになってきた。
【0030】仮想共有メモリーの能力の物理的な実現
は、図3に示された種々の物理メモリーとネットワーク
インターフェースなどからなるアダプタカード30にお
いてなされる。アダプタカードは、OSやノードのメモ
リーアドレスの翻訳アーキテクチャには無関係に、ネッ
トワークに存在するノードに挿入して使われるように設
計されている。現在計画されている好ましい実施例は、
さらに以下に述べられる本発明のスイッチやバスの相互
接続システムを含んではいるけれども、アダプタカード
を特別のポートやバス配列を経由して接続する必要はな
い。アダプタカード30の物理的要素は以下のとおりで
ある。3つの形の物理メモリーはひと組の制御とステー
タスレジスタ31、データロケーションメモリー32、
ページ翻訳テーブルメモリー33を含んでおり、またネ
ットワークインターフェースは入力FIFO34、出力
FIFO35、リンクハードウエア36からなってい
る。
は、図3に示された種々の物理メモリーとネットワーク
インターフェースなどからなるアダプタカード30にお
いてなされる。アダプタカードは、OSやノードのメモ
リーアドレスの翻訳アーキテクチャには無関係に、ネッ
トワークに存在するノードに挿入して使われるように設
計されている。現在計画されている好ましい実施例は、
さらに以下に述べられる本発明のスイッチやバスの相互
接続システムを含んではいるけれども、アダプタカード
を特別のポートやバス配列を経由して接続する必要はな
い。アダプタカード30の物理的要素は以下のとおりで
ある。3つの形の物理メモリーはひと組の制御とステー
タスレジスタ31、データロケーションメモリー32、
ページ翻訳テーブルメモリー33を含んでおり、またネ
ットワークインターフェースは入力FIFO34、出力
FIFO35、リンクハードウエア36からなってい
る。
【0031】アダプタは入力ならびに出力FIFOでリ
ンクハードウエアと呼ばれている入力あるいは出力シリ
アルネットワークを経て接続相互通信ネットワークに接
続されている。アダプタは、ノードで、それにつながっ
ているプロセッサー40にメモリーバス37を経て接続
され、指定された範囲の物理メモリーアドレスに対して
読み書きコマンドに応答するメモリーとしてメモリーバ
スとプロセッサーに現れる。アダプタ上のレジスタ、ペ
ージテーブル、ならびに、データなどのロケーションメ
モリーが順次、プロセッサーに対してすべてメモリーカ
ード上で単に別々のメモリーロケーションとして現れ
る。
ンクハードウエアと呼ばれている入力あるいは出力シリ
アルネットワークを経て接続相互通信ネットワークに接
続されている。アダプタは、ノードで、それにつながっ
ているプロセッサー40にメモリーバス37を経て接続
され、指定された範囲の物理メモリーアドレスに対して
読み書きコマンドに応答するメモリーとしてメモリーバ
スとプロセッサーに現れる。アダプタ上のレジスタ、ペ
ージテーブル、ならびに、データなどのロケーションメ
モリーが順次、プロセッサーに対してすべてメモリーカ
ード上で単に別々のメモリーロケーションとして現れ
る。
【0032】以下に、アダプタの複数の素子やそれらの
素子の機能などについて、特に図3と図4を参照して詳
しく議論する。これらの図中では、共通の参照番号が用
いられている。リンクハードウエア36がアダプタを、
したがって、ノードを物理的にネットワークに接続す
る。リンクハードウエアは、そのアダプタとそれに関連
するノード/プロセッサーについての点から点へのフロ
ーの制御、光電変換、短いコマンド復号、ならびにハー
ドウエアの伝送エラーの検出機能などのすべてを行うの
で、ネットワーク機能の重要な部分となっている。リン
クハードウエアは、入出力FIFOを通じて光信号をア
ダプタにリンクすることのできる何等かの最新のハード
ウエアを使うことによって実現することができる。エレ
メント、即ち伝送メッセージのデイジタル要素が入力F
IFO34から出てゆくとき、それらはメッセージにま
とめられ、アダプタカード上で処理される。エレメント
が出力FIFO35から出てゆくにつれて、それらはリ
ンクハードウエアを通してネットワークに送出される。
素子の機能などについて、特に図3と図4を参照して詳
しく議論する。これらの図中では、共通の参照番号が用
いられている。リンクハードウエア36がアダプタを、
したがって、ノードを物理的にネットワークに接続す
る。リンクハードウエアは、そのアダプタとそれに関連
するノード/プロセッサーについての点から点へのフロ
ーの制御、光電変換、短いコマンド復号、ならびにハー
ドウエアの伝送エラーの検出機能などのすべてを行うの
で、ネットワーク機能の重要な部分となっている。リン
クハードウエアは、入出力FIFOを通じて光信号をア
ダプタにリンクすることのできる何等かの最新のハード
ウエアを使うことによって実現することができる。エレ
メント、即ち伝送メッセージのデイジタル要素が入力F
IFO34から出てゆくとき、それらはメッセージにま
とめられ、アダプタカード上で処理される。エレメント
が出力FIFO35から出てゆくにつれて、それらはリ
ンクハードウエアを通してネットワークに送出される。
【0033】入出力FIFO34と35はシーケンシャ
ルなバッファであり、スタート/ストップのフロー制御
方式を用いて、アダプタのネットワークポートを通じて
情報の流れを制御する。入力ならびに出力FIFOのそ
れぞれについて、そのいずれかひとつについてだけを図
に示した。しかし、そのノードとネットワークの要求に
よって決められるときは、アダプタハードウエア中にそ
れぞれ1個以上のFIFOロケーションがあってもかま
わない。ネットワークからメッセージが届くと、それら
は、図4中に例として44、45で示すようにシーケン
シャルに、FIFO中に待ち行列をつくる。種々の送信
源からのメッセージがネットワーク中で相互に挿入され
た形になるなるだろうが、受信の順番はバッファによっ
て保存される。カードが入力FIFOからメッセージを
出してゆくにつれて、制御レジスタ31あるいはメモリ
ー32はメッセージの内容にしたがって更新されてゆ
く。プロセッサーからカードにメモリーとレジスタの書
き込みが発せられると、それに対応したネットワークパ
ケットが、自動送信のために出力FIFO中に、説明の
目的で45、55として示したロケーションで待ち行列
をつくって並ぶ。
ルなバッファであり、スタート/ストップのフロー制御
方式を用いて、アダプタのネットワークポートを通じて
情報の流れを制御する。入力ならびに出力FIFOのそ
れぞれについて、そのいずれかひとつについてだけを図
に示した。しかし、そのノードとネットワークの要求に
よって決められるときは、アダプタハードウエア中にそ
れぞれ1個以上のFIFOロケーションがあってもかま
わない。ネットワークからメッセージが届くと、それら
は、図4中に例として44、45で示すようにシーケン
シャルに、FIFO中に待ち行列をつくる。種々の送信
源からのメッセージがネットワーク中で相互に挿入され
た形になるなるだろうが、受信の順番はバッファによっ
て保存される。カードが入力FIFOからメッセージを
出してゆくにつれて、制御レジスタ31あるいはメモリ
ー32はメッセージの内容にしたがって更新されてゆ
く。プロセッサーからカードにメモリーとレジスタの書
き込みが発せられると、それに対応したネットワークパ
ケットが、自動送信のために出力FIFO中に、説明の
目的で45、55として示したロケーションで待ち行列
をつくって並ぶ。
【0034】図3中の制御・ステータスレジスタ31は
ハードウエアの制御に対するメモリーマップされたユー
ザーインターフェースである。このレジスタは、ネット
ワーク上の個々のハードウエアに一義的に割当てられた
無符号の識別用整数(UIDと呼ばれる)をそれぞれが
もつ読み出し専用レジスタを含んでいる。このUID
は、それがネットワークハードウエア上の各ハードウエ
アに一義的である。このUIDはネットワークハードウ
エアを管理、制御するためにネットワークソフトウエア
によって用いられるものであるから特に重要である。動
作時、すべての制御メッセージ(下に、詳しく述べられ
るように、ダイナミックな再構成用のもの)はネットワ
ークアドレスとしてのUIDを用いてルート決定がなさ
れる。
ハードウエアの制御に対するメモリーマップされたユー
ザーインターフェースである。このレジスタは、ネット
ワーク上の個々のハードウエアに一義的に割当てられた
無符号の識別用整数(UIDと呼ばれる)をそれぞれが
もつ読み出し専用レジスタを含んでいる。このUID
は、それがネットワークハードウエア上の各ハードウエ
アに一義的である。このUIDはネットワークハードウ
エアを管理、制御するためにネットワークソフトウエア
によって用いられるものであるから特に重要である。動
作時、すべての制御メッセージ(下に、詳しく述べられ
るように、ダイナミックな再構成用のもの)はネットワ
ークアドレスとしてのUIDを用いてルート決定がなさ
れる。
【0035】他のコマンドメッセージも、目的とする受
信者をはっきりさせるために、かならずUIDが付けら
れる。UIDを付けられたネットワークハードウエア構
成要素は、どれも同一のUIDを持つことはない。UI
Dの値のうち、あるものの値(複数)は特別であって、
どれか一つのネットワークハードウエアに割当てられる
ことなく使われる。この場合は、単独のUID値の一致
を見るのではなく全てのUID値の一致を見るように使
われ、また、コマンドパケットのルート決定用UIDの
マッチは見ないようにする。制御及びステータスレジス
タがUIDを読み出したり、入出力FIFOをイネーブ
ルにしたり、コマンドをネットワーク全体に送り出した
り、ページテーブルへのエントリーをリセットしたりす
るのに使われる。制御ならびにステータスレジスタ31
の定義ならびに動作は、特に本発明において新しいもの
ではない。先にも述べたように、それの特徴について
は、当該技術分野では周知であり、それを不必要に詳細
に述べることは本発明の新規性の詳細をかえって不明瞭
にするだけである。
信者をはっきりさせるために、かならずUIDが付けら
れる。UIDを付けられたネットワークハードウエア構
成要素は、どれも同一のUIDを持つことはない。UI
Dの値のうち、あるものの値(複数)は特別であって、
どれか一つのネットワークハードウエアに割当てられる
ことなく使われる。この場合は、単独のUID値の一致
を見るのではなく全てのUID値の一致を見るように使
われ、また、コマンドパケットのルート決定用UIDの
マッチは見ないようにする。制御及びステータスレジス
タがUIDを読み出したり、入出力FIFOをイネーブ
ルにしたり、コマンドをネットワーク全体に送り出した
り、ページテーブルへのエントリーをリセットしたりす
るのに使われる。制御ならびにステータスレジスタ31
の定義ならびに動作は、特に本発明において新しいもの
ではない。先にも述べたように、それの特徴について
は、当該技術分野では周知であり、それを不必要に詳細
に述べることは本発明の新規性の詳細をかえって不明瞭
にするだけである。
【0036】図3、あるいは、図4にさらに詳細に示し
てあるように、31中では、たとえば、「ロケーショ
ン」レジスタ、すなわち、レジスタ41、51、61中
には、レジスタ値がしまわれており、同様に、データロ
ケーションメモリーは42、52に中にはメモリー値が
しまわれており、また、ページテーブル中には物理ペー
ジ数と仮想メモリーアドレスの順序化された対からなる
エントリーがたとえば、その43と53にしまわれてい
る。入出力FIFOは、それぞれ、ロケーション44、
54、ならびに、45、55を持っており、それらは、
各エントリーが1個のネットワークパケットに対応して
いるごときエントリーの待ち行列をしまっている。各レ
ジスタに固有の詳細なる項は、以下の本発明の動作につ
いての記述の明確性を保持するために、当該技術分野に
精通した人にゆだねるが、それら固有のレジスタの内容
に関しては、ある仮定を設定しておく。特に、図3中の
51で示したレジスタ0は、アダプタのUIDをしまっ
ている読み出し専用レジスタであり、61で示したレジ
スタ1はアダプタのアドレシングモードを、仮想あるい
は物理アドレシングにかかわらず、表わすコードだけを
しまっているレジスタである。
てあるように、31中では、たとえば、「ロケーショ
ン」レジスタ、すなわち、レジスタ41、51、61中
には、レジスタ値がしまわれており、同様に、データロ
ケーションメモリーは42、52に中にはメモリー値が
しまわれており、また、ページテーブル中には物理ペー
ジ数と仮想メモリーアドレスの順序化された対からなる
エントリーがたとえば、その43と53にしまわれてい
る。入出力FIFOは、それぞれ、ロケーション44、
54、ならびに、45、55を持っており、それらは、
各エントリーが1個のネットワークパケットに対応して
いるごときエントリーの待ち行列をしまっている。各レ
ジスタに固有の詳細なる項は、以下の本発明の動作につ
いての記述の明確性を保持するために、当該技術分野に
精通した人にゆだねるが、それら固有のレジスタの内容
に関しては、ある仮定を設定しておく。特に、図3中の
51で示したレジスタ0は、アダプタのUIDをしまっ
ている読み出し専用レジスタであり、61で示したレジ
スタ1はアダプタのアドレシングモードを、仮想あるい
は物理アドレシングにかかわらず、表わすコードだけを
しまっているレジスタである。
【0037】SVMアドレス空間にマップされたデータ
ロケーションメモリーのロケーションをもつことに加え
て、ステータスと制御のレジスタとロケーションのペー
ジテーブルもSVMアドレス空間にマップされる。制御
とステータスのレジスタは物理メモリーアドレスの最初
のセットにマップされる。物理アドレスの次のセットは
ページテーブルにマップされる。残りの物理アドレスは
データロケーションメモリーにマップされる。レジスタ
と全ページテーブルをSVMアドレス空間にマップする
ことの利点は、ネットワークのノードがレジスタやペー
ジテーブルにアクセスしたり書き込んだりすることにつ
いて統一的な方法を持つだろうということである。デー
タ更新のために、各ノードのレジスタやページテーブル
のすべてを一セットのSVMアドレスにマップすること
は最大の利点である。このことがネットワークに対して
ダイナミックな再構成の能力をもたらすことを可能なも
のとし、それによってハードウエアやプログラムの全面
的な変更なしに、ルート決定やプロトコルをその動作中
に変更することができる。
ロケーションメモリーのロケーションをもつことに加え
て、ステータスと制御のレジスタとロケーションのペー
ジテーブルもSVMアドレス空間にマップされる。制御
とステータスのレジスタは物理メモリーアドレスの最初
のセットにマップされる。物理アドレスの次のセットは
ページテーブルにマップされる。残りの物理アドレスは
データロケーションメモリーにマップされる。レジスタ
と全ページテーブルをSVMアドレス空間にマップする
ことの利点は、ネットワークのノードがレジスタやペー
ジテーブルにアクセスしたり書き込んだりすることにつ
いて統一的な方法を持つだろうということである。デー
タ更新のために、各ノードのレジスタやページテーブル
のすべてを一セットのSVMアドレスにマップすること
は最大の利点である。このことがネットワークに対して
ダイナミックな再構成の能力をもたらすことを可能なも
のとし、それによってハードウエアやプログラムの全面
的な変更なしに、ルート決定やプロトコルをその動作中
に変更することができる。
【0038】図3、4中の32の番号を付したデータロ
ケーションメモリー、(以下これを「メモリー」と呼
ぶ)はこのような分散メモリーの収納と取り出しの両機
能を実行する。メモリー32は、それのノードのホスト
プロセッサー40から、あるいは、ネットワークから、
のいずれからの更新の要求をも受け付けることができ
る。典型的には、共有メモリーに対するボード上でのア
ービター(アービトレーション)は十分速いので、ネッ
トワークアダプタはホストプロセッサーの標準メモリー
サイクルの遅延の範囲内でメモリー要求に応答すること
ができるが、アービター(arbiter)の速度は他
の実施例では変わることがある。ホストプロセッサー4
0はメモリー32の内容を直接読むことができなければ
ならない。メモリー32に接続されたネットワーク上の
ノードは、コマンド要求を介して間接的にメモリーにア
クセスしさえすればよい。
ケーションメモリー、(以下これを「メモリー」と呼
ぶ)はこのような分散メモリーの収納と取り出しの両機
能を実行する。メモリー32は、それのノードのホスト
プロセッサー40から、あるいは、ネットワークから、
のいずれからの更新の要求をも受け付けることができ
る。典型的には、共有メモリーに対するボード上でのア
ービター(アービトレーション)は十分速いので、ネッ
トワークアダプタはホストプロセッサーの標準メモリー
サイクルの遅延の範囲内でメモリー要求に応答すること
ができるが、アービター(arbiter)の速度は他
の実施例では変わることがある。ホストプロセッサー4
0はメモリー32の内容を直接読むことができなければ
ならない。メモリー32に接続されたネットワーク上の
ノードは、コマンド要求を介して間接的にメモリーにア
クセスしさえすればよい。
【0039】以上に検討してきたレジスタロケーション
を用いて、メモリーページのアドレスは、相互接続され
たノードで、それに附属するアダプタのページテーブル
中にインデクスされる。各ノード内のメモリー中のデー
タの仮想あるいは物理アドレスのいずれをも指定するこ
とができる。インデクスの動作は、プロセッサーがそれ
のロケーションにおけるメモリー値を変更するか、それ
のメモリーの階層におけるデータのロケーションを変更
する時に生成されるページテーブルに対して更新を行い
ながらできるようにダイナミックなものでなければなら
ない。このような更新は、メモリーかページテーブルレ
ジスタへの書き込みによって行われ、その後に関連する
各ノードに対して広範囲に送出されるようになってい
る。
を用いて、メモリーページのアドレスは、相互接続され
たノードで、それに附属するアダプタのページテーブル
中にインデクスされる。各ノード内のメモリー中のデー
タの仮想あるいは物理アドレスのいずれをも指定するこ
とができる。インデクスの動作は、プロセッサーがそれ
のロケーションにおけるメモリー値を変更するか、それ
のメモリーの階層におけるデータのロケーションを変更
する時に生成されるページテーブルに対して更新を行い
ながらできるようにダイナミックなものでなければなら
ない。このような更新は、メモリーかページテーブルレ
ジスタへの書き込みによって行われ、その後に関連する
各ノードに対して広範囲に送出されるようになってい
る。
【0040】図3、4中で33と番号を付したページテ
ーブルは、仮想メモリーアドレスモードで、SVMアド
レスと物理メモリーアドレスとの間での翻訳をおこな
う。ネットワークアダプタは、物理ならびに仮想の2つ
のアドレスモードを持っている。物理アドレスモードに
おいて、ネットワークパケットアドレスと言うのは目標
のメモリーロケーションの物理アドレスであり、たとえ
ば、メモリー32のロケーション52と言うように使
う。したがって、アドレスを翻訳する必要はない。それ
に対して仮想アドレスモードでは、送出されるネットワ
ークパケットの仮想アドレスは物理アドレスをインデク
スとして使ってページテーブルから導出しなければなら
ない。もし、ページテーブルのルックアップが不成功に
終わったならば、パケットは発生もされず、ネットワー
クに送出されることもない。入ってくる仮想メモリーは
また、受信ノードのページテーブル中でのそれに付随す
るルックアップによって、物理メモリーアドレスに翻訳
される。
ーブルは、仮想メモリーアドレスモードで、SVMアド
レスと物理メモリーアドレスとの間での翻訳をおこな
う。ネットワークアダプタは、物理ならびに仮想の2つ
のアドレスモードを持っている。物理アドレスモードに
おいて、ネットワークパケットアドレスと言うのは目標
のメモリーロケーションの物理アドレスであり、たとえ
ば、メモリー32のロケーション52と言うように使
う。したがって、アドレスを翻訳する必要はない。それ
に対して仮想アドレスモードでは、送出されるネットワ
ークパケットの仮想アドレスは物理アドレスをインデク
スとして使ってページテーブルから導出しなければなら
ない。もし、ページテーブルのルックアップが不成功に
終わったならば、パケットは発生もされず、ネットワー
クに送出されることもない。入ってくる仮想メモリーは
また、受信ノードのページテーブル中でのそれに付随す
るルックアップによって、物理メモリーアドレスに翻訳
される。
【0041】図5はページテーブルにしまわれている情
報のフォーマットを示している。そこには、「p」個の
エントリーが示されており、各内容は、「保護」、「有
効」、「変更」、「メモリー」、「ソフトウエア使用可
能」、および、「アドレス」の各ビットからなってい
る。保護ビット60はホストプロセッサーに対して物理
メモリーのページならびにSVMのページに対してメモ
リー保護の方式を拡張することを許可するものである。
有効ビット62はページテーブルのエントリーが現在、
物理アドレスと仮想アドレスとの間の有効なマッピング
であるかどうかを示すものである。変更ビット64はホ
ストあるいはネットワークのいずれかからマップされた
ページに対して書き込みが起こったかどうかを示すもの
である。
報のフォーマットを示している。そこには、「p」個の
エントリーが示されており、各内容は、「保護」、「有
効」、「変更」、「メモリー」、「ソフトウエア使用可
能」、および、「アドレス」の各ビットからなってい
る。保護ビット60はホストプロセッサーに対して物理
メモリーのページならびにSVMのページに対してメモ
リー保護の方式を拡張することを許可するものである。
有効ビット62はページテーブルのエントリーが現在、
物理アドレスと仮想アドレスとの間の有効なマッピング
であるかどうかを示すものである。変更ビット64はホ
ストあるいはネットワークのいずれかからマップされた
ページに対して書き込みが起こったかどうかを示すもの
である。
【0042】メモリービット66はマップされたページ
がメモリーにおけるページであるかマッピングレジスタ
あるいはページテーブルの格納に使われたページである
かを区別して示すビットである。ソフトウエア使用可能
ビット68はノードにとって利用可能なページテーブル
メモリーであり、特定の動作を実行するためのシステム
符号である。エントリーのアドレスビット69は物理メ
モリーの各ページに対応する仮想メモリーのアドレスを
しまっているビットである。ここでは説明の簡明性のた
め、上に述べてきたフォーマットを好ましい実施例に対
して使用可能なフォーマットとして与えた。しかしなが
ら、別途の必要性がある場合、このレベルでの何等かの
変更を上のフォーマットに組み合せることが容易である
ことは当該分野に精通している人にとって容易に認め得
ることである。
がメモリーにおけるページであるかマッピングレジスタ
あるいはページテーブルの格納に使われたページである
かを区別して示すビットである。ソフトウエア使用可能
ビット68はノードにとって利用可能なページテーブル
メモリーであり、特定の動作を実行するためのシステム
符号である。エントリーのアドレスビット69は物理メ
モリーの各ページに対応する仮想メモリーのアドレスを
しまっているビットである。ここでは説明の簡明性のた
め、上に述べてきたフォーマットを好ましい実施例に対
して使用可能なフォーマットとして与えた。しかしなが
ら、別途の必要性がある場合、このレベルでの何等かの
変更を上のフォーマットに組み合せることが容易である
ことは当該分野に精通している人にとって容易に認め得
ることである。
【0043】関連するプロセッサーへのメモリーバスを
介してのアダプタへの接続、ネットワークバスからリン
クされているハードウエアへの接続などは、システムの
構成要素に必要な結合と光電変換の能力を提供できるも
のでさえあれば、どのような現状技術の接続法であって
もかまわない。以上に述べてきたネットワークアダプタ
はごく一般的なネットワークに接続することができる。
しかし、ここでいう共有メモリープログラミングモデル
は、データパケットが送り出されたのと同じ順序で目標
のメモリーに配達されることを要求している。ある種の
光スイッチングネットワークはこの要求を満たすことが
できるが、一般用ネットワークは、パケットシーケンス
保持などの付加的ハードウエアの追加がなければ、この
ような性質を保証しているものではない。
介してのアダプタへの接続、ネットワークバスからリン
クされているハードウエアへの接続などは、システムの
構成要素に必要な結合と光電変換の能力を提供できるも
のでさえあれば、どのような現状技術の接続法であって
もかまわない。以上に述べてきたネットワークアダプタ
はごく一般的なネットワークに接続することができる。
しかし、ここでいう共有メモリープログラミングモデル
は、データパケットが送り出されたのと同じ順序で目標
のメモリーに配達されることを要求している。ある種の
光スイッチングネットワークはこの要求を満たすことが
できるが、一般用ネットワークは、パケットシーケンス
保持などの付加的ハードウエアの追加がなければ、この
ような性質を保証しているものではない。
【0044】上に述べてきた、本発明のアダプタを接続
するのに適した好ましいスイッチングネットワークが図
6に示されている。このスイッチングハードウエアの新
しい特徴には、アドレス翻訳にもとづくダイナミックな
テーブルでドライブされるデータパケットのルート決
定、分布するスパニングツリーの計算とその維持、メモ
リーマップされたスイッチポート制御とダイナミック制
御、ならびにステータスレジスタの遂行などがある。ア
ダプタカード30はスイッチポート70を介して本発明
のスイッチ72に接続されている。したがって、スイッ
チポート70の入力ポート74はアダプタカード30の
出力ポート35にファイバーで接続されている。同様
に、スイッチポート70の出力ポート75はアダプタカ
ード30の入力ポート34に接続されている。
するのに適した好ましいスイッチングネットワークが図
6に示されている。このスイッチングハードウエアの新
しい特徴には、アドレス翻訳にもとづくダイナミックな
テーブルでドライブされるデータパケットのルート決
定、分布するスパニングツリーの計算とその維持、メモ
リーマップされたスイッチポート制御とダイナミック制
御、ならびにステータスレジスタの遂行などがある。ア
ダプタカード30はスイッチポート70を介して本発明
のスイッチ72に接続されている。したがって、スイッ
チポート70の入力ポート74はアダプタカード30の
出力ポート35にファイバーで接続されている。同様
に、スイッチポート70の出力ポート75はアダプタカ
ード30の入力ポート34に接続されている。
【0045】この好ましい実施例では、ネットワークア
ダプタは点から点への(ポイント・ツー・ポイントの)
ファイバー光リンクを通してスイッチングネットワーク
に接続される。原理的には、アダプタの接続として、他
に無線、ツイストペア線、赤外線、あるいは、同軸ケー
ブルなどのリンクを採用することができる。図6のスイ
ッチングネットワーク72は多数のポート、例えば、7
0、79、80などからなっており、それらはすべては
バスを共有し、各ポートデータ伝送の要求に対してサー
ビスするために時分割多重を用いている。スイッチ72
は、必要に応じてカスケード接続のネットワークを形成
するため、他のスイッチシステムや多数のスイッチに接
続されてもよい。スイッチポート79、80はアダプタ
やスイッチハードウエアに任意に接続してもよい。スイ
ッチポートは、それらが接続されているハードウエアと
は独立に、いずれも同じように動作する。
ダプタは点から点への(ポイント・ツー・ポイントの)
ファイバー光リンクを通してスイッチングネットワーク
に接続される。原理的には、アダプタの接続として、他
に無線、ツイストペア線、赤外線、あるいは、同軸ケー
ブルなどのリンクを採用することができる。図6のスイ
ッチングネットワーク72は多数のポート、例えば、7
0、79、80などからなっており、それらはすべては
バスを共有し、各ポートデータ伝送の要求に対してサー
ビスするために時分割多重を用いている。スイッチ72
は、必要に応じてカスケード接続のネットワークを形成
するため、他のスイッチシステムや多数のスイッチに接
続されてもよい。スイッチポート79、80はアダプタ
やスイッチハードウエアに任意に接続してもよい。スイ
ッチポートは、それらが接続されているハードウエアと
は独立に、いずれも同じように動作する。
【0046】スイッチ72は、共通バス77を通して接
続されている一連のスイッチポートたとえば70、7
9、80などからなっている。各スイッチポートは、こ
こでは説明のために70についていうと、ページテーブ
ル73、ステータスならびに制御レジスタのセット7
1、内部バス77へのインターフェース78、入力およ
び出力FIFO74、75などからなっている。ネット
ワークへのアダプタの接続と同様に、入出力FIFO
は、リンクハードウエア(LH)と表わされている回路
76を介してネットワークファイバーに接続されてい
る。
続されている一連のスイッチポートたとえば70、7
9、80などからなっている。各スイッチポートは、こ
こでは説明のために70についていうと、ページテーブ
ル73、ステータスならびに制御レジスタのセット7
1、内部バス77へのインターフェース78、入力およ
び出力FIFO74、75などからなっている。ネット
ワークへのアダプタの接続と同様に、入出力FIFO
は、リンクハードウエア(LH)と表わされている回路
76を介してネットワークファイバーに接続されてい
る。
【0047】図6のスイッチポート70の制御・ステー
タス・レジスタ71はスイッチポートの制御のためのネ
ットワークへのインターフェースである。レジスタに
は、スイッチポートのUIDのごときスイッチ構成、バ
ス77上の多数のスイッチポート、それぞれのポートの
アダプタハードウエアのUID、ならびに、スイッチポ
ートの最大データ伝送速度、などの情報がしまわれてい
る。
タス・レジスタ71はスイッチポートの制御のためのネ
ットワークへのインターフェースである。レジスタに
は、スイッチポートのUIDのごときスイッチ構成、バ
ス77上の多数のスイッチポート、それぞれのポートの
アダプタハードウエアのUID、ならびに、スイッチポ
ートの最大データ伝送速度、などの情報がしまわれてい
る。
【0048】ポート70の中で符号73で示されている
スイッチページテーブルは、ネットワークを通じてのル
ート・トラフィックの物理ならびに仮想アドレスモード
の両方に使われる。図7はスイッチポートページテーブ
ルの構成を示している。保護、有効、変更、メモリー、
ソフトウエア使用可能、ならびに、アドレスの各ビット
がアダプタに付随しているページテーブルにおけると同
様の目的に用いられる。スイッチングポートのページテ
ーブルにしまわれているアドレスは、物理的、仮想的、
あるいは、物理的と仮想的の両方の混合のいずれであっ
てもよい。はいってくるデータパケットのアドレスは、
付随するページテーブルのルックアップで「n」ビット
のベクトル67を得るのに用いられる。「n」ビットベ
クトルは、バス77を共有している多くのポートのいず
れがデータパケットを受け取る目標とされているかを見
分けるのに使われる。
スイッチページテーブルは、ネットワークを通じてのル
ート・トラフィックの物理ならびに仮想アドレスモード
の両方に使われる。図7はスイッチポートページテーブ
ルの構成を示している。保護、有効、変更、メモリー、
ソフトウエア使用可能、ならびに、アドレスの各ビット
がアダプタに付随しているページテーブルにおけると同
様の目的に用いられる。スイッチングポートのページテ
ーブルにしまわれているアドレスは、物理的、仮想的、
あるいは、物理的と仮想的の両方の混合のいずれであっ
てもよい。はいってくるデータパケットのアドレスは、
付随するページテーブルのルックアップで「n」ビット
のベクトル67を得るのに用いられる。「n」ビットベ
クトルは、バス77を共有している多くのポートのいず
れがデータパケットを受け取る目標とされているかを見
分けるのに使われる。
【0049】もしあるページのnビットベクトルがある
ローカルのスイッチポート70を目標としていることが
見分けられたら、そのポートの制御ならびにステータス
レジスタ71とページテーブル73にそのページがマッ
プされるということが書き込まれる。もし、スイッチポ
ート70が(ポート79に付随するnビットベクトル空
間の「1」によって)ポート79を示すnビットベクト
ルを持ったページを見つけると、そのページへのすべて
の書き込みはポート79のレジスタとページテーブルを
更新するだろう。
ローカルのスイッチポート70を目標としていることが
見分けられたら、そのポートの制御ならびにステータス
レジスタ71とページテーブル73にそのページがマッ
プされるということが書き込まれる。もし、スイッチポ
ート70が(ポート79に付随するnビットベクトル空
間の「1」によって)ポート79を示すnビットベクト
ルを持ったページを見つけると、そのページへのすべて
の書き込みはポート79のレジスタとページテーブルを
更新するだろう。
【0050】スイッチポートの入力ならびに出力のそれ
ぞれのFIFO、74、75は、アダプタカード中のそ
れらの対応部分と同様にポートを通る情報の流れを制御
する。入力FIFO74に接続されたリンクハードウエ
アによって受信されるネットワークパケットは入力FI
FO中に待ち行列をつくり、シーケンシャルに進んで、
最後にプロセス用のスイッチポートの働きで行列から跳
び出てゆく。ポート70から送り出されるネットワーク
パケットは出力FIFO75中で待ち行列をつくり、シ
ーケンシャルに進んで、最後にバス77全体への伝送の
ために、送り出しリンクハードウエアへ渡される。
ぞれのFIFO、74、75は、アダプタカード中のそ
れらの対応部分と同様にポートを通る情報の流れを制御
する。入力FIFO74に接続されたリンクハードウエ
アによって受信されるネットワークパケットは入力FI
FO中に待ち行列をつくり、シーケンシャルに進んで、
最後にプロセス用のスイッチポートの働きで行列から跳
び出てゆく。ポート70から送り出されるネットワーク
パケットは出力FIFO75中で待ち行列をつくり、シ
ーケンシャルに進んで、最後にバス77全体への伝送の
ために、送り出しリンクハードウエアへ渡される。
【0051】スイッチ内部バス77はスイッチポート、
たとえば、70、79、80などの間の多方向送出パケ
ットを運ぶ役目をもっている。スイッチバスのトランザ
クションは基本的には円形署名状形式(round r
obin)のバスアービター方式で実行される。ポート
がバスを取得するとき、それはまず目標ポートのnビッ
トベクトルをバスへと渡す。すべてのポートがバスをモ
ニターしているので、目標ポートはバス上にトランザク
ション中止の信号を送り出すことによってパケットの受
信を拒否することができる。送信ポートが何の信号も受
け取らなければ、データパケットがバス上に送り出さ
れ、各目標ポートによってラッチされ、それらの入力F
IFO中に待ち行列をつくる。メモリービットは、普
通、目標のUIDがそれらのページテーブル中のパケッ
トアドレスをルックアップするかしないかを知ることが
できるように、データパケットと共に送り出される。例
えば、スイッチポートレジスタならびにスイッチポート
ページテーブルへの書き込みは、附属のアダプタロケー
ションに向けられた書き込みとは違って、ルックアップ
を必要としないだろう。
たとえば、70、79、80などの間の多方向送出パケ
ットを運ぶ役目をもっている。スイッチバスのトランザ
クションは基本的には円形署名状形式(round r
obin)のバスアービター方式で実行される。ポート
がバスを取得するとき、それはまず目標ポートのnビッ
トベクトルをバスへと渡す。すべてのポートがバスをモ
ニターしているので、目標ポートはバス上にトランザク
ション中止の信号を送り出すことによってパケットの受
信を拒否することができる。送信ポートが何の信号も受
け取らなければ、データパケットがバス上に送り出さ
れ、各目標ポートによってラッチされ、それらの入力F
IFO中に待ち行列をつくる。メモリービットは、普
通、目標のUIDがそれらのページテーブル中のパケッ
トアドレスをルックアップするかしないかを知ることが
できるように、データパケットと共に送り出される。例
えば、スイッチポートレジスタならびにスイッチポート
ページテーブルへの書き込みは、附属のアダプタロケー
ションに向けられた書き込みとは違って、ルックアップ
を必要としないだろう。
【0052】本発明をその動作について、更に以下に述
べてゆく。既に「背景」の節で述べたように、多方向送
出更新を行うことによってネットワーク遅延時間を大幅
に削減でき、使用プロセッサーの数を最小に抑えなが
ら、ネットワークの完全性を維持することができるだけ
でなく、仮想共有メモリーの最終目標も、本発明によっ
て実現可能となる。仮想共有メモリーについては既に述
べたように、一つのノードに付随する仮想メモリーは、
それの物理あるいは仮想共有メモリーアドレス空間から
分離されている。分布しているノード間のネットワーク
通信は、図2を参照して既に一般的に議論したように、
目標ノードに割当てられた仮想メモリー空間の中に「マ
ッピング」することによってなされる。すべての通信が
メモリー書き込みの形をとり、プロセッサー書き込みの
副作用として、あるいは、それ自身のローカルなアダプ
タの仮想メモリー空間へのプログラム書き込みとして、
発生する。コマンドパケットや制御レジスタ更新のよう
な、付随的なノード間情報転送もまた、制御ならびにス
テータスレジスタやページテーブルのネットワークアド
レスに割当てられたSVM空間へのマッッピングによっ
て達成される。
べてゆく。既に「背景」の節で述べたように、多方向送
出更新を行うことによってネットワーク遅延時間を大幅
に削減でき、使用プロセッサーの数を最小に抑えなが
ら、ネットワークの完全性を維持することができるだけ
でなく、仮想共有メモリーの最終目標も、本発明によっ
て実現可能となる。仮想共有メモリーについては既に述
べたように、一つのノードに付随する仮想メモリーは、
それの物理あるいは仮想共有メモリーアドレス空間から
分離されている。分布しているノード間のネットワーク
通信は、図2を参照して既に一般的に議論したように、
目標ノードに割当てられた仮想メモリー空間の中に「マ
ッピング」することによってなされる。すべての通信が
メモリー書き込みの形をとり、プロセッサー書き込みの
副作用として、あるいは、それ自身のローカルなアダプ
タの仮想メモリー空間へのプログラム書き込みとして、
発生する。コマンドパケットや制御レジスタ更新のよう
な、付随的なノード間情報転送もまた、制御ならびにス
テータスレジスタやページテーブルのネットワークアド
レスに割当てられたSVM空間へのマッッピングによっ
て達成される。
【0053】メッセージには、アダプタカードによって
ネットワークへの送り出しと応答の両方ができる2つの
タイプのメッセージ、すなわち、コマンドメッセージと
データメッセージとがある。コマンドパケットは、制御
レジスタを更新したり、遠隔地のアダプタカードからの
応答を引出したりするために、2つあるいはそれ以上の
ネットワークアダプタ間のデータの伝送を支援するもの
である。コマンドパケットは点から点へのフローの制御
(ショート・コマンド・パケットで)を行い、ネットワ
ークシステムのエラー検出・修復を行い、通信チャンネ
ルを確立し、ネットワークアダプタハードウエアからの
ステータスレポートを獲得し、且つ、ネットワークをダ
イナミックに再構成(長いコマンドパケットで)するの
に使われる。
ネットワークへの送り出しと応答の両方ができる2つの
タイプのメッセージ、すなわち、コマンドメッセージと
データメッセージとがある。コマンドパケットは、制御
レジスタを更新したり、遠隔地のアダプタカードからの
応答を引出したりするために、2つあるいはそれ以上の
ネットワークアダプタ間のデータの伝送を支援するもの
である。コマンドパケットは点から点へのフローの制御
(ショート・コマンド・パケットで)を行い、ネットワ
ークシステムのエラー検出・修復を行い、通信チャンネ
ルを確立し、ネットワークアダプタハードウエアからの
ステータスレポートを獲得し、且つ、ネットワークをダ
イナミックに再構成(長いコマンドパケットで)するの
に使われる。
【0054】更に以下に議論するように、短いコマンド
の実行は長いコマンドの実行と異なる。短いコマンドは
決してリンクハードウエア36から入力FIFO34に
入ることはない。かわりに、リンクハードウエア36は
短いコマンドを実行するか、または入力FIFO34を
パスさせるかする。データメッセージあるいはパケット
はアダプタメモリーに対する更新を行わせる。ある状況
下では、制御ならびにデータメッセージは、メモリーバ
ス上のDMA(ダイレクトメモリーアクセス)素子の働
き、自動ネットワークフロー制御、FIFO管理、ある
いは、遠隔ネットワークアクセス動作、などによって間
接的に発生させられる。コマンドパケットのための一つ
のオペレーションフォーマットの例を下の表1に示す。
の実行は長いコマンドの実行と異なる。短いコマンドは
決してリンクハードウエア36から入力FIFO34に
入ることはない。かわりに、リンクハードウエア36は
短いコマンドを実行するか、または入力FIFO34を
パスさせるかする。データメッセージあるいはパケット
はアダプタメモリーに対する更新を行わせる。ある状況
下では、制御ならびにデータメッセージは、メモリーバ
ス上のDMA(ダイレクトメモリーアクセス)素子の働
き、自動ネットワークフロー制御、FIFO管理、ある
いは、遠隔ネットワークアクセス動作、などによって間
接的に発生させられる。コマンドパケットのための一つ
のオペレーションフォーマットの例を下の表1に示す。
【0055】
【式1】
【0056】上表の中で、括弧の中の数字は各フィール
ドのバイト長を表わしている。可変長のフィールドは括
弧内に数字を付けずに示した。各パケットの先頭バイト
は、そのパケットのその他の部分のタイプ(コマンドで
あるかデータであるか)、サイズおよびフォーマットを
決めるヘッダーである。もしパケット中にアドレスフィ
ールドがあるならば、ヘッダーの中のビット1はアドレ
スが直接、物理メモリーアドレスを指すのか、あるい
は、間接的に仮想メモリーを指すのかを指示する。仮想
アドレスへの翻訳は、アダプタハードウエアに対してロ
ーカルのページテーブルにアクセスするように要求す
る。長いコマンドパケットのUIDは、上に議論したよ
うに、64ビットから成っており、それによってハード
ウエアの各単一要素を一義的に指定するものである。
ドのバイト長を表わしている。可変長のフィールドは括
弧内に数字を付けずに示した。各パケットの先頭バイト
は、そのパケットのその他の部分のタイプ(コマンドで
あるかデータであるか)、サイズおよびフォーマットを
決めるヘッダーである。もしパケット中にアドレスフィ
ールドがあるならば、ヘッダーの中のビット1はアドレ
スが直接、物理メモリーアドレスを指すのか、あるい
は、間接的に仮想メモリーを指すのかを指示する。仮想
アドレスへの翻訳は、アダプタハードウエアに対してロ
ーカルのページテーブルにアクセスするように要求す
る。長いコマンドパケットのUIDは、上に議論したよ
うに、64ビットから成っており、それによってハード
ウエアの各単一要素を一義的に指定するものである。
【0057】実行可能なオペレーションは二つのポー
ト、すなわち、図3、4のメモリーバスインターフェー
ス38あるいはリンクハードウエア36のうちのいずれ
か一つを通ってネットワークに到着する。以下に述べる
オペレーションはすべてそれらの実行中、アダプタに対
して独占的なアクセスを要求する。したがって、アダプ
タメモリーバスオペレーションの実行により、FIFO
はパケットの受け付けや待ち行列づくりの受け付けを続
けるけれども、入力FIFO34からのそのオペレーシ
ョンのフローは一時的にシャットダウンされる。逆に、
入力FIFOからのネットワークパケットの実行によ
り、入ってくるホストメモリーのトラフィックが一時的
にブロックされる。ホストプロセッサーは、その動作の
すべてについて中断されるのではないが、ネットワーク
から発生したオペレーションの期間はそれのアダプタに
アクセスすることができない。アダプタカードの関与す
るオペレーションには次の5つの基本的なものがある。
ト、すなわち、図3、4のメモリーバスインターフェー
ス38あるいはリンクハードウエア36のうちのいずれ
か一つを通ってネットワークに到着する。以下に述べる
オペレーションはすべてそれらの実行中、アダプタに対
して独占的なアクセスを要求する。したがって、アダプ
タメモリーバスオペレーションの実行により、FIFO
はパケットの受け付けや待ち行列づくりの受け付けを続
けるけれども、入力FIFO34からのそのオペレーシ
ョンのフローは一時的にシャットダウンされる。逆に、
入力FIFOからのネットワークパケットの実行によ
り、入ってくるホストメモリーのトラフィックが一時的
にブロックされる。ホストプロセッサーは、その動作の
すべてについて中断されるのではないが、ネットワーク
から発生したオペレーションの期間はそれのアダプタに
アクセスすることができない。アダプタカードの関与す
るオペレーションには次の5つの基本的なものがある。
【0058】1)プロセッサーのアダプタメモリーの読
み込みあるいは書き込み、 2)ホスト素子ブロックのアダプタメモリーの読み込み
あるいは書き込み、 3)プロセッサーのページテーブルあるいはレジスタの
読み込みあるいは書き込み、 4)ネットワーク素子の書き込みあるいはブロック書き
込みの実行、 5)ネットワーク素子のページテーブルあるいはレジス
タへの書き込み。
み込みあるいは書き込み、 2)ホスト素子ブロックのアダプタメモリーの読み込み
あるいは書き込み、 3)プロセッサーのページテーブルあるいはレジスタの
読み込みあるいは書き込み、 4)ネットワーク素子の書き込みあるいはブロック書き
込みの実行、 5)ネットワーク素子のページテーブルあるいはレジス
タへの書き込み。
【0059】最初の三つの基本的なオペレーションにこ
いて、ホストプロセッサー40、あるいはDMA素子は
メモリー32、ページテーブル33、あるいは、制御な
らびにステータスレジスタ31に、メモリーバス37に
沿った読み込み、書き込みを通じてアクセスする。ホス
トプロセッサーあるいはDMAは物理アドレスを供給
し、書き込みの場合は、単数あるいは複数の値を更新す
る。最後の2つのオペレーションは、ネットワークパケ
ットが例えばリンクハードウエア36を介して入力ポー
トに到着したとき実行される。ネットワークパケットの
実行は、それがデータであるかコマンドであるかにかか
わらず、メモリー32、ページテーブル33、あるいは
レジスタ31に対する更新をすることになってもかまわ
ない。
いて、ホストプロセッサー40、あるいはDMA素子は
メモリー32、ページテーブル33、あるいは、制御な
らびにステータスレジスタ31に、メモリーバス37に
沿った読み込み、書き込みを通じてアクセスする。ホス
トプロセッサーあるいはDMAは物理アドレスを供給
し、書き込みの場合は、単数あるいは複数の値を更新す
る。最後の2つのオペレーションは、ネットワークパケ
ットが例えばリンクハードウエア36を介して入力ポー
トに到着したとき実行される。ネットワークパケットの
実行は、それがデータであるかコマンドであるかにかか
わらず、メモリー32、ページテーブル33、あるいは
レジスタ31に対する更新をすることになってもかまわ
ない。
【0060】最初のオペレーションにおいて、プロセッ
サー40はアダプタメモリー32に対して読み込み書き
込みの指示を行う。コマンド「読み込み」(52)はプ
ロセッサー40がロケーション52をメモリー32から
読み込むとき実行される。コマンド「書き込み」(5
2,a)で、プロセッサー40は同時に値aをメモリー
32中のロケーション52に書き込み、ネットワークを
通じての最終的な送信のために出力FIFOにメッセー
ジ「書き込み」(52,a)の待ち行列をつくる。物理
アドレスモードにおいては、アドレスに対して用いられ
る値がメモリー32中のメモリーロケーション52の物
理オフセットに対応し、メッセージ「書き込み」(5
2,a)が送り出される。
サー40はアダプタメモリー32に対して読み込み書き
込みの指示を行う。コマンド「読み込み」(52)はプ
ロセッサー40がロケーション52をメモリー32から
読み込むとき実行される。コマンド「書き込み」(5
2,a)で、プロセッサー40は同時に値aをメモリー
32中のロケーション52に書き込み、ネットワークを
通じての最終的な送信のために出力FIFOにメッセー
ジ「書き込み」(52,a)の待ち行列をつくる。物理
アドレスモードにおいては、アドレスに対して用いられ
る値がメモリー32中のメモリーロケーション52の物
理オフセットに対応し、メッセージ「書き込み」(5
2,a)が送り出される。
【0061】仮想アドレシングモードにおいては、コマ
ンド中のアドレス値がメモリー32中の物理アドレス5
2に対応しているページテーブルエントリーPT(5
2)であり、メッセージ「書き込み」(PT(52),
a)が送り出される。仮想メモリーアドレシングオペレ
ーションに対する実際のオペレーションのシーケンスを
以下に詳しく述べる。まず、書き込みコマンドがメモリ
ーバス接続38上のプロセッサー40から書き込みコマ
ンドを持って到着する。アダプタカードはこの書き込み
コマンドをデコードし、メモリー32中の指定したロケ
ーション52に新しい値、例えばaを入れることによっ
てメモリー32を更新する。アダプタカードはここで、
物理メモリーページに対応するSVMのページアドレス
をルックアップする。
ンド中のアドレス値がメモリー32中の物理アドレス5
2に対応しているページテーブルエントリーPT(5
2)であり、メッセージ「書き込み」(PT(52),
a)が送り出される。仮想メモリーアドレシングオペレ
ーションに対する実際のオペレーションのシーケンスを
以下に詳しく述べる。まず、書き込みコマンドがメモリ
ーバス接続38上のプロセッサー40から書き込みコマ
ンドを持って到着する。アダプタカードはこの書き込み
コマンドをデコードし、メモリー32中の指定したロケ
ーション52に新しい値、例えばaを入れることによっ
てメモリー32を更新する。アダプタカードはここで、
物理メモリーページに対応するSVMのページアドレス
をルックアップする。
【0062】アダプタカードは、パケットに付随してい
るヘッダーフィールドによって指示されている仮想アド
レシングモードであるか物理アドレシングモードである
かを反映する物理レジスタ61を参照し、それによっ
て、それが仮想アドレシングモードにあることを決定す
る。つぎに、アダプタカードは、ページテーブル33か
らのSVMページアドレスによって決定されるアドレス
を持ったネットワーク書き込みパケットをつくり、ルッ
クアップし、出力FIFO35中にこのパケットのペー
ジオフセットと待ち行列をつくる。この時点で、アダプ
タ上での書き込みコマンドの実行はホストプロセッサー
の立場から完了したものと見做され、したがって制御は
ホストに返される。最後に、ネットワーク書き込みパケ
ットがFIFO35を通過した後、パケットはリンクハ
ードウエア36を通して送り出される。もし書き込みが
物理アドレスモードで実行されるならば、物理アドレス
をページテーブルによって翻訳する必要はない。物理ア
ドレスはネットワークデータパケット「書き込み」(5
2,a)でネットワークに送り出される。
るヘッダーフィールドによって指示されている仮想アド
レシングモードであるか物理アドレシングモードである
かを反映する物理レジスタ61を参照し、それによっ
て、それが仮想アドレシングモードにあることを決定す
る。つぎに、アダプタカードは、ページテーブル33か
らのSVMページアドレスによって決定されるアドレス
を持ったネットワーク書き込みパケットをつくり、ルッ
クアップし、出力FIFO35中にこのパケットのペー
ジオフセットと待ち行列をつくる。この時点で、アダプ
タ上での書き込みコマンドの実行はホストプロセッサー
の立場から完了したものと見做され、したがって制御は
ホストに返される。最後に、ネットワーク書き込みパケ
ットがFIFO35を通過した後、パケットはリンクハ
ードウエア36を通して送り出される。もし書き込みが
物理アドレスモードで実行されるならば、物理アドレス
をページテーブルによって翻訳する必要はない。物理ア
ドレスはネットワークデータパケット「書き込み」(5
2,a)でネットワークに送り出される。
【0063】詳しく述べなければならない次のオペレー
ションはホストデバイスブロックのアダプタメモリーに
対する読み込みと書き込みである。まず、図示されてい
ないDMAデバイスが、メモリーバス37上にコマンド
を送り出すことである。ブロック書き込みでは、コマン
ドは一つのアドレスからなり、その後に任意のバイト数
のデータがつづく。アダプタでこれを受け取ると、メモ
リーバス接続38を通り、DMAデータは目的ロケーシ
ョンのメモリーを更新するのに使われる。この時点で、
DMAはアダプタに対して優先的制御権を持っている。
メモリーロケーションが更新されている間に、アドレス
と更新値をしまっているネットワークパケットがつくら
れる。
ションはホストデバイスブロックのアダプタメモリーに
対する読み込みと書き込みである。まず、図示されてい
ないDMAデバイスが、メモリーバス37上にコマンド
を送り出すことである。ブロック書き込みでは、コマン
ドは一つのアドレスからなり、その後に任意のバイト数
のデータがつづく。アダプタでこれを受け取ると、メモ
リーバス接続38を通り、DMAデータは目的ロケーシ
ョンのメモリーを更新するのに使われる。この時点で、
DMAはアダプタに対して優先的制御権を持っている。
メモリーロケーションが更新されている間に、アドレス
と更新値をしまっているネットワークパケットがつくら
れる。
【0064】もしレジスタ61が、アダプタは物理アド
レシングモードであると示している場合には、ページテ
ーブルのルックアップは行われない。そして、パケット
は出力FIFO35に待ち行列を作る。ネットワークパ
ケットが出力FIFO35にしまわれた後、アダプタハ
ードウエアはホストメモリーバス37上に、DMA書き
込みが完了し、制御がホストプロセッサーに返された旨
の信号を出す。最後に、ネットワークパケットは出力F
IFO35を通って流れ、ネットワークに送り出され
る。仮想アドレシングモードにおけるブロック書き込み
の場合には、物理アドレスはページテーブルを経て翻訳
されることになる。ネットワークパケットとして送り出
された仮想アドレスはPT(52)である。
レシングモードであると示している場合には、ページテ
ーブルのルックアップは行われない。そして、パケット
は出力FIFO35に待ち行列を作る。ネットワークパ
ケットが出力FIFO35にしまわれた後、アダプタハ
ードウエアはホストメモリーバス37上に、DMA書き
込みが完了し、制御がホストプロセッサーに返された旨
の信号を出す。最後に、ネットワークパケットは出力F
IFO35を通って流れ、ネットワークに送り出され
る。仮想アドレシングモードにおけるブロック書き込み
の場合には、物理アドレスはページテーブルを経て翻訳
されることになる。ネットワークパケットとして送り出
された仮想アドレスはPT(52)である。
【0065】制御ならびにステータスレジスタ31、ペ
ージテーブル33において、それらの内容はホストプロ
セッサー40によって単にメモリーとして読み込まれ且
つ書き込まれる。このようにして、特定のレジスタとペ
ージテーブルの内容が、アダプタハードウエアによって
認識された物理アドレスを使って、ホストプロセッサー
によってアクセスされる。制御ならびにステータスレジ
スタに対する書き込みは潜在的に重要な副作用を持って
いる。しかし、ページテーブルに対する更新は、ネット
ワーク全体に対して更新の再送出が起こり得るというこ
と以外には特別な副作用を持たない。
ージテーブル33において、それらの内容はホストプロ
セッサー40によって単にメモリーとして読み込まれ且
つ書き込まれる。このようにして、特定のレジスタとペ
ージテーブルの内容が、アダプタハードウエアによって
認識された物理アドレスを使って、ホストプロセッサー
によってアクセスされる。制御ならびにステータスレジ
スタに対する書き込みは潜在的に重要な副作用を持って
いる。しかし、ページテーブルに対する更新は、ネット
ワーク全体に対して更新の再送出が起こり得るというこ
と以外には特別な副作用を持たない。
【0066】各プロセッサー40はネットワークアダプ
タに対して読み込み書き込み制御レジスタ/ページテー
ブル命令を次のように実行する。まず、ホストプロセッ
サー40がレジスタ、たとえば31、に対して、メモリ
ーに対して使われたのと同じコマンド、たとえば、「書
き込み」(51,UID)を使って書き込みを行う。制
御ならびにステータスレジスタとページテーブルはメモ
リー32とははっきりと異なる物理メモリーアドレスに
メモリーマップされるだけである。次に、書き込み値U
IDは適当なロケーション、この例では51、にしまわ
れる。レジスタの更新は、場合によっては、たとえばこ
の例のように、ネットワークに対して長いコマンドパケ
ットの送出といったような副作用をひきおこす。長いコ
マンドパケットが生成されFIFO中に待ち行列をつく
ると、次に、バス更新オペレーションが完了しているの
で、ネットワークアダプタ30がメモリーバス37を通
してホストプロセッサーに信号を送る。制御はここでプ
ロセッサーに返される。
タに対して読み込み書き込み制御レジスタ/ページテー
ブル命令を次のように実行する。まず、ホストプロセッ
サー40がレジスタ、たとえば31、に対して、メモリ
ーに対して使われたのと同じコマンド、たとえば、「書
き込み」(51,UID)を使って書き込みを行う。制
御ならびにステータスレジスタとページテーブルはメモ
リー32とははっきりと異なる物理メモリーアドレスに
メモリーマップされるだけである。次に、書き込み値U
IDは適当なロケーション、この例では51、にしまわ
れる。レジスタの更新は、場合によっては、たとえばこ
の例のように、ネットワークに対して長いコマンドパケ
ットの送出といったような副作用をひきおこす。長いコ
マンドパケットが生成されFIFO中に待ち行列をつく
ると、次に、バス更新オペレーションが完了しているの
で、ネットワークアダプタ30がメモリーバス37を通
してホストプロセッサーに信号を送る。制御はここでプ
ロセッサーに返される。
【0067】最後に、コマンドパケットが出力FIFO
35を通してネットワーク全体に送り出される。仮想ア
ドレスモードにおいては、レジスタあるいはページテー
ブルメモリーはページテーブルの内容によってネットワ
ーク上にマップされる。この場合、ホストプロセッサー
によって一つの値がレジスタまたはページテーブルに書
き込まれたときに、仮想アドレスPT(51)と更新値
を用いてネットワークデータパケットが生成される。こ
のデータパケットは、どんな長いコマンドまたはデータ
パケットが副作用として発生されるとしてもその発生以
前に、出力FIFO35の中に入れられる。更新によっ
て発生された最後の副作用のパケットがFIFO35中
に待ち行列をつくってはじめて制御がホストプロセッサ
ーに返される。副作用として発生されたパケットが短い
コマンドパケットであるならば、プロセスはかなり短い
ものである。コマンドレジスタが更新され、短いコマン
ドパケットが生成されたのち、コマンドパケットはFI
FO35をスキップし、リンクハードウエア36に直接
出てゆく。
35を通してネットワーク全体に送り出される。仮想ア
ドレスモードにおいては、レジスタあるいはページテー
ブルメモリーはページテーブルの内容によってネットワ
ーク上にマップされる。この場合、ホストプロセッサー
によって一つの値がレジスタまたはページテーブルに書
き込まれたときに、仮想アドレスPT(51)と更新値
を用いてネットワークデータパケットが生成される。こ
のデータパケットは、どんな長いコマンドまたはデータ
パケットが副作用として発生されるとしてもその発生以
前に、出力FIFO35の中に入れられる。更新によっ
て発生された最後の副作用のパケットがFIFO35中
に待ち行列をつくってはじめて制御がホストプロセッサ
ーに返される。副作用として発生されたパケットが短い
コマンドパケットであるならば、プロセスはかなり短い
ものである。コマンドレジスタが更新され、短いコマン
ドパケットが生成されたのち、コマンドパケットはFI
FO35をスキップし、リンクハードウエア36に直接
出てゆく。
【0068】リンクハードウエア36を通ってアダプタ
に到着したネットワークオペレーションは、上述の短い
パケットの場合以外、FIFO34中に待ち行列をつく
る。データメッセージは、それらの各アダプタカード上
のプロセッサーによる遠隔地点のノードでの書き込みに
応じて、物理メモリーロケーション32を更新するのに
使われる。仮想アドレシングモードでは、データメッセ
ージは制御ならびにステータスレジスタやページテーブ
ルを、ページテーブルが適正にセットされているものと
して、更新する。すべてのデータメッセージのルート選
択はページテーブルルート選択を用いてスイッチングネ
ットワークを通しておこなわれる。
に到着したネットワークオペレーションは、上述の短い
パケットの場合以外、FIFO34中に待ち行列をつく
る。データメッセージは、それらの各アダプタカード上
のプロセッサーによる遠隔地点のノードでの書き込みに
応じて、物理メモリーロケーション32を更新するのに
使われる。仮想アドレシングモードでは、データメッセ
ージは制御ならびにステータスレジスタやページテーブ
ルを、ページテーブルが適正にセットされているものと
して、更新する。すべてのデータメッセージのルート選
択はページテーブルルート選択を用いてスイッチングネ
ットワークを通しておこなわれる。
【0069】ブロック書き込みと非ブロック書き込みと
の差は小さいので、詳細はブロック書き込みの例につい
てのみ述べておく。ブロック書き込みネットワークパケ
ットは信号到来側のネットワーク伝送線に到着すると、
物理アドレシングモードか仮想アドレシングモードかを
表わすヘッダーのバイトが必要になる。この例として、
仮想アドレシング状態が「表示」され、その結果、到着
SVMパケットに対して付随するページテーブルのルッ
クアップが要求される。まず、到着パケットはリンクハ
ードウエア36によって受信される。次に、データパケ
ットは入力FIFO34中に待ち行列をつくる。パケッ
トは入力FIFO34を通過した後、デコードされ仮想
アドレスはページテーブルを通して付随するルックアッ
プを行うことによって翻訳される。
の差は小さいので、詳細はブロック書き込みの例につい
てのみ述べておく。ブロック書き込みネットワークパケ
ットは信号到来側のネットワーク伝送線に到着すると、
物理アドレシングモードか仮想アドレシングモードかを
表わすヘッダーのバイトが必要になる。この例として、
仮想アドレシング状態が「表示」され、その結果、到着
SVMパケットに対して付随するページテーブルのルッ
クアップが要求される。まず、到着パケットはリンクハ
ードウエア36によって受信される。次に、データパケ
ットは入力FIFO34中に待ち行列をつくる。パケッ
トは入力FIFO34を通過した後、デコードされ仮想
アドレスはページテーブルを通して付随するルックアッ
プを行うことによって翻訳される。
【0070】アドレスの解読において、物理メモリーペ
ージ数を得るのにSVMページのインデックスが参照さ
れる。最後に、ルックアップによって得られた物理アド
レスを用いて、アダプタカードがメモリー32に対して
データのブロックを書き込む。仮想アドレシングモード
においては、到着するパケットのアドレスは、ページテ
ーブルの内容に応じて、レジスタ31、ページテーブル
33、あるいはメモリー32に対する更新を指示する。
このようにして制御レジスタに対してなされた更新は、
コマンドパケットの発生を引き起こし、それは出力FI
FO35中に待ち行列をつくるだろう。その例は、シス
テムのダイナミックな再構成中に見られる。そうして、
それによって、一つのコマンドパケットの実行はネット
ワーク全体に送り出されるコマンドとデータの両方のパ
ケットの生成を必要とするだろう。メモリー32に対す
るネットワークの更新は、一般に、ネットワークパケッ
トの生成を引き起こさない。
ージ数を得るのにSVMページのインデックスが参照さ
れる。最後に、ルックアップによって得られた物理アド
レスを用いて、アダプタカードがメモリー32に対して
データのブロックを書き込む。仮想アドレシングモード
においては、到着するパケットのアドレスは、ページテ
ーブルの内容に応じて、レジスタ31、ページテーブル
33、あるいはメモリー32に対する更新を指示する。
このようにして制御レジスタに対してなされた更新は、
コマンドパケットの発生を引き起こし、それは出力FI
FO35中に待ち行列をつくるだろう。その例は、シス
テムのダイナミックな再構成中に見られる。そうして、
それによって、一つのコマンドパケットの実行はネット
ワーク全体に送り出されるコマンドとデータの両方のパ
ケットの生成を必要とするだろう。メモリー32に対す
るネットワークの更新は、一般に、ネットワークパケッ
トの生成を引き起こさない。
【0071】ネットワークブロック書き込みオペレーシ
ョンを実行するとき、ホストメモリーバス37は、ブロ
ックオペレーションが実行されている間、延長されたピ
リオドの間ブロック化される。ブロック書き込みネット
ワーク上での実行中のプロセッサーにローカルアダプタ
メモリーの参照を許す一つの方法は、ネットワークブロ
ック書き込みでローカル読み込みと書き込みをインター
リーブすることである。ホストメモリーバスからのネッ
トワークアダプタメモリー書き込みを一時バッファに待
避することも有効だろう。
ョンを実行するとき、ホストメモリーバス37は、ブロ
ックオペレーションが実行されている間、延長されたピ
リオドの間ブロック化される。ブロック書き込みネット
ワーク上での実行中のプロセッサーにローカルアダプタ
メモリーの参照を許す一つの方法は、ネットワークブロ
ック書き込みでローカル読み込みと書き込みをインター
リーブすることである。ホストメモリーバスからのネッ
トワークアダプタメモリー書き込みを一時バッファに待
避することも有効だろう。
【0072】最後に、ページテーブルあるいはレジスタ
へのネットワーク書き込みの詳細を述べる。選択された
セットのコマンドレジスタへのプロセッサー書き込みに
応じて、コマンドメッセージが生成され、ネットワーク
に送り出される。ホストプロセッサーは、目標UIDを
指定することによって、コマンドに対する目標を選択す
る。UID値は、コマンドパケット中の最初のアーギュ
メントとして送り出される。コマンドパケットは、スタ
ートアップで計算されたスパニング・ツリーにしたがっ
てアダプタネットワークを通って、そのルート選択がな
される。コマンドメッセージが入力FIFO34から出
ていくときに、それはレジスタコピーあるいはレジスタ
書き込み機能の実行を引き起こす。この例では、コマン
ドは、register write( )である。
へのネットワーク書き込みの詳細を述べる。選択された
セットのコマンドレジスタへのプロセッサー書き込みに
応じて、コマンドメッセージが生成され、ネットワーク
に送り出される。ホストプロセッサーは、目標UIDを
指定することによって、コマンドに対する目標を選択す
る。UID値は、コマンドパケット中の最初のアーギュ
メントとして送り出される。コマンドパケットは、スタ
ートアップで計算されたスパニング・ツリーにしたがっ
てアダプタネットワークを通って、そのルート選択がな
される。コマンドメッセージが入力FIFO34から出
ていくときに、それはレジスタコピーあるいはレジスタ
書き込み機能の実行を引き起こす。この例では、コマン
ドは、register write( )である。
【0073】もし受信されたコマンドがこれとは違っ
て、regcpy( )であるならば、プロセシングに
おける唯一の違いは、register write
( )のプロセシングとはその副作用が違う、というこ
とである。register write( )では、
第一に、コマンドパケットがリンクハードウエアによっ
て受け取られる。第二に、コマンドパケットは入力FI
FO34中に待ち行列をつくる。そうして、FIFOを
通過した後、コマンドパケットはFIFOから出てゆ
き、そのフィールドが分析される。そこで、もしコマン
ドパケットUIDがレジスタ51中の値に一致すれば、
そのコマンドが実行される。コマンドの実行は、コマン
ドのアドレスのアーギュメントリスト中で指定されたレ
ジスタが指定値に更新される間、ローカルメモリーバス
の中断を強制する。レジスタへの書き込みは、そこで、
書き込まれた値、更新されたレジスタ、およびその他の
レジスタの内容に依存した副作用を引き起こす。ある場
合には、制御レジスタ更新の副作用は、出力FIFO3
5中にネットワークパケットを生成し待ち行列をつくる
ことである。
て、regcpy( )であるならば、プロセシングに
おける唯一の違いは、register write
( )のプロセシングとはその副作用が違う、というこ
とである。register write( )では、
第一に、コマンドパケットがリンクハードウエアによっ
て受け取られる。第二に、コマンドパケットは入力FI
FO34中に待ち行列をつくる。そうして、FIFOを
通過した後、コマンドパケットはFIFOから出てゆ
き、そのフィールドが分析される。そこで、もしコマン
ドパケットUIDがレジスタ51中の値に一致すれば、
そのコマンドが実行される。コマンドの実行は、コマン
ドのアドレスのアーギュメントリスト中で指定されたレ
ジスタが指定値に更新される間、ローカルメモリーバス
の中断を強制する。レジスタへの書き込みは、そこで、
書き込まれた値、更新されたレジスタ、およびその他の
レジスタの内容に依存した副作用を引き起こす。ある場
合には、制御レジスタ更新の副作用は、出力FIFO3
5中にネットワークパケットを生成し待ち行列をつくる
ことである。
【0074】データパケットのルート選択は、データパ
ケットのSVMアドレスを、たとえば、図6中のスイッ
チングネットワークポート70に含まれているプレロー
ドされたページテーブル73などによって、ルート選択
情報に翻訳することによってなされる。アドレス翻訳か
ら得られたルート選択情報は図7の67にnビットのベ
クトルとして示されているものであり、それは内部バス
77上の目標スイッチポートを指定するものである。ス
イッチングネットワーク、たとえばバス77上を流れる
データパケットは、目標ポートを見つけるのに、各ポー
トたとえば、70、79、あるいは80において、各1
ページ分のページテーブルのルックアップを必要とす
る。各スイッチポートのページテーブルの内容は読み込
み可能でかつ書き込み可能となっており、それによっ
て、種々のデータ伝送要求が受け付けられ、ネットワー
ク全体にわたるデータパケットの伝送が制御される。
ケットのSVMアドレスを、たとえば、図6中のスイッ
チングネットワークポート70に含まれているプレロー
ドされたページテーブル73などによって、ルート選択
情報に翻訳することによってなされる。アドレス翻訳か
ら得られたルート選択情報は図7の67にnビットのベ
クトルとして示されているものであり、それは内部バス
77上の目標スイッチポートを指定するものである。ス
イッチングネットワーク、たとえばバス77上を流れる
データパケットは、目標ポートを見つけるのに、各ポー
トたとえば、70、79、あるいは80において、各1
ページ分のページテーブルのルックアップを必要とす
る。各スイッチポートのページテーブルの内容は読み込
み可能でかつ書き込み可能となっており、それによっ
て、種々のデータ伝送要求が受け付けられ、ネットワー
ク全体にわたるデータパケットの伝送が制御される。
【0075】スイッチは2つのタイプのネットワークパ
ケット、すなわち、データパケットとコマンドパケット
の両方(いずれも、短いのと長いのとがある)を受け付
け、それらのパケットを、メモリーマッッピング情報や
UIDデバイスアドレスによって指令されるように、そ
のスイッチによってルート選択しなければならない。ネ
ットワークのトポロジーを決定しページテーブルをイニ
シャライズして、それからデータパケットルート選択を
行うためには、コマンドを持つことが必要であるという
ことから、コマンドパケットのルート選択のメカニズム
は、データパケットのルート選択のメカニズムとは違っ
ていなければならない。データパケットは、それらのパ
ケットアドレスならびにページテーブルにしまわれてい
る情報を用いて優先的にルートづけされる。
ケット、すなわち、データパケットとコマンドパケット
の両方(いずれも、短いのと長いのとがある)を受け付
け、それらのパケットを、メモリーマッッピング情報や
UIDデバイスアドレスによって指令されるように、そ
のスイッチによってルート選択しなければならない。ネ
ットワークのトポロジーを決定しページテーブルをイニ
シャライズして、それからデータパケットルート選択を
行うためには、コマンドを持つことが必要であるという
ことから、コマンドパケットのルート選択のメカニズム
は、データパケットのルート選択のメカニズムとは違っ
ていなければならない。データパケットは、それらのパ
ケットアドレスならびにページテーブルにしまわれてい
る情報を用いて優先的にルートづけされる。
【0076】短いコマンドパケットは、あらかじめ計算
されていた入力ならびに出力FIFOの両方をバイパス
するところの、ネットワークスパニングツリーによるコ
マンドパケットのフラッディング(充満)を専ら用いて
ルートづけされる。スパニングツリーの各サイトにはツ
リー中のそれらの位置を示すために、それぞれ1つのス
テータスレジスタビットをしまっている。短いコマンド
は、それが巡って行くネットワークの至る所のサイトで
コマンドを実行する。しかし、長いコマンドはネットワ
ークスパニングツリーに従って動き、ステータスならび
に制御レジスタにしまわれているUIDがパケットのU
IDフィールドにしまわれているデータとマッチするサ
イトでだけコマンドを実行する。上に述べたように、各
アダプタカードとスイッチポートは、それらのステータ
スレジスタ中にユニークアイデンティファイアーをしま
っている。どの長いコマンドも、ネットワークサイトの
UIDと比較するためのUIDアーギュメントを含んで
いる。すべての長いコマンドパケットは、アダプタの入
力ならびに出力FIFOとスイッチポートを通して処理
される。
されていた入力ならびに出力FIFOの両方をバイパス
するところの、ネットワークスパニングツリーによるコ
マンドパケットのフラッディング(充満)を専ら用いて
ルートづけされる。スパニングツリーの各サイトにはツ
リー中のそれらの位置を示すために、それぞれ1つのス
テータスレジスタビットをしまっている。短いコマンド
は、それが巡って行くネットワークの至る所のサイトで
コマンドを実行する。しかし、長いコマンドはネットワ
ークスパニングツリーに従って動き、ステータスならび
に制御レジスタにしまわれているUIDがパケットのU
IDフィールドにしまわれているデータとマッチするサ
イトでだけコマンドを実行する。上に述べたように、各
アダプタカードとスイッチポートは、それらのステータ
スレジスタ中にユニークアイデンティファイアーをしま
っている。どの長いコマンドも、ネットワークサイトの
UIDと比較するためのUIDアーギュメントを含んで
いる。すべての長いコマンドパケットは、アダプタの入
力ならびに出力FIFOとスイッチポートを通して処理
される。
【0077】スパニングツリーネットワークは、好まし
いコマンドのルート選択方法であって、それは、ネット
ワークを初期化したときと再構成したとき(たとえば、
新しいノードをネットワークに付け加えるなど)に計算
される。ネットワークスパニングツリーはアダプタカー
ドとスイッチポートに対応するサイトとネットワークポ
ート間のオペレーショナルリンクに対応するエッジとか
らなる。スパニングツリーの目的は、ハードウエアに対
して、ネットワークがコマンドパケットで充満されるこ
とは許すけれども、コマンドパケットがネットワーク中
のサイクルによって、いつまでも再送出され続けること
がないようにすることである。
いコマンドのルート選択方法であって、それは、ネット
ワークを初期化したときと再構成したとき(たとえば、
新しいノードをネットワークに付け加えるなど)に計算
される。ネットワークスパニングツリーはアダプタカー
ドとスイッチポートに対応するサイトとネットワークポ
ート間のオペレーショナルリンクに対応するエッジとか
らなる。スパニングツリーの目的は、ハードウエアに対
して、ネットワークがコマンドパケットで充満されるこ
とは許すけれども、コマンドパケットがネットワーク中
のサイクルによって、いつまでも再送出され続けること
がないようにすることである。
【0078】スパニングツリーが計算された後、各スイ
ッチポートは、それぞれの中の一つのレジスタで、それ
がツリーのインテリアーサイトであるかあるいはリーフ
サイトであるか、を記録する。もしポートがリーフサイ
トであるならば、コマンドパケットはそのポートのリン
クハードウエアから再送出されることはない。もしスイ
ッチポートがインテリアーサイトであるならば、コマン
ドパケットはそのポートのリンクハードウエアから再送
出される。ネットワークスパニングツリーを自動的に計
算しそれを維持することの利点は、以下の通りである。
すなわち、ネットワークのトポロジーに依存せず、ハー
ドウエアの障害から自動復帰できる、スイッチ間の多重
パスルート選択が可能であること、ならびに、ダイナミ
ックなネットワーク管理ができること、などである。
ッチポートは、それぞれの中の一つのレジスタで、それ
がツリーのインテリアーサイトであるかあるいはリーフ
サイトであるか、を記録する。もしポートがリーフサイ
トであるならば、コマンドパケットはそのポートのリン
クハードウエアから再送出されることはない。もしスイ
ッチポートがインテリアーサイトであるならば、コマン
ドパケットはそのポートのリンクハードウエアから再送
出される。ネットワークスパニングツリーを自動的に計
算しそれを維持することの利点は、以下の通りである。
すなわち、ネットワークのトポロジーに依存せず、ハー
ドウエアの障害から自動復帰できる、スイッチ間の多重
パスルート選択が可能であること、ならびに、ダイナミ
ックなネットワーク管理ができること、などである。
【0079】本発明の目的は、利用可能なメモリー管理
資源を用いて、ルーチンなプロセッサー間通信を簡単化
できる一般的なネットワークの枠組みを提供することで
ある。共有メモリーをユーザーノードの仮想メモリー空
間へマッピングすることにより、ネットワークハードウ
エアデバイスへの標準的なインターフェースが提供さ
れ、且つネットワークに依存しないアプリケーションの
開発が促進される。カーネルに要求されることは、ロー
レベルのネットワークイニシャリゼーション、トラップ
と既定値のハンドリング、ならびにプロセスの動作時の
コンテクストのローレベル操作などを含むネットワーク
通信の機器に依存する面を取扱うことである。ホストノ
ードによって提供されるメモリープロテクションの機能
は、ネットワークカーネルによって提供されるサービス
を通してSVMネットワークメモリーにまで拡張され
る。しかし、プロテクションの実行は、ホストのオペレ
ーティングシステムがメモリープロテクションを実行し
ない場合に限られる。
資源を用いて、ルーチンなプロセッサー間通信を簡単化
できる一般的なネットワークの枠組みを提供することで
ある。共有メモリーをユーザーノードの仮想メモリー空
間へマッピングすることにより、ネットワークハードウ
エアデバイスへの標準的なインターフェースが提供さ
れ、且つネットワークに依存しないアプリケーションの
開発が促進される。カーネルに要求されることは、ロー
レベルのネットワークイニシャリゼーション、トラップ
と既定値のハンドリング、ならびにプロセスの動作時の
コンテクストのローレベル操作などを含むネットワーク
通信の機器に依存する面を取扱うことである。ホストノ
ードによって提供されるメモリープロテクションの機能
は、ネットワークカーネルによって提供されるサービス
を通してSVMネットワークメモリーにまで拡張され
る。しかし、プロテクションの実行は、ホストのオペレ
ーティングシステムがメモリープロテクションを実行し
ない場合に限られる。
【0080】標準的な仮想メモリーの管理サービスは、
もし必要とあれば、ネットワークの接続制御が自動的に
達成されるよう、以下に詳細を述べるように強化するこ
とができる。ページ障害ハンドラーならびにページテー
ブルは、SVMネットワーク仮想アドレスにマップされ
た仮想メモリーページを確立し確認するように修正され
る。これらの修正の効果は、ネットワークノード上で走
っているプロセスが随意にそれらの仮想メモリー空間の
大きな部分を共有できることである。したがって、プロ
グラマーに対して要求される唯一のつとめは、ノードの
仮想メモリーアドレス空間中に共有メモリーを割当て、
ネットワークパケットルート選択のために目標のSVM
仮想アドレスを提供する、と言うことである。新しいオ
ペレーティングシステムのコールやライブラリーの機能
がこのコンテクストにおいて用いられるために開発され
てきた。
もし必要とあれば、ネットワークの接続制御が自動的に
達成されるよう、以下に詳細を述べるように強化するこ
とができる。ページ障害ハンドラーならびにページテー
ブルは、SVMネットワーク仮想アドレスにマップされ
た仮想メモリーページを確立し確認するように修正され
る。これらの修正の効果は、ネットワークノード上で走
っているプロセスが随意にそれらの仮想メモリー空間の
大きな部分を共有できることである。したがって、プロ
グラマーに対して要求される唯一のつとめは、ノードの
仮想メモリーアドレス空間中に共有メモリーを割当て、
ネットワークパケットルート選択のために目標のSVM
仮想アドレスを提供する、と言うことである。新しいオ
ペレーティングシステムのコールやライブラリーの機能
がこのコンテクストにおいて用いられるために開発され
てきた。
【0081】ユーザーレベルのネットワークコマンドは
すべて4つの新しいシステムコール、すなわち、vsm
get( ),vsmat( ),vsmdt( )、
ならびにvsmctl( )にマップされる。これらの
新しいシステムコールは、機能的には、標準的なプロセ
ッサー間通信共有メモリーシステムコール、shmge
t( ),shmat( ),shmdt( )、なら
びにshmctl()に対応する。int vsmge
t(vsmaddr, size, flags);i
nt size, flag;struct vsm
vsmaddr;などのコールは、ネットワークを通し
てマップされたSVMアドレスの一つの領域のアイデン
ティファイアーを、ユーザープロセスに返す。もし要求
されたSVM領域が現在マップされているものでない場
合には、システムコールはそのマッピングを確立しよう
とする。
すべて4つの新しいシステムコール、すなわち、vsm
get( ),vsmat( ),vsmdt( )、
ならびにvsmctl( )にマップされる。これらの
新しいシステムコールは、機能的には、標準的なプロセ
ッサー間通信共有メモリーシステムコール、shmge
t( ),shmat( ),shmdt( )、なら
びにshmctl()に対応する。int vsmge
t(vsmaddr, size, flags);i
nt size, flag;struct vsm
vsmaddr;などのコールは、ネットワークを通し
てマップされたSVMアドレスの一つの領域のアイデン
ティファイアーを、ユーザープロセスに返す。もし要求
されたSVM領域が現在マップされているものでない場
合には、システムコールはそのマッピングを確立しよう
とする。
【0082】int vsmat(id, addr,
flags);int id, flags;cha
r *addr;などのコールは、SVMアドレスの一
つの領域をユーザープロセスの仮想メモリーアドレス空
間にロジカルに付加する。void vsmdt(ad
dr);char *addr;などのコールは、ユー
ザープロセスの仮想メモリーアドレス空間からSVMア
ドレスの1つの領域を取除く。
flags);int id, flags;cha
r *addr;などのコールは、SVMアドレスの一
つの領域をユーザープロセスの仮想メモリーアドレス空
間にロジカルに付加する。void vsmdt(ad
dr);char *addr;などのコールは、ユー
ザープロセスの仮想メモリーアドレス空間からSVMア
ドレスの1つの領域を取除く。
【0083】最後に、void vsmctl(id,
cmd, vsmbuf);int id, cm
d;struct vsmtsb vsmbuf;など
はSVMマッピングパラメータを操作する。その他のす
べてのネットワークオペレーションは、フロー制御、エ
ラー制御、接続の設定、セキュリテイの維持、などを含
み、データ転送はプログラムメモリーの参照実行の副作
用として自動的に生じる。
cmd, vsmbuf);int id, cm
d;struct vsmtsb vsmbuf;など
はSVMマッピングパラメータを操作する。その他のす
べてのネットワークオペレーションは、フロー制御、エ
ラー制御、接続の設定、セキュリテイの維持、などを含
み、データ転送はプログラムメモリーの参照実行の副作
用として自動的に生じる。
【0084】SVMネットワークの機能は、ネットワー
クカーネルとして機能するプロセスのセットによって管
理され、そのカーネルはユーザープロセスから保護する
ことのできるアドレス空間内で走っている。ネットワー
ク中の各サイトはそれのために働く1つのローカルSV
Mカーネルを持っている。SVMネットワークカーネル
は次の基本的な機能を提供する。すなわち、ネットワー
クのイニシャリゼーションと管理、接続の生成、セキュ
リティー、ならびにネットワークプロセスに対するルー
ト選択と同期などである。これらのサービスに対するア
クセスは一組のリモートプロシジャーコールあるいはシ
ステムコールを通して供給される。SVMシステムコー
ルは、ネットワークされたノードあるいはそれらのノー
ド上を走っているプロセスが、これらのサービスをしな
ければならないインターフェースに対してだけ行われ
る。
クカーネルとして機能するプロセスのセットによって管
理され、そのカーネルはユーザープロセスから保護する
ことのできるアドレス空間内で走っている。ネットワー
ク中の各サイトはそれのために働く1つのローカルSV
Mカーネルを持っている。SVMネットワークカーネル
は次の基本的な機能を提供する。すなわち、ネットワー
クのイニシャリゼーションと管理、接続の生成、セキュ
リティー、ならびにネットワークプロセスに対するルー
ト選択と同期などである。これらのサービスに対するア
クセスは一組のリモートプロシジャーコールあるいはシ
ステムコールを通して供給される。SVMシステムコー
ルは、ネットワークされたノードあるいはそれらのノー
ド上を走っているプロセスが、これらのサービスをしな
ければならないインターフェースに対してだけ行われ
る。
【0085】SVMのネットワークのイニシャリゼーシ
ョンプロセスは、SVMカーネルの1つをネットワーク
に対するスーパーバイザーノードとして指定することで
ある。スーパーバイザーはネットワーク上のプロセス間
の共有メモリープロテクションを強化することを可能と
するSVMアドレス空間のマップを維持する。そのスー
パーバイザーはまた新しいネットワーク接続に対して利
用可能なSVMアドレスの「空きリスト」を持ってい
る。そのスーパーバイザーは、ネットワークスイッチ間
のトラフィックをフィルターしたりノードからの同期要
求を受け付けたりするところの、スイッチングネットワ
ークルート付けテーブルをモニターし維持する。
ョンプロセスは、SVMカーネルの1つをネットワーク
に対するスーパーバイザーノードとして指定することで
ある。スーパーバイザーはネットワーク上のプロセス間
の共有メモリープロテクションを強化することを可能と
するSVMアドレス空間のマップを維持する。そのスー
パーバイザーはまた新しいネットワーク接続に対して利
用可能なSVMアドレスの「空きリスト」を持ってい
る。そのスーパーバイザーは、ネットワークスイッチ間
のトラフィックをフィルターしたりノードからの同期要
求を受け付けたりするところの、スイッチングネットワ
ークルート付けテーブルをモニターし維持する。
【0086】SVM仮想メモリー管理システムのイニシ
ャリゼーションとオペレーションの一例は次のようなも
のである。すなわち、今、SVMNetアダプタに指定
された物理メモリーロケーションがキャッシュ機能を持
たず、また、ページテーブルの内容が仮想メモリーの1
ページがSVMNetの物理メモリーか標準的なDRA
Mにマップされたかどうかを記録するものと仮定する
と、ページ障害ハンドラーはこの付加的なページテーブ
ル情報を使ってSVMネットワークからのページを再利
用することになる。基本的なSVMメモリー管理オペレ
ーションには、割当て、フリー、付加、削除がある。仮
想メモリーページをネットワークにマップすることは、
アダプタページテーブルを更新することとマップされた
SVMページの更新コピーを得ることである。
ャリゼーションとオペレーションの一例は次のようなも
のである。すなわち、今、SVMNetアダプタに指定
された物理メモリーロケーションがキャッシュ機能を持
たず、また、ページテーブルの内容が仮想メモリーの1
ページがSVMNetの物理メモリーか標準的なDRA
Mにマップされたかどうかを記録するものと仮定する
と、ページ障害ハンドラーはこの付加的なページテーブ
ル情報を使ってSVMネットワークからのページを再利
用することになる。基本的なSVMメモリー管理オペレ
ーションには、割当て、フリー、付加、削除がある。仮
想メモリーページをネットワークにマップすることは、
アダプタページテーブルを更新することとマップされた
SVMページの更新コピーを得ることである。
【0087】プロセッサーPが仮想メモリーページvm
kを共有仮想メモリーページsvmiに割当てると、以
下のステップが起こる。 − カーネルがフリーのアダプタ物理メモリーページp
mlを得る。 − カーネルがノードPTの内容(vmk−to−pm
l,svmkマッピングインジケーター)を生成する。 − スーパーバイザーが、プロテクションをチェックし
た後、svmiを空きリストから割当てる。 − カーネルがアダプタPTの内容pml−to−sv
miを生成する。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する。 − スーパーバイザーがvmkについてのsvmiペー
ジ内容を得る。 − カーネルが新しいノードPTをマークし、アダプタ
PTの内容を有効にする。
kを共有仮想メモリーページsvmiに割当てると、以
下のステップが起こる。 − カーネルがフリーのアダプタ物理メモリーページp
mlを得る。 − カーネルがノードPTの内容(vmk−to−pm
l,svmkマッピングインジケーター)を生成する。 − スーパーバイザーが、プロテクションをチェックし
た後、svmiを空きリストから割当てる。 − カーネルがアダプタPTの内容pml−to−sv
miを生成する。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する。 − スーパーバイザーがvmkについてのsvmiペー
ジ内容を得る。 − カーネルが新しいノードPTをマークし、アダプタ
PTの内容を有効にする。
【0088】プロセッサーPjが仮想メモリーページv
mkを共有仮想メモリーページsvmiからフリーにす
ると、以下のステップが起こる。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する。 − スーパーバイザーがSVMの空きリストを更新す
る。 − カーネルがアダプタPTの内容pml−to−sv
miを無効にし削除する。 − カーネルがノードPTの内容vmk−to−pml
を無効にし削除する。 − カーネルがpmlをアダプタの空きメモリーリスト
に返す。
mkを共有仮想メモリーページsvmiからフリーにす
ると、以下のステップが起こる。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する。 − スーパーバイザーがSVMの空きリストを更新す
る。 − カーネルがアダプタPTの内容pml−to−sv
miを無効にし削除する。 − カーネルがノードPTの内容vmk−to−pml
を無効にし削除する。 − カーネルがpmlをアダプタの空きメモリーリスト
に返す。
【0089】プロセッサーPjが仮想メモリーページv
mkを共有仮想メモリーページsvmiに付加すると、
以下のステップが起こる。 − ノードPTの内容がvmk−to−svmiをマッ
プすることを、カーネルが確認する。 − スーパーバイザーが、svmiに対するプロテクシ
ョンをチェックする。 − フリーなアダプタ物理ページpmlがあれば選択す
る。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する。 − カーネルがvmkに対する古いアダプタPTの内容
を見つけ、vmk−to−pmlに対する更新をする。 − スーパーバイザーがvmkに対するページの内容を
得る。 − カーネルがノードのページテーブルをマークし、ア
ダプタページテーブルの内容を有効にする。
mkを共有仮想メモリーページsvmiに付加すると、
以下のステップが起こる。 − ノードPTの内容がvmk−to−svmiをマッ
プすることを、カーネルが確認する。 − スーパーバイザーが、svmiに対するプロテクシ
ョンをチェックする。 − フリーなアダプタ物理ページpmlがあれば選択す
る。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する。 − カーネルがvmkに対する古いアダプタPTの内容
を見つけ、vmk−to−pmlに対する更新をする。 − スーパーバイザーがvmkに対するページの内容を
得る。 − カーネルがノードのページテーブルをマークし、ア
ダプタページテーブルの内容を有効にする。
【0090】プロセッサーPjが仮想メモリーページv
mkを共有仮想メモリーページsvmiから削除する
と、以下のステップが起こる。 − カーネルがノードPT中の内容vmk−to−sv
miを無効であるとマークする。 − カーネルがアダプタPT中の内容pml−to−s
vmiを無効であるとマークする。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する。 − カーネルがローカルアダプタ空きメモリーリストに
pmlを付加する。
mkを共有仮想メモリーページsvmiから削除する
と、以下のステップが起こる。 − カーネルがノードPT中の内容vmk−to−sv
miを無効であるとマークする。 − カーネルがアダプタPT中の内容pml−to−s
vmiを無効であるとマークする。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する。 − カーネルがローカルアダプタ空きメモリーリストに
pmlを付加する。
【0091】当該技術分野に精通したプログラマーなら
ば、本発明のアダプタを含む現存のノードに対して容易
に必要な修正を行うことができるだろう。上に述べてき
たように、最も好ましくは、本発明によるネットワーク
は、アダプタを常駐で持つ各種のノードを含むのみなら
ず、少なくとも、各ネットワークノードに付随する少な
くとも1つのスイッチポートを持ち、さらに、上に説明
してきたように、スイッチバスに接続されたスイッチ配
列をも含むべきである。本発明は好ましい実施例につい
て示され、述べられてきたが、当該技術分野に精通した
人にとって明白な種々の変更や修正は特許請求の範囲で
述べられる本発明の精神と目的の範囲の中にあるものと
見なされる。
ば、本発明のアダプタを含む現存のノードに対して容易
に必要な修正を行うことができるだろう。上に述べてき
たように、最も好ましくは、本発明によるネットワーク
は、アダプタを常駐で持つ各種のノードを含むのみなら
ず、少なくとも、各ネットワークノードに付随する少な
くとも1つのスイッチポートを持ち、さらに、上に説明
してきたように、スイッチバスに接続されたスイッチ配
列をも含むべきである。本発明は好ましい実施例につい
て示され、述べられてきたが、当該技術分野に精通した
人にとって明白な種々の変更や修正は特許請求の範囲で
述べられる本発明の精神と目的の範囲の中にあるものと
見なされる。
【図1】多数のプロセッサーあるいはノードを相互に接
続するネットワークを模式的に示す図。
続するネットワークを模式的に示す図。
【図2】地理的に広く分布しているネットワーク中の多
数のノードにメモリーマップされる仮想共有メモリー空
間を表わす模式図。
数のノードにメモリーマップされる仮想共有メモリー空
間を表わす模式図。
【図3】本発明によるプロセッサーに接続されたアダプ
タカードの説明図。
タカードの説明図。
【図4】本発明のアダプタカードならびにその中におけ
る物理的ロケーションをより詳細に説明する図。
る物理的ロケーションをより詳細に説明する図。
【図5】本発明のページテーブルにたくわえられた情報
のフォーマットを示す図。
のフォーマットを示す図。
【図6】アダプタカードの相互接続に対するスイッチと
バス配列を説明する図。
バス配列を説明する図。
【図7】本発明によるスイッチポートについてのページ
テーブルの組織を示す図。
テーブルの組織を示す図。
10、11 ノード
12、13 プロセッサー
14、15 メモリー
16、17 ネットワークアダプタ
30 アダプタカード
31 制御とステータスレジスタ
32 データロケーションメモリー
33 ページ翻訳テーブルメモリー
34 入力FIFO
35 出力FIFO
36 リンクハードウエア
37 メモリーバス
40 プロセッサー
70、79、80 スイッチポート
71 ステータスならびに制御レジスタのセット
72 スイッチ
73 ページテーブル
74 入力ポート
75 出力ポート
76 リンクハードウエア
77 内部バス
78 インターフェース
─────────────────────────────────────────────────────
フロントページの続き
(51)Int.Cl.7 識別記号 FI テーマコート゛(参考)
G06F 12/08 551 G06F 12/08 551C
15/167 15/167 B
Claims (2)
- 【請求項1】 第1のノードが第1のメモリーロケーシ
ョンを更新する方法であって、 それぞれの前記第1のノードは少なくとも1つの第1の
プロセッサーと、第1のオペレーティングシステムと、
第1の仮想メモリーロケーションアドレスを有する前記
第1のメモリーロケーションとを持ち、 前記第1のノードは、ネットワークを通じて複数の第2
のノードに接続され、 それぞれの前記第2のノードは少なくとも1つの第2の
プロセッサーと、第2のオペレーティングシステムと、
第2の仮想メモリーロケーションアドレスを有する第2
のメモリーロケーションとを持ち、 前記第1のメモリーロケーション及び前記複数の第2の
メモリーロケーションは共有メモリー値を有し、 それぞれの前記第1のノードは、前記第1のノードにお
ける前記第1のメモリーロケーションの仮想アドレス及
び物理アドレスと前記複数の第2のノードにおける前記
第2のメモリーロケーションの仮想アドレス及び物理ア
ドレスとを有する少なくとも1つのページテーブルを持
つ、 下記のステップを有する方法: (a)前記第1のノードにおいて、更新値と前記第1の
仮想メモリーロケーションアドレスとを含む前記ネット
ワークからのパケットを受け取るステップ、 (b)前記少なくとも1つのページテーブルにアクセス
して、前記第1の仮想メモリーロケーションアドレスを
前記第1のメモリーロケーションに対応する物理メモリ
ーアドレスに翻訳するステップ、 (c)前記物理メモリーアドレスで、前記第1のメモリ
ーロケーションを前記更新値で更新するステップ、 ここで、前記受け取り及び前記更新は、前記第1のオペ
レーティングシステムの動作から独立して自動的に生じ
る。 - 【請求項2】 第1のメモリーロケーションを更新す
る、第1のノードにおける装置であって、 それぞれの前記第1のノードは少なくとも1つの第1の
プロセッサーと、第1のオペレーティングシステムと、
第1の仮想メモリーロケーションアドレスを有する第1
のメモリーロケーションとを持ち、 前記第1のノードは、ネットワークを通じて複数の第2
のノードに接続され、 それぞれの前記第2のノードは少なくとも1つの第2の
プロセッサーと、第2のオペレーティングシステムと、
第2の仮想メモリーロケーションアドレスを有する第2
のメモリーロケーションとを持ち、 前記第1のメモリーロケーション及び前記複数の第2の
メモリーロケーションは共有メモリー値を有し、 それぞれの前記第1のノードは、前記第1のノードにお
ける前記第1のメモリーロケーションの仮想アドレス及
び物理アドレスと前記複数の第2のノードにおける前記
第2のメモリーロケーションの仮想アドレス及び物理ア
ドレスとを有する少なくとも1つのページテーブルを持
つ、 下記を有する装置: (a)更新値と前記第1の仮想メモリーロケーションア
ドレスとを含む前記ネットワークからのパケットを受け
取る、前記第1のノードにおけるリンクハードウエア手
段、 (b)前記少なくとも1つのページテーブルにアクセス
して、前記第1の仮想メモリーロケーションアドレスを
前記第1のメモリーロケーションに対応する物理メモリ
ーアドレスに翻訳する手段、 (c)前記物理メモリーアドレスで、前記第1のメモリ
ーロケーションを前記更新値で更新する手段、 ここで、前記受け取り手段及び前記更新手段は、前記第
1のオペレーティングシステムの動作から独立して自動
的に動作する。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US85908792A | 1992-03-27 | 1992-03-27 | |
| US07/859,087 | 1992-03-27 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5092279A Division JPH0619785A (ja) | 1992-03-27 | 1993-03-25 | 分散共有仮想メモリーとその構成方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2003178039A true JP2003178039A (ja) | 2003-06-27 |
Family
ID=25329991
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5092279A Pending JPH0619785A (ja) | 1992-03-27 | 1993-03-25 | 分散共有仮想メモリーとその構成方法 |
| JP2002280316A Pending JP2003178039A (ja) | 1992-03-27 | 2002-09-26 | 分散共有仮想メモリーとその構成方法 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5092279A Pending JPH0619785A (ja) | 1992-03-27 | 1993-03-25 | 分散共有仮想メモリーとその構成方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US5522045A (ja) |
| JP (2) | JPH0619785A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005227922A (ja) * | 2004-02-12 | 2005-08-25 | Yokogawa Electric Corp | プロセス間情報共有システム |
| JP2010055440A (ja) * | 2008-08-29 | 2010-03-11 | Nec Electronics Corp | 分散共有メモリ型マルチプロセッサ及びデータ処理方法 |
| JP2011186554A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
| US9280466B2 (en) | 2008-09-09 | 2016-03-08 | Kabushiki Kaisha Toshiba | Information processing device including memory management device managing access from processor to memory and memory management method |
| US9910789B2 (en) | 2012-11-12 | 2018-03-06 | International Business Machines Corporation | Electrical and optical memory access |
Families Citing this family (169)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2974526B2 (ja) * | 1992-12-18 | 1999-11-10 | 富士通株式会社 | データ転送処理方法及びデータ転送処理装置 |
| US5822784A (en) * | 1993-03-19 | 1998-10-13 | Intel Corporation | Mechanism supporting execute in place read only memory applications located on removable computer cards |
| US5617537A (en) * | 1993-10-05 | 1997-04-01 | Nippon Telegraph And Telephone Corporation | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
| JP3647055B2 (ja) * | 1993-11-17 | 2005-05-11 | キヤノン株式会社 | 情報処理システム、管理方法および管理装置 |
| US5717950A (en) | 1994-01-11 | 1998-02-10 | Hitachi, Ltd. | Input/output device information management system for multi-computer system |
| US5963975A (en) * | 1994-04-19 | 1999-10-05 | Lsi Logic Corporation | Single chip integrated circuit distributed shared memory (DSM) and communications nodes |
| US6243762B1 (en) * | 1994-08-08 | 2001-06-05 | Mercury Computer Systems, Inc. | Methods and apparatus for data access and program generation on a multiprocessing computer |
| JP3604176B2 (ja) * | 1994-09-14 | 2004-12-22 | 株式会社東芝 | 仮想空間管理方法及び分散処理システム |
| US5828903A (en) * | 1994-09-30 | 1998-10-27 | Intel Corporation | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer |
| US5895499A (en) | 1995-07-03 | 1999-04-20 | Sun Microsystems, Inc. | Cross-domain data transfer using deferred page remapping |
| JP3512910B2 (ja) * | 1995-07-06 | 2004-03-31 | 株式会社東芝 | 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法 |
| JP2770797B2 (ja) * | 1995-07-07 | 1998-07-02 | 日本電気株式会社 | マルチプロセッサシステムのページ記述子更新制御方式 |
| US5781226A (en) * | 1995-11-13 | 1998-07-14 | General Instrument Corporation Of Delaware | Network virtual memory for a cable television settop terminal |
| US5729724A (en) * | 1995-12-20 | 1998-03-17 | Intel Corporation | Adaptive 128-bit floating point load and store operations for quadruple precision compatibility |
| US5745681A (en) * | 1996-01-11 | 1998-04-28 | Sun Microsystems, Inc. | Stateless shopping cart for the web |
| JP3984308B2 (ja) * | 1996-02-21 | 2007-10-03 | イビデン株式会社 | 内燃機関の消音器 |
| US6085238A (en) * | 1996-04-23 | 2000-07-04 | Matsushita Electric Works, Ltd. | Virtual LAN system |
| JPH09311839A (ja) * | 1996-05-21 | 1997-12-02 | Hitachi Ltd | データ共用方式 |
| US5897664A (en) * | 1996-07-01 | 1999-04-27 | Sun Microsystems, Inc. | Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies |
| US5940860A (en) * | 1996-07-01 | 1999-08-17 | Sun Microsystems, Inc. | Methods and apparatus for substantially memory-less coherence transformer for connecting computer node coherence domains |
| US6073224A (en) * | 1996-07-01 | 2000-06-06 | Sun Microsystems, Inc. | Network interface circuit with replacement circuitry and method for segregating memory in an address translation unit with locked and unlocked regions |
| US5991854A (en) * | 1996-07-01 | 1999-11-23 | Sun Microsystems, Inc. | Circuit and method for address translation, using update and flush control circuits |
| US5860109A (en) * | 1996-07-01 | 1999-01-12 | Sun Microsystems, Inc. | Methods and apparatus for a coherence transformer for connecting computer system coherence domains |
| US5829034A (en) * | 1996-07-01 | 1998-10-27 | Sun Microsystems, Inc. | Method and apparatus for a coherence transformer with limited memory for connecting computer system coherence domains |
| US6044080A (en) * | 1996-11-19 | 2000-03-28 | Pluris, Inc. | Scalable parallel packet router |
| US7136903B1 (en) | 1996-11-22 | 2006-11-14 | Mangosoft Intellectual Property, Inc. | Internet-based shared file service with native PC client access and semantics and distributed access control |
| US5987506A (en) * | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
| US20060129627A1 (en) * | 1996-11-22 | 2006-06-15 | Mangosoft Corp. | Internet-based shared file service with native PC client access and semantics and distributed version control |
| US5909540A (en) * | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
| US6647393B1 (en) * | 1996-11-22 | 2003-11-11 | Mangosoft Corporation | Dynamic directory service |
| US6148377A (en) * | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
| US6094712A (en) * | 1996-12-04 | 2000-07-25 | Giganet, Inc. | Computer network interface for direct mapping of data transferred between applications on different host computers from virtual addresses to physical memory addresses application data |
| US6222840B1 (en) * | 1996-12-30 | 2001-04-24 | Compaq Computer Corporation | Method and system for performing concurrent read and write cycles in network switch |
| US6381657B2 (en) * | 1997-01-31 | 2002-04-30 | Hewlett-Packard Company | Sharing list for multi-node DMA write operations |
| US5983270A (en) * | 1997-03-11 | 1999-11-09 | Sequel Technology Corporation | Method and apparatus for managing internetwork and intranetwork activity |
| JPH1115773A (ja) * | 1997-06-24 | 1999-01-22 | Matsushita Electron Corp | 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法 |
| US6092155A (en) | 1997-07-10 | 2000-07-18 | International Business Machines Corporation | Cache coherent network adapter for scalable shared memory processing systems |
| US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
| US6785888B1 (en) * | 1997-08-29 | 2004-08-31 | International Business Machines Corporation | Memory allocator for a multiprocessor computer system |
| US6295584B1 (en) * | 1997-08-29 | 2001-09-25 | International Business Machines Corporation | Multiprocessor computer system with memory map translation |
| US6115790A (en) * | 1997-08-29 | 2000-09-05 | Silicon Graphics, Inc. | System, method and computer program product for organizing page caches |
| US6167437A (en) * | 1997-09-02 | 2000-12-26 | Silicon Graphics, Inc. | Method, system, and computer program product for page replication in a non-uniform memory access system |
| US6148379A (en) * | 1997-09-19 | 2000-11-14 | Silicon Graphics, Inc. | System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system |
| US6249802B1 (en) * | 1997-09-19 | 2001-06-19 | Silicon Graphics, Inc. | Method, system, and computer program product for allocating physical memory in a distributed shared memory network |
| US6289424B1 (en) | 1997-09-19 | 2001-09-11 | Silicon Graphics, Inc. | Method, system and computer program product for managing memory in a non-uniform memory access system |
| US5978858A (en) * | 1997-09-30 | 1999-11-02 | Compaq Computer Corporation | Packet protocol and distributed burst engine |
| US5968158A (en) * | 1997-10-06 | 1999-10-19 | International Business Machines Corporation | Apparatus including a host processor and communications adapters interconnected with a bus, with improved transfer of interrupts between the adapters and host processor |
| JP2001507914A (ja) * | 1997-11-04 | 2001-06-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 異種の伝送特性を使用する通信ネットワーク |
| FR2770665B1 (fr) * | 1997-11-06 | 2002-12-20 | Alsthom Cge Alkatel | Dispositif d'echange entre unites de traitement d'informations a processeurs interconnectes par un bus commun |
| US6026475A (en) * | 1997-11-26 | 2000-02-15 | Digital Equipment Corporation | Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space |
| US6209064B1 (en) * | 1998-01-07 | 2001-03-27 | Fujitsu Limited | Cache coherence unit with integrated message passing and memory protection for a distributed, shared memory multiprocessor system |
| US6185655B1 (en) * | 1998-01-22 | 2001-02-06 | Bull, S.A. | Computer system with distributed data storing |
| US6295598B1 (en) | 1998-06-30 | 2001-09-25 | Src Computers, Inc. | Split directory-based cache coherency technique for a multi-processor computer system |
| US6182197B1 (en) | 1998-07-10 | 2001-01-30 | International Business Machines Corporation | Real-time shared disk system for computer clusters |
| US6263414B1 (en) * | 1998-07-17 | 2001-07-17 | Technion Research And Development Foundation, Ltd. | Memory for accomplishing lowered granularity of a distributed shared memory |
| US6516342B1 (en) * | 1998-07-17 | 2003-02-04 | International Business Machines Corporation | Method and apparatus for extending memory using a memory server |
| JP2000067009A (ja) * | 1998-08-20 | 2000-03-03 | Hitachi Ltd | 主記憶共有型マルチプロセッサ |
| US6591355B2 (en) | 1998-09-28 | 2003-07-08 | Technion Research And Development Foundation Ltd. | Distributed shared memory system with variable granularity |
| GB9827183D0 (en) * | 1998-12-11 | 1999-02-03 | Mitel Semiconductor Ltd | Integration of externally developed logic in a memory mapped system |
| JP3376956B2 (ja) * | 1999-05-14 | 2003-02-17 | 日本電気株式会社 | プロセッサ間通信装置 |
| US6792330B1 (en) * | 1999-07-06 | 2004-09-14 | Mitsubishi Denki Kabushiki Kaisha | Drive control system |
| NO312926B1 (no) * | 1999-07-20 | 2002-07-15 | Ericsson Telefon Ab L M | Kommunikasjon over multimaster buss |
| US6529945B1 (en) | 1999-07-26 | 2003-03-04 | International Business Machines Corporation | Data buffer management between two different systems |
| US6523066B1 (en) * | 1999-08-23 | 2003-02-18 | Harris-Exigent, Inc. | Dynamic distributed memory locking in a computer network |
| JP3780776B2 (ja) * | 1999-10-15 | 2006-05-31 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
| US6766358B1 (en) | 1999-10-25 | 2004-07-20 | Silicon Graphics, Inc. | Exchanging messages between computer systems communicatively coupled in a computer system network |
| US6643843B1 (en) * | 1999-11-23 | 2003-11-04 | Ellenby Technologies Inc. | Methods and apparatus for optical communication update of program memory in embedded systems |
| US6792513B2 (en) * | 1999-12-29 | 2004-09-14 | The Johns Hopkins University | System, method, and computer program product for high speed backplane messaging |
| US6826613B1 (en) * | 2000-03-15 | 2004-11-30 | 3Com Corporation | Virtually addressing storage devices through a switch |
| JP3571616B2 (ja) * | 2000-05-23 | 2004-09-29 | エヌ・ティ・ティ・コムウェア株式会社 | データの共有方法、端末装置および記録媒体 |
| US7720928B2 (en) * | 2000-06-02 | 2010-05-18 | Hewlett-Packard Development Company, L.P. | Centralized fine-grained enhancements for distributed table driven I/O mapping |
| US20020103907A1 (en) * | 2000-06-20 | 2002-08-01 | Erik Petersen | System and method of storing data to a recording medium |
| US6917612B2 (en) * | 2000-09-01 | 2005-07-12 | Telefonaktiebolaged L M Ericsson | System and method for address resolution in internet protocol (IP)-based networks |
| US6766472B2 (en) * | 2000-09-22 | 2004-07-20 | Microsoft Corporation | Systems and methods for replicating virtual memory on a host computer and debugging using the replicated memory |
| US7035911B2 (en) | 2001-01-12 | 2006-04-25 | Epicrealm, Licensing Llc | Method and system for community data caching |
| US7188145B2 (en) * | 2001-01-12 | 2007-03-06 | Epicrealm Licensing Llc | Method and system for dynamic distributed data caching |
| US7080135B1 (en) | 2001-01-24 | 2006-07-18 | Advanced Micro Devices, Inc. | Systems and methods for accessing an address table of a network device |
| KR100713514B1 (ko) * | 2001-03-06 | 2007-05-02 | 삼성전자주식회사 | 프로세서간 통신을 사용하는 시스템에서 유토피아 매퍼를이용한 프로세서간 통신장치 및 방법 |
| US7398376B2 (en) * | 2001-03-23 | 2008-07-08 | International Business Machines Corporation | Instructions for ordering execution in pipelined processes |
| US8150997B2 (en) * | 2001-04-24 | 2012-04-03 | International Business Machines Corporation | Technique for efficient data transfer within a virtual network |
| US20020161453A1 (en) * | 2001-04-25 | 2002-10-31 | Peltier Michael G. | Collective memory network for parallel processing and method therefor |
| JP3800037B2 (ja) | 2001-06-06 | 2006-07-19 | 日本電気株式会社 | プロセッサ間通信システム及びそれに用いるプロセッサ間通信方法 |
| JP3594082B2 (ja) * | 2001-08-07 | 2004-11-24 | 日本電気株式会社 | 仮想アドレス間データ転送方式 |
| EP1310869A1 (en) * | 2001-11-12 | 2003-05-14 | Hewlett-Packard Company | Data processing system and method |
| US20030093626A1 (en) * | 2001-11-14 | 2003-05-15 | Fister James D.M. | Memory caching scheme in a distributed-memory network |
| US7099318B2 (en) * | 2001-12-28 | 2006-08-29 | Intel Corporation | Communicating message request transaction types between agents in a computer system using multiple message groups |
| US7191375B2 (en) * | 2001-12-28 | 2007-03-13 | Intel Corporation | Method and apparatus for signaling an error condition to an agent not expecting a completion |
| US7184399B2 (en) * | 2001-12-28 | 2007-02-27 | Intel Corporation | Method for handling completion packets with a non-successful completion status |
| US7581026B2 (en) * | 2001-12-28 | 2009-08-25 | Intel Corporation | Communicating transaction types between agents in a computer system using packet headers including format and type fields |
| US7020753B2 (en) * | 2002-01-09 | 2006-03-28 | Sun Microsystems, Inc. | Inter-domain data transfer |
| US6795902B2 (en) * | 2002-01-09 | 2004-09-21 | Sun Microsystems, Inc. | Inter-domain data transfer |
| JP2005519391A (ja) * | 2002-02-28 | 2005-06-30 | シリコン、グラフィクス、インコーポレイテッド | 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム |
| US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
| US7269709B2 (en) * | 2002-05-15 | 2007-09-11 | Broadcom Corporation | Memory controller configurable to allow bandwidth/latency tradeoff |
| US7177322B2 (en) * | 2002-05-28 | 2007-02-13 | International Business Machines Corporation | Technique for controlling selection of a peek adapter or a read adapter from multiple adapters connected to a high speed switch |
| US7161954B2 (en) * | 2002-05-28 | 2007-01-09 | International Business Machines Corporation | Technique for controlling selection of a write adapter from multiple adapters connected to a high speed switch |
| US7174394B1 (en) * | 2002-06-14 | 2007-02-06 | Cisco Technology, Inc. | Multi processor enqueue packet circuit |
| US20040024729A1 (en) * | 2002-07-30 | 2004-02-05 | Worley John S. | Method and system for storing sparse data in memory and accessing stored sparse data |
| US6874076B2 (en) * | 2002-09-30 | 2005-03-29 | International Business Machines Corporation | Method, system, and computer program product for migrating data from one real page to another |
| US7181744B2 (en) * | 2002-10-24 | 2007-02-20 | International Business Machines Corporation | System and method for transferring data between virtual machines or other computer entities |
| DE60309923T2 (de) * | 2002-11-05 | 2007-10-18 | Koninklijke Philips Electronics N.V. | Datenverarbeitungsvorrichtung mit adressenumlenkung als reaktion auf periodische adressenmuster |
| GB2395307A (en) * | 2002-11-15 | 2004-05-19 | Quadrics Ltd | Virtual to physical memory mapping in network interfaces |
| US7251815B2 (en) * | 2003-04-29 | 2007-07-31 | International Business Machines Corporation | Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle |
| US7299468B2 (en) * | 2003-04-29 | 2007-11-20 | International Business Machines Corporation | Management of virtual machines to utilize shared resources |
| JP4012517B2 (ja) | 2003-04-29 | 2007-11-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 仮想計算機環境におけるロックの管理 |
| KR100475125B1 (ko) * | 2003-06-21 | 2005-03-14 | 삼성전자주식회사 | 데이터 버스 폭 변경이 자유로운 이동형 저장 장치 및이에 대한 데이터 버스 폭 설정 방법 |
| US8028130B1 (en) | 2003-07-22 | 2011-09-27 | Oracle America, Inc. | Pipeline structure for a shared memory protocol |
| US7107367B1 (en) * | 2003-08-12 | 2006-09-12 | Advanced Micro Devices, Inc. | Method for efficient buffer tag allocation |
| US20050154786A1 (en) * | 2004-01-09 | 2005-07-14 | International Business Machines Corporation | Ordering updates in remote copying of data |
| US7478211B2 (en) * | 2004-01-09 | 2009-01-13 | International Business Machines Corporation | Maintaining consistency for remote copy using virtualization |
| CN100349142C (zh) * | 2004-05-25 | 2007-11-14 | 中国科学院计算技术研究所 | 一种用于虚拟共享存储系统的远程取页方法及网络接口卡 |
| US20050273571A1 (en) * | 2004-06-02 | 2005-12-08 | Lyon Thomas L | Distributed virtual multiprocessor |
| US7573808B2 (en) * | 2004-08-06 | 2009-08-11 | Fujitsu Limited | Smart resync of data between a network management system and a network element |
| US20060080514A1 (en) * | 2004-10-08 | 2006-04-13 | International Business Machines Corporation | Managing shared memory |
| US7682393B2 (en) * | 2004-10-14 | 2010-03-23 | Warsaw Orthopedic, Inc. | Implant system, method, and instrument for augmentation or reconstruction of intervertebral disc |
| US8341371B2 (en) * | 2005-01-31 | 2012-12-25 | Sandisk Il Ltd | Method of managing copy operations in flash memories |
| US20060230118A1 (en) * | 2005-04-12 | 2006-10-12 | Digi Chain Information Co., Ltd. | Share memory service system and method of web service oriented applications |
| JP4734348B2 (ja) * | 2006-01-31 | 2011-07-27 | 富士通株式会社 | 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体 |
| US7921185B2 (en) * | 2006-03-29 | 2011-04-05 | Dell Products L.P. | System and method for managing switch and information handling system SAS protocol communication |
| US20080005728A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment |
| US20080005752A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for generating application processes by linking applications |
| US20080005719A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, systems, and computer program products for providing a program execution environment |
| US20080005727A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity |
| US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
| US20080127220A1 (en) * | 2006-06-30 | 2008-05-29 | Robert Paul Morris | Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application |
| US20080005528A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space |
| JP5318768B2 (ja) * | 2006-10-05 | 2013-10-16 | ワラテック プロプライエタリー リミテッド | 高度な競合検出 |
| US20080133690A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Contention detection and resolution |
| US7734890B2 (en) * | 2006-10-06 | 2010-06-08 | Okralabs Llc | Method and system for using a distributable virtual address space |
| US7707383B2 (en) * | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
| CN100486178C (zh) * | 2006-12-06 | 2009-05-06 | 中国科学院计算技术研究所 | 一种远程内存共享系统及其实现方法 |
| US20080320282A1 (en) * | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Transaction Support For Executable Program Components |
| US20080320459A1 (en) * | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Concurrency Control For Addressable Entities |
| US7979645B2 (en) * | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
| US9102962B2 (en) * | 2007-10-16 | 2015-08-11 | Shiu Nan Chen | Production method for solid cultured active mushroom mycelium and fruit-body metabolites (AMFM) products thereof |
| US8521966B2 (en) * | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
| US8145878B2 (en) * | 2007-12-17 | 2012-03-27 | Intel Corporation | Accessing control and status register (CSR) |
| WO2009116279A1 (ja) * | 2008-03-19 | 2009-09-24 | パナソニック株式会社 | 処理装置、処理システム、データ共有処理方法、及びデータ共有処理用集積回路 |
| US8041877B2 (en) * | 2008-06-09 | 2011-10-18 | International Business Machines Corporation | Distributed computing utilizing virtual memory having a shared paging space |
| US8019966B2 (en) * | 2008-06-09 | 2011-09-13 | International Business Machines Corporation | Data sharing utilizing virtual memory having a shared paging space |
| US7809875B2 (en) * | 2008-06-30 | 2010-10-05 | Wind River Systems, Inc. | Method and system for secure communication between processor partitions |
| US7827336B2 (en) * | 2008-11-10 | 2010-11-02 | Freescale Semiconductor, Inc. | Technique for interconnecting integrated circuits |
| US9069672B2 (en) * | 2009-06-12 | 2015-06-30 | Intel Corporation | Extended fast memory access in a multiprocessor computer system |
| US8607004B2 (en) * | 2009-11-13 | 2013-12-10 | Richard S. Anderson | Distributed symmetric multiprocessing computing architecture |
| JP5700370B2 (ja) * | 2011-01-31 | 2015-04-15 | 独立行政法人海洋研究開発機構 | ノード |
| WO2012144012A1 (ja) | 2011-04-18 | 2012-10-26 | 富士通株式会社 | スレッド処理方法、およびスレッド処理システム |
| KR101355105B1 (ko) * | 2012-01-03 | 2014-01-23 | 서울대학교산학협력단 | 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치 |
| US8954698B2 (en) * | 2012-04-13 | 2015-02-10 | International Business Machines Corporation | Switching optically connected memory |
| US9063974B2 (en) * | 2012-10-02 | 2015-06-23 | Oracle International Corporation | Hardware for table scan acceleration |
| US9898414B2 (en) | 2014-03-28 | 2018-02-20 | Oracle International Corporation | Memory corruption detection support for distributed shared memory applications |
| US9342384B1 (en) | 2014-12-18 | 2016-05-17 | Intel Corporation | Function callback mechanism between a central processing unit (CPU) and an auxiliary processor |
| DE102016106939B4 (de) | 2015-04-17 | 2024-05-02 | Suunto Oy | Eingebettetes Rechengerät |
| US10152317B2 (en) * | 2017-03-30 | 2018-12-11 | Wipro Limited | Method and system for updating software packages in a storage system |
| US10452547B2 (en) | 2017-12-29 | 2019-10-22 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
| US10467139B2 (en) | 2017-12-29 | 2019-11-05 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
| US11086533B2 (en) | 2018-08-31 | 2021-08-10 | Wipro Limited | Method and system for optimizing storage space in a storage unit |
| US11734192B2 (en) | 2018-12-10 | 2023-08-22 | International Business Machines Corporation | Identifying location of data granules in global virtual address space |
| US11016908B2 (en) * | 2018-12-11 | 2021-05-25 | International Business Machines Corporation | Distributed directory of named data elements in coordination namespace |
| US11157309B2 (en) * | 2019-04-10 | 2021-10-26 | International Business Machines Corporation | Operating cluster computer system with coupling facility |
| WO2020214757A1 (en) * | 2019-04-17 | 2020-10-22 | John Rankin | Virtual memory pool within a network which is accessible from multiple platforms |
| WO2020243244A1 (en) | 2019-05-28 | 2020-12-03 | John Rankin | Supporting a virtual memory area at a remote computing machine |
| US11386020B1 (en) * | 2020-03-03 | 2022-07-12 | Xilinx, Inc. | Programmable device having a data processing engine (DPE) array |
| EP4133375B1 (en) | 2020-05-28 | 2024-03-20 | Huawei Technologies Co., Ltd. | Method and system for direct memory access |
| JP2022156563A (ja) * | 2021-03-31 | 2022-10-14 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
| US12112200B2 (en) | 2021-09-13 | 2024-10-08 | International Business Machines Corporation | Pipeline parallel computing using extended memory |
| KR102715528B1 (ko) | 2021-11-09 | 2024-10-11 | 한국전자통신연구원 | 메모리 액세스 방법 및 이를 수행하는 서버 |
| US12450162B1 (en) * | 2022-03-07 | 2025-10-21 | Nvidia Corporation | Sharing memory among multiple processors |
| CN114844827B (zh) * | 2022-05-05 | 2023-03-28 | 浙江大学 | 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法 |
| CN116484947B (zh) * | 2023-06-25 | 2023-09-08 | 上海燧原科技有限公司 | 算子的自动生成方法、装置、设备及介质 |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4240143A (en) * | 1978-12-22 | 1980-12-16 | Burroughs Corporation | Hierarchical multi-processor network for memory sharing |
| US4371929A (en) * | 1980-05-05 | 1983-02-01 | Ibm Corporation | Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory |
| US4430705A (en) * | 1980-05-23 | 1984-02-07 | International Business Machines Corp. | Authorization mechanism for establishing addressability to information in another address space |
| DE3376590D1 (en) * | 1982-04-28 | 1988-06-16 | Int Computers Ltd | Data processing system |
| US4777595A (en) * | 1982-05-07 | 1988-10-11 | Digital Equipment Corporation | Apparatus for transferring blocks of information from one node to a second node in a computer network |
| US4481578A (en) * | 1982-05-21 | 1984-11-06 | Pitney Bowes Inc. | Direct memory access data transfer system for use with plural processors |
| US4720784A (en) * | 1983-10-18 | 1988-01-19 | Thiruvengadam Radhakrishnan | Multicomputer network |
| US5047917A (en) * | 1985-07-12 | 1991-09-10 | The California Institute Of Technology | Apparatus for intrasystem communications within a binary n-cube including buffer lock bit |
| US4742447A (en) * | 1986-01-16 | 1988-05-03 | International Business Machines Corporation | Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system |
| US4843542A (en) * | 1986-11-12 | 1989-06-27 | Xerox Corporation | Virtual memory cache for use in multi-processing systems |
| US4926322A (en) * | 1987-08-03 | 1990-05-15 | Compag Computer Corporation | Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management |
| US5239643A (en) * | 1987-11-30 | 1993-08-24 | International Business Machines Corporation | Method for reducing disk I/O accesses in a multi-processor clustered type data processing system |
| US5220657A (en) * | 1987-12-02 | 1993-06-15 | Xerox Corporation | Updating local copy of shared data in a collaborative system |
| US5276806A (en) * | 1988-09-19 | 1994-01-04 | Princeton University | Oblivious memory computer networking |
| US4994963A (en) * | 1988-11-01 | 1991-02-19 | Icon Systems International, Inc. | System and method for sharing resources of a host computer among a plurality of remote computers |
| US5222217A (en) * | 1989-01-18 | 1993-06-22 | International Business Machines Corporation | System and method for implementing operating system message queues with recoverable shared virtual storage |
| US5222224A (en) * | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system |
| US5020020A (en) * | 1989-04-07 | 1991-05-28 | Digital Equipment Corporation | Computer interconnect system with transmit-abort function |
| JPH031260A (ja) * | 1989-05-30 | 1991-01-07 | Hitachi Ltd | 計算機方式 |
| JPH0394321A (ja) * | 1989-06-21 | 1991-04-19 | Hitachi Ltd | アクセス制御方法 |
| US5163131A (en) * | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
| US5206946A (en) * | 1989-10-27 | 1993-04-27 | Sand Technology Systems Development, Inc. | Apparatus using converters, multiplexer and two latches to convert SCSI data into serial data and vice versa |
| EP0447145B1 (en) * | 1990-03-12 | 2000-07-12 | Hewlett-Packard Company | User scheduled direct memory access using virtual addresses |
| US5327570A (en) * | 1991-07-22 | 1994-07-05 | International Business Machines Corporation | Multiprocessor system having local write cache within each data processor node |
| US5386524A (en) * | 1992-04-16 | 1995-01-31 | Digital Equipment Corporation | System for accessing information in a data processing system |
-
1993
- 1993-03-25 JP JP5092279A patent/JPH0619785A/ja active Pending
-
1994
- 1994-08-04 US US08/286,799 patent/US5522045A/en not_active Expired - Lifetime
-
1995
- 1995-06-05 US US08/461,390 patent/US5592625A/en not_active Expired - Lifetime
-
2002
- 2002-09-26 JP JP2002280316A patent/JP2003178039A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005227922A (ja) * | 2004-02-12 | 2005-08-25 | Yokogawa Electric Corp | プロセス間情報共有システム |
| JP2010055440A (ja) * | 2008-08-29 | 2010-03-11 | Nec Electronics Corp | 分散共有メモリ型マルチプロセッサ及びデータ処理方法 |
| US9280466B2 (en) | 2008-09-09 | 2016-03-08 | Kabushiki Kaisha Toshiba | Information processing device including memory management device managing access from processor to memory and memory management method |
| JP2011186554A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
| US9910789B2 (en) | 2012-11-12 | 2018-03-06 | International Business Machines Corporation | Electrical and optical memory access |
Also Published As
| Publication number | Publication date |
|---|---|
| US5522045A (en) | 1996-05-28 |
| US5592625A (en) | 1997-01-07 |
| JPH0619785A (ja) | 1994-01-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2003178039A (ja) | 分散共有仮想メモリーとその構成方法 | |
| US5446915A (en) | Parallel processing system virtual connection method and apparatus with protection and flow control | |
| JP5285375B2 (ja) | ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法 | |
| TW544589B (en) | Loosely coupled-multi processor server | |
| US5253342A (en) | Intermachine communication services | |
| US5991797A (en) | Method for directing I/O transactions between an I/O device and a memory | |
| USRE43825E1 (en) | System and method for data forwarding in a programmable multiple network processor environment | |
| US5768618A (en) | Method for performing sequence of actions in device connected to computer in response to specified values being written into snooped sub portions of address space | |
| CN101539902B (zh) | 多计算机系统中节点的dma设备及通信方法 | |
| JP2505050B2 (ja) | 複数プロセツサ間で通信するためのシステム | |
| US20030037096A1 (en) | Method and apparatus for the management of queue pointers by multiple processors in a digital communications network | |
| US6163829A (en) | DSP interrupt control for handling multiple interrupts | |
| JPH05501041A (ja) | 高速パケットスイッチング装置および方法 | |
| US20040151170A1 (en) | Management of received data within host device using linked lists | |
| CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
| US20020174316A1 (en) | Dynamic resource management and allocation in a distributed processing device | |
| KR980013147A (ko) | 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법 | |
| JPS6118053A (ja) | デ−タ処理システム | |
| WO1990007154A1 (en) | Memory address mechanism in a distributed memory architecture | |
| CZ20012154A3 (cs) | Architektura přerušení pro systém zpracování dat s neuniformním paměťovým přístupem (numa) | |
| US7643477B2 (en) | Buffering data packets according to multiple flow control schemes | |
| JPH0944424A (ja) | 遠隔情報処理システム間のメッセージ伝送方法 | |
| JPH0844675A (ja) | 処理エレメント間の制御メッセージ分散のための装置及び方法 | |
| US6092136A (en) | Multi-processor central processing unit | |
| Blumrich et al. | Two virtual memory mapped network interface designs |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050329 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050523 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050628 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051025 |