JPH0619785A - 分散共有仮想メモリーとその構成方法 - Google Patents

分散共有仮想メモリーとその構成方法

Info

Publication number
JPH0619785A
JPH0619785A JP5092279A JP9227993A JPH0619785A JP H0619785 A JPH0619785 A JP H0619785A JP 5092279 A JP5092279 A JP 5092279A JP 9227993 A JP9227993 A JP 9227993A JP H0619785 A JPH0619785 A JP H0619785A
Authority
JP
Japan
Prior art keywords
node
memory
network
address
location
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
Application number
JP5092279A
Other languages
English (en)
Inventor
Sandobaagu Jiyonasan
サンドバーグ ジヨナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of JPH0619785A publication Critical patent/JPH0619785A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing

Abstract

(57)【要約】 【目的】 複数のプロセッサーやコンピューター、マル
チプロセッサー、および電子的あるいは光デバイスを接
続する分散共有メモリーによってプロセッサー間通信を
行う。 【構成】 複数のコンピューターノードからなるコンピ
ューターネットワークの各ノードに1つのプロセッサー
を有し、ネットワークは前記ノード間の相互接続よりな
り、各ノードにネットワークに相互接続するためのリン
クハードウエアからなるアダプターカードと、入力バッ
ファーと、メモリーロケーションと、ページテーブル
と、1組の制御・ステータスレジスターと、出力バッフ
ァーを有する。 【効果】 すべてのネットワークのアクティビテーが書
き込みと制御動作だけで完了し得る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ネットワーク中の複数
の遠隔地点のノードに分散しているメモリーの共有に関
する。特に、非同期的に動作している複数のノードにつ
いて、ネットワークに接続されているコンピューターの
物理的メモリーへの書き込みのみならず、仮想メモリー
キャッシュ(cache)へのアクセスや、また相互通
信における共有仮想メモリー空間へのマッピングなどに
ついての方法ならびに手段を教示する。
【0002】
【従来の技術】マルチコンピューターの配置法の高度化
によって、マルチプロセッサーシステムが開発されてき
た結果、データ処理の必要性が高まってきている。マル
チプロセッサーの分野では、複数のプロセッサーが同時
にプログラムを実行し、入出力デバイスなどの資源を共
有して、相互に影響を及ぼし合う。一般的に、このよう
なシステムのマルチプロセッサーは共通メモリーにたく
わえられたデータを共有している。それ以外にも、各プ
ロセッサーは非共有データ用の付加的メモリーに対して
も専用のアクセスを行う。共有メモリーに関しては、多
くのプロセッサーがデータにアクセスしようとして競合
し、そのことは時間的にも資源的にも、効率低下をもた
らす。マルチコンピューターシステムは、共有データの
それぞれのコピーを持つ多くのノードを通して動作する
ことが多い。共有メモリーが矛盾なく動作するために
は、各ノードは、すべての関連するノードにある共有デ
ータを同時に書き換えることができるように、他のノー
ドにしまわれているデータ、すなわち、「物理メモリ
ー」に直接アクセスできなければならない。共有物理メ
モリーについての一つの問題点は、メモリーの同じロケ
ーションに1つ以上のコンピューターが同時に書き込も
うとすると、ノード間に矛盾が生ずることである。さら
に、一つのノードは、他の何れかのノードがデータ更新
のため書き込み動作期間にある間、インアクテイブに保
持されなければならないということも問題である。その
他にも、1時に1つの更新のみが可能な1つのメモリー
を共有する2つ以上のノードを持つシステムでは、異な
るノード間では、対応するメモリー位置において異なる
値、すなわち、一方では更新されているが、他方では未
だ更新されていない、ということがあるかも知れない、
というよりは、大いにあり得る。一般的には、メモリー
の共有を行うために、ネットワーク中の他のノードから
の直接アクセスを確保するため、共有されるべきデータ
が各ノードのモード空間中で同一のメモリー位置を占め
ることが要求されてきていた。この固定したロケーショ
ンの物理メモリーを共有するということは、各ノードに
それら自身ののメモリー空間を最も効率的に割当てるこ
とを妨げるものである。2台以上の機器にこのメモリー
共有の概念を拡張することは、上述の障害がある限り困
難である。
【0003】プロセッサー間の通信は、ネットワークの
バンド幅や上述の整合に関する問題によって制限され
る。最近提案されている高速コンピューターネットワー
クのアーキテクチャーの多くのものは、従来の物理的接
続にもとづくバスやリングから、集中スイッチングにも
とづく接続へと移行しつつある。このスイッチング・ネ
ットワークのアーキテクチャーは、分散システム上で動
く画像やマルチメデイアなどへの応用の、より高速なデ
ータ伝送速度ならびにスループットを約束するものであ
る。さらに、高速スイッチング技術にもとづくネットワ
ーク・アーキテクチャーは、パーソナルコンピューター
からスパーコンピューターシステムまでを含む商用コン
ピューターネットワークを悩ませているプロセッサー間
通信のボトルネックを根本的に取除く可能性を秘めてい
る。プロセッサー間通信のボトルネックを除くために
は、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」で表わされているバンド幅
は、いずれもネットワークの性能に密接に関係する。
【0004】上記の2つの問題のうちの第1の問題は、
ネットワークのバンド幅の問題であり、分散共有メモリ
ーの更新に必要と考えられるであろうことであって、潜
在的に大きなネットワーク全体に対して、如何にして、
データを迅速かつ確実に多方方向に送り出すかというこ
とである。バンド幅「B」がネットワーク全体を通じて
維持されるのでなければ、ネットワークを通じての伝送
は分散システムのボトルネックを解消することはできな
い。一旦データがネットワークに与えられたならば、そ
れが如何なるルートを通って指定された組のネットワー
クの目的地に配送されるかが、バンド幅の「過密」の解
消に特に重要である。分散メモリーを共有することは、
ネットワーク中の何れの場所においても、メモリーのコ
ピーを持っていることになるから、相互に接続された機
器間のメモリー読み込み通信は不要になる。しかし、ネ
ットワークの各地点でメモリーの最新のコピーを常に維
持するためには、メモリー書き込みまたは更新は、それ
がどこで起ころうとも、ネットワーク全体に多方向に送
出されなければならない。プロセッサー間通信のボトル
ネックに直面する時に遭遇する第2の問題は、プロセス
からプロセスへのバンド幅の問題である。ユーザー・メ
モリー、したがって、プロセッサーを接続しているケー
ブル、すなわち、図1中の18および19で示した線路
「A」からネットワークへのデータのロードや、それか
らの読み込み動作を最適化する必要がある。もし、ユー
ザー・プロセッサーのアクセスが数分の1のバンド幅し
か持っていなければ、ネットワークへの接続はボトルネ
ックにとどまることになる。ネットワークのバンド幅問
題を解決する努力が大いになされた結果、多くのネット
ワークにおいて、「B」が「A」よりもはるかに大きい
という特性を持つようになった。その結果、多くのノー
ド上のユーザー・プロセッサーやメモリー空間、あるい
はパーソナルコンピューターが、如何にしてこのように
性能向上したネットワークに迅速にアクセスできるかと
いう問題が残ってきた。したがって、複数台のコンピュ
ーターの大規模ネットワーク化を促進改善するために関
連のある問題として、以下のような事項をあげることが
できる。すなわち、ネットワークのバンド幅、個々のプ
ロセッサー内で得られるプロセス間のバンド幅、共有メ
モリーの書き込みの順番と受け付け、同種または異種の
オペレーテイングシステムを持つ広範なロケーション間
の相互接続、などである。
【0005】分散メモリーを共有し、相互のローカルメ
モリーに書き込む能力を有するネットワーク中に分散ノ
ードを配置するシステムが、「忘れっぽいメモリーコン
ピューターネットワーク化」と題して、1990年3月
28日公開、公開番号 0 360 153のヨーロッ
パ特許出願 89117024.3、対応米国特許出願
249,645、に述べられている。そこで述べられて
いる通信ネットワークでは、ネットワーク中の何れの機
器も、ネットワーク中の他の機器の分散共有メモリーの
ロケーションに書き込むことができる。そこでは、相互
接続された機器中の共有メモリーの対応するロケーショ
ンの物理アドレスがしまわれている分散メモリーを付随
して持つファイルレジスターが設置されている。リンク
されたノード、いわゆるビクテイムノード、への書き込
み動作は、それのアドレスがアドレシングに付随するフ
ァイルレジスター(すなわちホストユニット)に常駐し
ている物理メモリーに対して行われる。ここでビクテイ
ムとはローカルなメモリーが離れたところから書き込ま
れるところの場所、つまりノードのことを言う。ビクテ
イムロケーションはメモリーの更新の制御をしたり、そ
れに参加したりすることはない。ネットワークのロケー
ションは、ホストコンピューターが希望するファイルの
ロケーションを「ルックアップ」し、分散共有メモリー
中のビクテイムのロケーションに対してアドレスパケッ
トを準備するように、物理メモリーロケーション中にメ
モリーマップされる。0 360 153のシステムで
は、主として、確認メッセージを省略することによって
ネットワークのバンド幅問題を極小化し、データをメイ
ンメモリーのスピードでネットワーク中に伝送できるよ
うにして、従来技術を改良している。確認機構を省略す
ることによって、この方法は弱い一致検出方式に頼るこ
とになり、共有メモリーロケーション間の厳密な一致検
出は放棄されている。0 360 153のシステムの
いま一つの改良点は、ホスト、すなわち、データ送出側
のプロセッサーは、ビクテイムプロセッサーの更新デー
タの受取りならびに処理のサイクルの期間中、その動作
の中断を必要としないことである。ネットワークアダプ
ター、たとえば16、からコンピューター10のメモリ
ー空間14への実際のネットワークの伝送や内部メモリ
ーのストアトランザクションの作成などはホストプロセ
ッサーのたすけを借りることなく、あるいは、ホストプ
ロセッサーに「気づかれる」ことさえなく行われる。書き
込みプロセスが行われることによって、ホストプロセッ
サーは更新データの送出後のすべての動作を忘れること
が許される。弱い一致検出方式の一つの欠点は、共有メ
モリーロケーションに対する更新がそれらが生成された
順番に行われなければならないことである。0 360
153のシステムに見られるメモリーマップされた中
断機構は、それが非選択的である点でまた問題である。
しばしば、ロケーションプロセスはネットワークサービ
スを要求するのにリーダープロセスに全面的に中断発生
を要求する。1台の目標の機器に中断を発生させるの
に、その他のすべての付随する機器はその中断を受入
れ、処理しなければならない。中断の機構は、中断のタ
ーゲットがただ1台のプロセッサである場合に、データ
転送をはじめたりサービスを要求したりすることに対し
て、上述のように重要である。全域の中断を発生する必
要のある例は多いが、ネットワーク中に選択的な中断あ
るいは多方向での中断を生起させ、進行中のネットワー
ク通信があっても、多くの加入者に対して、その中断動
作を継続させるような機能を持つことが望ましいことも
ある。0 360 153システムの今一つの欠点はメ
モリーの更新を行うために、物理メモリーのロケーショ
ンが相互接続されている各ノードにあるレジスターに
「マップ」されるということである。共有メモリーの物
理的ロケーションはローカルなプロセッサーからは変更
できないから、このことはそれらのメモリー空間の最も
効率的な割当て能力を制限することになる。
【0006】Nigel Llewelyn Vinc
eによって開発され、ヨーロッパ特許公開0 092
895で1988年5月11日付けで開示されたヨーロ
ッパ特許出版第83311516.8に、仮想アドレス
を用いた関連プロセッサーのメモリーへの接近法が開示
されている。ホストプロセッサーファイルレジスターや
相互に接続されている各プロセッサーはメモリー格納場
所の仮想アドレスを含んでいる。ホストプロセッサーは
仮想アドレスやその更新内容を含む書き込みパケットを
アッセンブルする。ビクテイムプロセッサーはパケット
を受け取り、引き続いて更新すべきメモリーの物理的ロ
ケーションにアクセスするために仮想アドレスをデコー
ドする。入って来るパケットは全て、それらが発生した
順序で受信されなければならない。Vince特許はパ
ケットの順序の維持を必要とするトークンリングを用い
た実施例について述べている。Vince特許のより広
範な応用において、トークンリング以外の相互接続ネッ
トワークの使用についても検討しているが、その場合で
も、カウンターとかその他の手段でパケットの順序維持
という特徴は保持されることが必要である。この様なパ
ケットの順序維持の必要性は相互接続システムで到達可
能なスピードを制限するものである。
【0007】
【発明が解決しようとする課題】ネットワーク全体を通
じて物理的のみならず仮想メモリーアドレスへのアクセ
スを提供する仮想メモリーマッピングの能力は、ネット
ワークの効率を飛躍的に向上させる。仮想共有メモリー
への直接のネットワークアクセスに対する仮想メモリー
アドレッシングの概念の拡張はネットワーク通信を容易
にし、プロセッサーの介入なしに即時メモリー更新を可
能にするものである。その上、仮想メモリー空間を実際
に設置されている物理メモリーよりも大幅に拡大して取
ることができる。したがって、広域に分散したネットワ
ーク全体を通じて仮想共有メモリーを提供することが本
発明の目的とするところである。本発明の更に目的とす
るところは、プロセッサーの介入なしに仮想共有メモリ
ーに対してネットワークアクセスを提供することであ
る。本発明のいま1つの目的は、既存のネットワークに
対して仮想メモリーマッピングならびにアクセスの能力
を提供することである。本発明の更に目的とするところ
は、異種のオペレーテイングシステム(OS)で動作
し、また異なるメインメモリーバイト数を持つノード間
に相互接続を提供することである。更にいま1つの目的
は、既存のネットワークに対してダイナミック再配置の
能力を提供することである。
【0008】
【課題を解決するための手段】請求項1の発明の方法は
第1のノードであって、少なくとも1つの第1のプロセ
ッサーと第1の共有メモリーロケーションを持ち、且つ
それらが複数の他のノードに相互に接続されていて、前
記共有メモリーに対して少なくとも1つの更新値を供給
するための方法であって、前記他の複数のノードのそれ
ぞれがまた少なくとも1つのプロセッサーと共有メモリ
ーロケーションとを有し、且つ、手順として: (a)第1のメモリーロケーションに更新値を書き込む
ステップ、(b)前記他の複数のノードにおいて共有メ
モリーのアドレスを得るステップ、(c)前記アドレス
と更新値を持つ1つの書き込みパケットを発生させるス
テップ、及び、(d)前記書き込みパケットを前記アド
レスに送るステップ、を具備している。また請求項6の
発明の方法は第1のノードであって、少なくとも1つの
第1のプロセッサーと複数の第2のノードとインターリ
ーブしている第1のメモリーロケーションを持ち、且
つ、それらが1つの第2のプロセッサーと第2のメモリ
ーロケーションを持ち、また、前記メモリーロケーショ
ンは共有メモリー値を含み、前記第1のメモリーロケー
ションに対する更新を受信する方法であって、且つ、手
順として: (a)前記更新値と第1のメモリーロケーションアドレ
スを含む第1のパケットを受信するステップ、及び
(b)前記メモリーロケーションを更新するステップ、
を具備している。また請求項12の発明のシステムは、
第1のノードであって、1つの第1のプロセッサー、第
1のメモリーロケーション、第1のページテーブルロケ
ーションならびに第1の制御レジスターロケーションを
持ち、且つ、少なくとも1つの第2のノードと相互接続
されたネットワークにおいて、少なくとも1つの第2の
プロセッサー、第2のメモリーロケーション、第2のペ
ージテーブルロケーションならびに第2の制御レジスタ
ーロケーションを持ち、前記少なくとも1つの第2のノ
ードノードにおける前記第2の少なくとも1つのロケー
ションに対して更新値を供給するための方法であって、
且つ、手順として: (a)少なくとも1つの更新値と少なくとも1つのロケ
ーションアドレスつくりだすステップ、及び(b)前記
パケットを前記少なくとも1つの第2のロケーションへ
送り出すステップ、を具備している。また請求項15の
発明の方法は、第1と、少なくとも1つの第2のノード
に付随する共有メモリーロケーションの中での無矛盾性
を維持するための方法であって、前記第2のノードはネ
ットワーク全体に付随するページテーブルを有し、且
つ、手順として: (a)前記共有メモリーロケーションを前記ページテー
ブル中にメモリーマップするステップ、及び(b)前記
共有メモリーロケーションに対する更新を前記ネットワ
ーク全体に多方向送出するステップ、を具備した方法。
また請求項22の発明は、複数のコンピューターノード
からなるコンピューターネットワークであって、各ノー
ドは少なくとも1つのプロセッサーを有し、ネットワー
クは前記ノード間の相互接続よりなっており、その改良
点は:少なくとも1つのプロセッサーのそれぞれに接続
された前記ノードのそれぞれにあるアダプターカード、
前記ノードを前記ネットワークに相互接続するためのリ
ンクハードウエアからなる前記アダプターカード、少な
くとも1つの入力バッファー、少なくとも1つのメモリ
ーロケーション、少なくとも1つのページテーブル、少
なくとも1組の制御ならびにステータスレジスター、な
らびに少なくとも1つの出力バッファーについてなされ
たものからなるネットワークについてのものである。ま
た請求項23の発明のシステムは、コンピューターネッ
トワークシステムであって、その構成要素として: (a)少なくとも2つのコンピューターノード、(b)
各ノードに付随する少なくとも1つのプロセッサー、
(c)少なくとも2つのノードによって共有されるデー
タの少なくとも1つのコピーをしまうための各プロセッ
サーに付随した少なくとも1つのデータ格納ロケーショ
ン、(d)前記共有データの各コピーの格納ロケーショ
ンにインデクスするための各ノードに付随する少なくと
も1つのページテーブル手段、(e)各ノードにおいて
接続されたネットワーク伝送手段と相互に接続された前
記少なくとも2つのノード、を具備している。また請求
項35の発明のスイッチ手段は、仮想共有メモリーにマ
ップされた少なくとも2つのコンピューターノードにお
ける相互接続のためのスイッチ手段であって、且つ、そ
の構成要素として: (a)それらの内の少なくとも1つが前記各コンピュー
ターノードに接続されている少なくとも2つのスイッチ
ポート、少なくとも1つのスイッチ入力バッファーから
なる前記各スイッチポート、少なくとも1つのスイッチ
出力バッファー、少なくとも1つのスイッチページテー
ブル手段、少なくとも1つのスイッチレジスターとリン
クハードウエア、及び (b)前記少なくとも2つのスイッチポート相互接続す
るための前記各スイッチポートに付随した前記リンクハ
ードウエアに接続されたスイッチバス、を具備してい
る。また請求項37の発明の方法は、ノードに対する方
法であって、少なくとも1つのプロセッサーと少なくと
も1つのメモリーロケーションと少なくとも1つのペー
ジテーブル手段を有し、前記少なくとも1つのメモリー
ロケーションにおいてメモリー値を変更するために、メ
モリーは他のプロセッサーを持つ少なくとも1つの相互
接続されたコンピューターノード、前記共有メモリーの
コピー、および少なくとも1つのページテーブル手段と
共有され、さらに手順として: (a)前記メモリーロケーションの前記物理アドレスに
アクセスするステップ、(b)前記更新値を前記メモリ
ーロケーションに供給するステップ、(c)前記メモリ
ーロケーションの前記物理アドレスを前記ページテーブ
ルに供給するステップ、(d)前記物理アドレスに対応
する前記少なくとも1つの他のノードにおける少なくと
も1つのアドレスを前記ページテーブルから得るステッ
プ、(e)前記少なくとも1つのアドレスと前記更新値
を含むパケットをアセンブルするステップ、及び(f)
前記パケットを前記少なくとも1つの他のノードに送出
するステップ、を具備している。また請求項38の発明
のカードはコンピューターノードを少なくとも1つの他
のコンピューターノードに相互接続することを容易にす
る少なくとも1つのプロセッサーを有するコンピュータ
ーノードに挿入するためのアダプターカードであって、
構成要素として: (a)少なくとも1つのメモリー値を含む少なくとも1
つのメモリーロケーション、(b)少なくとも1つのペ
ージテーブル、(c)少なくとも1つのレジスター、
(d)少なくとも1つのノード入力バッファー、(e)
少なくとも1つのノード出力バッファー、および(f)
前記ノードを少なくとも1つの他のノードに接続するた
めのリンクハードウエア、を具備している。また請求項
41の発明の方法は、既存のコンピューターノードにお
ける相互接続コンピューターノード間の共有仮想メモリ
ーに対するアクセスのための方法であって、且つ、手段
として: (a)ノードに前記共有メモリーのアドレスを含んでい
る少なくとも1つのページテーブルを供給するステッ
プ、及び(b)前記ノードのページテーブル中に前記ネ
ットワークのロケーションをメモリーマップするステッ
プ、を具備している。また請求項42の発明の装置は、
既存のコンピューターノードにおける共有仮想メモリー
に対するアクセスのための装置であって、且つ、その構
成要素として: (a)各ノードに挿入するためのアドレスカードであっ
て、前記カードは少なくとも3つのメモリーロケーショ
ンとネットワークインターフェース、を具備している。
【0009】
【作用】上記発明の目的は上記の課題を解決するための
手段に示された構成により、アダプターカードが既存の
ノードに取付けられ、さらに本発明のスイッチポートと
バス配列を経てネットワークに接続されることによって
達成される。アダプターとスイッチポートは物理的ある
いは仮想メモリーアドレスに対してのみならず、ネット
ワーク中の通信を実行し得るネットワークの仮想共有メ
モリーアドレスに対しても、優れたメモリーマッピング
を提供し得る制御ならびにステータスレジスター、ペー
ジテーブル、入力ならびに出力FIFOならびにリンク
ハードウエアなどよりなる。アダプターの構成に含まれ
るものには、さらに、相互に接続されたネットワークの
各ロケーション間で共有されているメモリー値をたくわ
えている物理的メモリーがある。ネットワークアダプタ
ーはルートを設定したり、ネットワークのパケットを多
方向送出したりするために、スイッチポートにおいて、
あらかじめロードされているページテーブルと動作時ア
ドレス翻訳を用いている。本発明は、地理的に広範囲な
地域に広がる任意に大きな数の高速ノードあるいはプロ
セッサーを相互接続するのに用いることができる。さら
に、ネットワーク中のプロセッサーの接続について、そ
の数、ロケーション、タイプなどを、広範囲にそのスケ
ールを変更することができるものである。
【0010】
【実施例】本発明の詳細を、その構成ならびに動作の両
面について、以下添付の図面を参照しつつ説明する。本
発明は 共有仮想メモリーレベルにおけるプロセッサー
間ネットワーク通信を行うための方法と手段を提供する
ものである。ここで、本発明は、その構成要素として、
本文中では詳しく述べていない周知のコンピューター回
路、種々の素子、機能性ユニットなどを含む新しい構成
に関係しているということを指摘しておかなければなら
ない。したがって、これらの周知の回路や素子の構造、
制御ならびに配列などについては、わかりやすいよう
に、本発明に関連する特定の部分についてだけブロック
図とそれらの機能についてのダイアグラムで表わすこと
とする。このことは、それらの機能についての記述とい
う点から考えて、この分野に精通している人には、明白
な構造上の詳細な記述がかえって発明そのものを不明瞭
にすることを避けたいためである。このようにすれば、
これらのシステムの種々の部分が確認され、機能によっ
て分類されるので、発明に関連のあるそれらの特徴を強
調することができる。以下の記述は、この分野に精通し
ている人が、ここに開示される発明の可能性と能力を十
分に理解し、これを種々のコンピューターアーキテクチ
ャに組込むことができるように配慮してある。本発明の
利点を実現するシステムは、すぐれたネットワーク対バ
ンド幅特性を備えていなければならない。本発明を実現
するのに必要な現在入手可能なハードウエアの中には、
是非とも必要というわけではないが、パラレルシリアル
クロック変換可能なデータ伝送のできるAMDタクシー
(AMD社の登録商標)チップ、光電変換可能な光デー
タリンク、データのフローをバッファーしたり制御する
入出力FIFO、ならびに、SARM、などなどの種々
の光あるいはエレクトロニックなパーツが含まれてい
る。今迄是非とも必要とされたもので構成要素リストに
記載されなくなることが特に目立つパーツは、オンボー
ドプロトコルプロセッサーであるが、これは本発明によ
って不要となるものである。
【0011】以下に述べる本発明の記述を通じて、ある
種の広義な用語が記述の統一性と明確性のために用いら
れている。本発明者は、それらの用語が当該技術のより
広範な局面に用いられることが意図されていることが明
らかな時にもそれらの用語の用法が厳密な解釈に限られ
るということは望まないものである。特に、以下の用語
は広義の用法で用いられることを断っておく。「ノー
ド」という語はプロセッサー、コンピューター、スーパ
ーコンピューター、あるいは、マルチプロセッサーなど
を含む(それらに限られないが)、独立して動作する機
器を表示するのに使われる。「プロセッサー」という語
はノード中にある制御プロセッサーを指すのに使われ
る。「ホストプロセッサー」という語は受信あるいは犠
牲プロセッサーに通信されるべき書き込みあるいは制御
コマンドを送出している一つのノード中のプロセッサー
を指すのに使われる。「インタープロセッサー」という
語は独立したノード間のネットワーク、あるいはそのよ
うな独立したノード間のネットワーク中にある通信を指
す。基本的に、あるいは概念的に、本発明中におけるコ
ンピューターノードというものは、メモリーのマッピン
グを通じて、メモリーバスの書き込みあるいはネットワ
ーク上の制御コマンドを繰り返すだけでアクセスできる
仮想アドレス空間にリンクされている。各ノードで実行
されているプログラムは仮想メモリーのひとつあるいは
それ以上のセグメントを共有し、それらのセグメントを
あたかも各プログラムの一部であるかのように使う。メ
モリーの共有されたセグメントは個々のプログラムから
同時にアクセス可能である。したがって、ネットワーク
上のプログラムは共通のメモリーセグメントを通じて互
いにデータを交換することによって通信することができ
る。共有メモリー通信のこのような形態は、共有メモリ
ーを通して通信しているプロセスに対するインタープロ
セス通信について、それらのプロセスが同じノード(す
なわち、シングルの)上で走っている場合には、既にサ
ポートされている。この例における共有メモリーは、ワ
ークステーションあるいはノードの物理メモリーであ
る。現在のところ、多くのノード上で動作しているプロ
セス間の通信を成立させるために、ノード内で動作する
SRAMのスピードで共有メモリーコールを用いる方法
は、本発明以外存在しない。
【0012】このような低レベルのメモリーでインター
プロセッサー通信を行うことには、利点と欠点の両面が
ある。欠点は、一つには、新しい共有メモリーのプログ
ラミングモデルを必要とすることであり、一つには、ア
ーキテクチャーの異なるコンピューター間で、あるタイ
プのデータ(たとえば、浮動小数点データ)を送るとき
にデータタイプ間の変換を必要とすることである。プロ
グラミング技術に精通した人ならば、このような比較的
軽微な不便さを簡単に補償することができる。利点とし
ては、インタープロセッサー通信に対して、OSの違い
にほとんどかあるいは全く依存しない点が含まれる。O
S依存性の少なさは、インタープロセッサー通信のメモ
リーマッピングからきている。その上、ネットワーク通
信や共有メモリーのやりとりは、固定した物理メモリー
ロケーションを指定せずにアクセスできる適宜なキャッ
シュ中のメモリーを指定する能力をノードに対して制限
することなしに、ノード内のメモリーにアクセスするこ
とを可能としている。システムは、その仮想メモリーペ
ージのある箇所を共有するように指定したり、それ自身
のアダプターカードのメモリーロケーションの更新をお
こなったり、また他の組み合わさっているネットワーク
の多くのノードのページテブルを同時に更新するように
多方向に指令を発したりして、そのメモリー空間を連続
的に管理することを許している。このようにして、ネッ
トワーク上の各ノードは基本的には、仮想メモリー空間
を経由して関連するノードのいかなるレベルのメモリー
にも直接アクセスすることができる。もしも、ある一つ
のノードのみがあるデータにアクセスすることができる
ようにしたければ、共有仮想メモリーのすべてのメモリ
ーページの内容は、一般に、他の仮想メモリーページが
保護されているのと同じやりかたで保護されている必要
がある。プログラムは、共有可能である旨をパブリック
にあるいはプライベートに宣言されているページに対し
て、読み/書きの優先権を与えられている。共有仮想メ
モリー(SVM)でマップされたコンピューターネット
ワークについてのルート選択や管理と言うものは、まっ
たく新しい概念である。SVMのアドレス空間は各ユー
ザーの仮想メモリーアドレス空間についても、また、い
ずれのホストノード上のOSのアドレス空間についても
独立なものである。共有仮想空間は単一のネットワーク
の広さのアドレス空間を持ち、このシステムはプログラ
ムがそれらの仮想メモリーのセグメントをひっつけたり
することができるように設計されている。システムはプ
ログラムに対し、それらの仮想メモリーページのどこか
あるいはすべてに共有されることを指示することができ
る。共有メモリーセグメントはどのような固定の標準サ
イズに制限されることもない。
【0013】SVM空間は長いアドレス(たとえば、12
8ビット長の)をも含む共有仮想メモリーロケーション
の1次元の並びである。共有仮想メモリー空間は非常に
大きいので、各共有仮想メモリーページが実際の物理的
なRAMの1ページを表わすということはありそうにな
い。したがって、この場合には、共有仮想メモリーのア
ドレスは、ただ単に、共有セグメントを作るときにどの
ようなネットワークプログラミングによっても使われる
名前として機能しているに過ぎない。もし、あるプロセ
スがSVMのある与えられたページに対する保証機能と
して動作することに同意するならば、その与えられたペ
ージ内にうまくマップすることのできるプログラムは、
上の保証機能がメモリー割当てプロセスの一部としてS
VMページの内容のコピーを送ってくるであろうことを
期待できる。本発明のシステムは高機能なコンピュータ
ーネットワークの管理を簡単化するために、SVMアド
レス空間を使う。図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から見ることが
できる。アドレスの変更はすべて動作時に行われる。こ
のことについては、後で、さらに検討する。
【0014】ネットワーク管理の方針として、SVM空
間の継続するページは特定のノードに静的に割当てるこ
とができる。SVMアドレスの静的な割当ては、プログ
ラムからの要請による通信チャンネルの迅速な自動立ち
上がりを支援するものである。たとえば、図2におい
て、ロケーション21のノードはSVMのページkから
k+100を有し得る(の保証者である)と考えてよ
い。ロケーション22と23に走っているアプリケーシ
ョンがロケーション21にデータの転送を要求すると
き、それらのデータは一旦、SVMのページkにマップ
される。各ノード間のネットワーク通信はメモリー(バ
ス)の書き込みあるいは制御コマンドを特別につくった
通信ネットワークのスイッチとバスシステム(詳細は後
述)を通じて繰り返すことによって実行される。光、同
軸、その他の最近入手可能となってきた伝送誤り率の低
い改良された伝送システムにより、ネットワーク全体に
わたってメモリーバスに書き込み要求を繰り返すだけの
ことによってネットワークのインタープロセッサー通信
を可能にするようになってきた。仮想共有メモリーの能
力の物理的な実現は、図3に示された種々の物理メモリ
ーとネットワークインターフェースなどからなるアダプ
ターカード30においてなされる。アダプターカード
は、OSやノードのメモリーアドレスの翻訳アーキテク
チャには無関係に、ネットワークに存在するノードに挿
入して使われるように設計されている。現在計画されて
いる好ましい実施例は、さらに以下に述べられる本発明
のスイッチやバスの相互接続システムを含んではいるけ
れども、アダプターカードを特別のポートやバス配列を
経由して接続する必要はない。アダプターカード30の
物理的要素は以下のとおりである。3つの形の物理メモ
リーはひと組の制御とステータスレジスター31、デー
タロケーションメモリー32、ページ翻訳テーブルメモ
リー33を含んでおり、またネットワークインターフェ
ースは入力FIFO34、出力FIFO35、リンクハ
ードウエア36からなっている。アダプターは入力なら
びに出力FIFOでリンクハードウエアと呼ばれている
入力あるいは出力シリアルネットワークを経て接続相互
通信ネットワークに接続されている。アダプターは、ノ
ードで、それにつながっているプロセッサー40にメモ
リーバス37を経て接続され、指定された範囲の物理メ
モリーアドレスに対して読み書きコマンドに応答するメ
モリーとしてメモリーバスとプロセッサーに現れる。ア
ダプター上のレジスター、ページテーブル、ならびに、
データなどのロケーションメモリーが順次、プロセッサ
ーに対してすべてメモリーカード上で単に別々のメモリ
ーロケーションとして現れる。
【0015】以下に、アダプターの複数の素子やそれら
の素子の機能などについて、特に図3と図4を参照して
詳しく議論する。これらの図中では、共通の参照番号が
用いられている。リンクハードウエア36がアダプター
を、したがって、ノードを物理的にネットワークに接続
する。リンクハードウエアは、そのアダプターとそれに
関連するノード/プロセッサーについての点から点への
フローの制御、光電変換、短いコマンド復号、ならびに
ハードウエアの伝送エラーの検出機能などのすべてを行
うので、ネットワーク機能の重要な部分となっている。
リンクハードウエアは、入出力FIFOを通じて光信号
をアダプターにリンクすることのできる何等かの最新の
ハードウエアを使うことによって実現することができ
る。エレメント、即ち伝送メッセージのデイジタル要素
が入力FIFO34から出てゆくとき、それらはメッセ
ージにまとめられ、アダプターカード上で処理される。
エレメントが入力FIFO35から出てゆくにつれて、
それらはリンクハードウエアを通してネットワークに送
出される。入出力FIFO34と35はシーケンシャル
なバッファーであり、スタート/ストップのフロー制御
方式を用いて、アダプターのネットワークポートを通じ
て情報の流れを制御する。入力ならびに出力FIFOの
それぞれについて、そのいずれかひとつについてだけを
図に示した。しかし、そのノードとネットワークの要求
によって決められるときは、アダプターハードウエア中
にそれぞれ1個以上のFiIFOロケーションがあって
もかまわない。ネットワークからメッセージが届くと、
それらは、図4中に例として44、45で示すようにシ
ーケンシャルに、FIFO中に待ち行列をつくる。種々
の送信源からのメッセージがネットワーク中で相互に挿
入された形になるなるだろうが、受信の順番はバッファ
ーによって保存される。カードが入力FIFOからメッ
セージを出してゆくにつれて、制御レジスター31ある
いはメモリー32はメッセージの内容にしたがって更新
されてゆく。プロセッサーからカードにメモリーとレジ
スターの書き込みが発せられると、それに対応したネッ
トワークパケットが、自動送信のために出力FIFO中
に、説明の目的で45、55として示したロケーション
で待ち行列をつくって並ぶ。
【0016】図3中の制御・ステータスレジスター31
はハードウエアの制御に対するメモリーマップされたユ
ーザーインターフェースである。このレジスターは、ネ
ットワーク上の個々のハードウエアに一義的に割当てら
れた無符号の識別用整数(UIDと呼ばれる)をそれぞ
れがもつ読み出し専用レジスターを含んでいる。このU
IDは、それがネットワークハードウエア上の各ハード
ウエアに一義的である。このUIDはネットワークハー
ドウエアを管理、制御するためにネットワークソフトウ
エアによって用いられるものであるから特に重要であ
る。動作時、すべての制御メッセージ(下に、詳しく述
べられるように、ダイナミックな再構成用のもの)はネ
ットワークアドレスとしてのUIDを用いてルート決定
がなされる。他のコマンドメッセージも、目的とする受
信者をはっきりさせるために、かならずUIDが付けら
れる。UIDを付けられたネットワークハードウエア構
成要素は、どれも同一のUIDを持つことはない。UI
Dの値のうち、あるものの値(複数)は特別であって、
どれか一つのネットワークハードウエアに割当てられる
ことなく使われる。この場合は、単独のUID値の一致
を見るのではなく全てのUID値の一致を見るように使
われ、また、コマンドパケットのルート決定用UIDの
マッチは見ないようにする。制御及びステータスレジス
ターがUIDを読み出したり、入出力FIFOをイネー
ブルにしたり、コマンドをネットワーク全体に送り出し
たり、ページテーブルへのエントリーをリセットしたり
するのに使われる。制御ならびにステータスレジスター
31の定義ならびに動作は、特に本発明において新しい
ものではない。先にも述べたように、それの特徴につい
ては、当該技術分野では周知であり、それを不必要に詳
細に述べることは本発明の新規性の詳細をかえって不明
瞭にするだけである。図3、あるいは、図4にさらに詳
細に示してあるように、31中では、たとえば、「ロケ
ーション」レジスター、すなわち、レジスター41、5
1、61中には、レジスター値がしまわれており、同様
に、データロケーションメモリーは42、52に中には
メモリー値がしまわれており、また、ページテーブル中
には物理ページ数と仮想メモリーアドレスの順序化され
た対からなるエントリーがたとえば、その43と53に
しまわれている。入出力FIFOは、それぞれ、ロケー
ション44、54、ならびに、45、55を持ってお
り、それらは、各エントリーが1個のネットワークパケ
ットに対応しているごときエントリーの待ち行列をしま
っている。各レジスターに固有の詳細なる項は、以下の
本発明の動作についての記述の明確性を保持するため
に、当該技術分野に精通した人にゆだねるが、それら固
有のレジスターの内容に関しては、ある仮定を設定して
おく。特に、図3中の51で示したレジスター0は、ア
ダプターのUIDをしまっている読み出し専用レジスタ
ーであり、61で示したレジスター1はアダプターのア
ドレシングモードを、仮想あるいは物理アドレシングに
かかわらず、表わすコードだけをしまっているレジスタ
ーである。
【0017】SVMアドレス空間にマップされたデータ
ロケーションメモリーのロケーションをもつことに加え
て、ステータスと制御のレジスターとロケーションのペ
ージテーブルもSVMアドレス空間にマップされる。制
御とステータスのレジスターは物理メモリーアドレスの
最初のセットにマップされる。物理アドレスの次のセッ
トはページテーブルにマップされる。残りの物理アドレ
スはデータロケーションメモリーにマップされる。レジ
スターと全ページテーブルをSVMアドレス空間にマッ
プすることの利点は、ネットワークのノードがレジスタ
ーやページテーブルにアクセスしたり書き込んだりする
ことについて統一的な方法を持つだろうということであ
る。データ更新のために、各ノードのレジスターやペー
ジテーブルのすべてを一セットのSVMアドレスにマッ
プすることは最大の利点である。このことがネットワー
クに対してダイナミックな再構成の能力をもたらすこと
を可能なものとし、それによってハードウエアやプログ
ラムの全面的な変更なしに、ルート決定やプロトコルを
その動作中に変更することができる。図3、4中の32
の番号を付したデータロケーションメモリー、(以下こ
れを「メモリー」と呼ぶ)はこのような分散メモリーの
収納と取り出しの両機能を実行する。メモリー32は、
それのノードのホストプロセッサー40から、あるい
は、ネットワークから、のいずれからの更新の要求をも
受け付けることができる。典型的には、共有メモリーに
対するボード上でのアービター(アービトレーション)
は十分速いので、ネットワークアダプターはホストプロ
セッサーの標準メモリーサイクルの遅延の範囲内でメモ
リー要求に応答することができるが、アービター(ar
biter)の速度は他の実施例では変わることがあ
る。ホストプロセッサー40はメモリー32の内容を直
接読むことができなければならない。メモリー32に接
続されたネットワーク上のノードは、コマンド要求を介
して間接的にメモリーにアクセスしさえすればよい。以
上に検討してきたレジスターロケーションを用いて、メ
モリーページのアドレスは、相互接続されたノードで、
それに附属するアダプターのページテーブル中にインデ
クスされる。各ノード内のメモリー中のデータの仮想あ
るいは物理アドレスのいずれをも指定することができ
る。インデクスの動作は、プロセッサーがそれのロケー
ションにおけるメモリー値を変更するか、それのメモリ
ーの階層におけるデータのロケーションを変更する時に
生成されるページテーブルに対して更新を行いながらで
きるようにダイナミックなものでなければならない。こ
のような更新は、メモリーかページテーブルレジスター
への書き込みによって行われ、その後に関連する各ノー
ドに対して広範囲に送出されるようになっている。
【0018】図3、4中で33と番号を付したページテ
ーブルは、仮想メモリーアドレスモードで、SVMアド
レスと物理メモリーアドレスとの間での翻訳をおこな
う。ネットワークアダプターは、物理ならびに仮想の2
つのアドレスモードを持っている。物理アドレスモード
において、ネットワークパケットアドレスと言うのは目
標のメモリーロケーションの物理アドレスであり、たと
えば、メモリー32のロケーション52と言うように使
う。したがって、アドレスを翻訳する必要はない。それ
に対して仮想アドレスモードでは、送出されるネットワ
ークパケットの仮想アドレスは物理アドレスをインデク
スとして使ってページテーブルから導出しなければなら
ない。もし、ページテーブルのルックアップが不成功に
終わったならば、パケットは発生もされず、ネットワー
クに送出されることもない。入ってくる仮想メモリーは
また、受信ノードのページテーブル中でのそれに付随す
るルックアップによって、物理メモリーアドレスに翻訳
される。図5はページテーブルにしまわれている情報の
フォーマットを示している。そこには、「p」個のエン
トリーが示されており、各内容は、「保護」、「有
効」、「変更」、「メモリー」、「ソフトウエア使用可
能」、および、「アドレス」の各ビットからなってい
る。保護ビット60はホストプロセッサーに対して物理
メモリーのページならびにSVMのページに対してメモ
リー保護の方式を拡張することを許可するものである。
有効ビット62はページテーブルのエントリーが現在、
物理アドレスと仮想アドレスとの間の有効なマッピング
であるかどうかを示すものである。変更ビット64はホ
ストあるいはネットワークのいずれかからマップされた
ページに対して書き込みが起こったかどうかを示すもの
である。メモリービット66はマップされたページがメ
モリーにおけるページであるかマッピングレジスターあ
るいはページテーブルの格納に使われたページであるか
を区別して示すビットである。ソフトウエア使用可能ビ
ット68はノードにとって利用可能なページテーブルメ
モリーであり、特定の動作を実行するためのシステム符
号である。エントリーのアドレスビット69は物理メモ
リーの各ページに対応する仮想メモリーのアドレスをし
まっているビットである。ここでは説明の簡明性のた
め、上に述べてきたフォーマットを好ましい実施例に対
して使用可能なフォーマットとして与えた。しかしなが
ら、別途の必要性がある場合、このレベルでの何等かの
変更を上のフォーマットに組み合せることが容易である
ことは当該分野に精通している人にとって容易に認め得
ることである。
【0019】関連するプロセッサーへのメモリーバスを
介してのアダプターへの接続、ネットワークバスからリ
ンクされているハードウエアへの接続などは、システム
の構成要素に必要な結合と光電変換の能力を提供できる
ものでさえあれば、どのような現状技術の接続法であっ
てもかまわない。以上に述べてきたネットワークアダプ
ターはごく一般的なネットワークに接続することができ
る。しかし、ここでいう共有メモリープログラミングモ
デルは、データパケットが送り出されたのと同じ順序で
目標のメモリーに配達されることを要求している。ある
種の光スイッチングネットワークはこの要求を満たすこ
とができるが、一般用ネットワークは、パケットシーケ
ンス保持などの付加的ハードウエアの追加がなければ、
このような性質を保証しているものではない。上に述べ
てきた、本発明のアダプターを接続するのに適した好ま
しいスイッチングネットワークが図6に示されている。
このスイッチングハードウエアの新しい特徴には、アド
レス翻訳にもとづくダイナミックなテーブルでドライブ
されるデータパケットのルート決定、分布するスパニン
グツリーの計算とその維持、メモリーマップされたスイ
ッチポート制御とダイナミック制御、ならびにステータ
スレジスターの遂行などがある。アダプターカード30
はスイッチポート70を介して本発明のスイッチ72に
接続されている。したがって、スイッチポート70の入
力ポート74はアダプターカード30の出力ポート35
にファイバーで接続されている。同様に、スイッチポー
ト70の入力ポート75はアダプターカード30の入力
ポート34に接続されている。この好ましい実施例で
は、ネットワークアダプターは点から点への(ポイント
・ツー・ポイントの)ファイバー光リンクを通してスイ
ッチングネットワークに接続される。原理的には、アダ
プターの接続として、他に無線、ツイストペア線、赤外
線、あるいは、同軸ケーブルなどのリンクを採用するこ
とができる。図6のスイッチングネットワーク72は多
数のポート、例えば、70、79、80などからなって
おり、それらはすべてはバスを共有し、各ポートデータ
伝送の要求に対してサービスするために時分割多重を用
いている。スイッチ72は、必要に応じてカスケード接
続のネットワークを形成するため、他のスイッチシステ
ムや多数のスイッチに接続されてもよい。スイッチポー
ト79、80はアダプターやスイッチハードウエアに任
意に接続してもよい。スイッチポートは、それらが接続
されているハードウエアとは独立に、いずれも同じよう
に動作する。スイッチ72は、共通バス77を通して接
続されている一連のスイッチポートたとえば70、7
9、80などからなっている。各スイッチポートは、こ
こでは説明のために70についていうと、ページテーブ
ル73、ステータスならびに制御レジスターのセット7
1、内部バス77へのインターフェース78、入力およ
び出力FIFO74、75などからなっている。ネット
ワークへのアダプターの接続と同様に、入出力FIFO
は、リンクハードウエア(LH)と表わされている回路
76を介してネットワークファイバーに接続されてい
る。
【0020】図6のスイッチポート70の制御・ステー
タス・レジスター71はスイッチポートの制御のための
ネットワークへのインターフェースである。レジスター
には、スイッチポートのUIDのごときスイッチ構成、
バス77上の多数のスイッチポート、それぞれのポート
のアダプターハードウエアのUID、ならびに、スイッ
チポートの最大データ伝送速度、などの情報がしまわれ
ている。ポート70の中で符号73で示されているスイ
ッチページテーブルは、ネットワークを通じてのルート
・トラフィックの物理ならびに仮想アドレスモードの両
方に使われる。図7はスイッチポートページテーブルの
構成を示している。保護、有効、変更、メモリー、ソフ
トウエア使用可能、ならびに、アドレスの各ビットがア
ダプターに付随しているページテーブルにおけると同様
の目的に用いられる。スイッチングポートのページテー
ブルにしまわれているアドレスは、物理的、仮想的、あ
るいは、物理的と仮想的の両方の混合のいずれであって
もよい。はいってくるデータパケットのアドレスは、付
随するページテーブルのルックアップで「n」ビットの
ベクトル67を得るのに用いられる。「n」ビットベク
トルは、バス77を共有している多くのポートのいずれ
がデータパケットを受け取る目標とされているかを見分
けるのに使われる。もしあるページのnビットベクトル
があるローカルのスイッチポート70を目標としている
ことが見分けられたら、そのポートの制御ならびにステ
ータスレジスター71とページテーブル73にそのペー
ジがマップされるということが書き込まれる。もし、ス
イッチポート70が(ポート79に付随するnビットベ
クトル空間の「1」によって)ポート79を示すnビッ
トベクトルを持ったページを見つけると、そのページへ
のすべての書き込みはポート79のレジスターとページ
テーブルを更新するだろう。スイッチポートの入力なら
びに出力のそれぞれのFIFO、74、75は、アダプ
ターカード中のそれらの対応部分と同様にポートを通る
情報の流れを制御する。入力FIFO74に接続された
リンクハードウエアによって受信されるネットワークパ
ケットは入力FIFO中に待ち行列をつくり、シーケン
シャルに進んで、最後にプロセス用のスイッチポートの
働きで行列から跳び出てゆく。ポート70から送り出さ
れるネットワークパケットは出力FIFO75中で待ち
行列をつくり、シーケンシャルに進んで、最後にバス7
7全体への伝送のために、送り出しリンクハードウエア
へ渡される。
【0021】スイッチ内部バス77はスイッチポート、
たとえば、70、79、80などの間の多方向送出パケ
ットを運ぶ役目をもっている。スイッチバスのトランザ
クションは基本的には円形署名状形式(round r
obin)のバスアービター方式で実行される。ポート
がバスを取得するとき、それはまず目標ポートのnビッ
トベクトルをバスへと渡す。すべてのポートがバスをモ
ニターしているので、目標ポートはバス上にトランザク
ション中止の信号を送り出すことによってパケットの受
信を拒否することができる。送信ポートが何の信号も受
け取らなければ、データパケットがバス上に送り出さ
れ、各目標ポートによってラッチされ、それらの入力F
IFO中に待ち行列をつくる。メモリービットは、普
通、目標のUIDがそれらのページテーブル中のパケッ
トアドレスをルックアップするかしないかを知ることが
できるように、データパケットと共に送り出される。例
えば、スイッチポートレジスターならびにスイッチポー
トページテーブルへの書き込みは、附属のアダプターロ
ケーションに向けられた書き込みとは違って、ルックア
ップを必要としないだろう。本発明をその動作につい
て、更に以下に述べてゆく。既に「背景」の節で述べた
ように、多方向送出更新を行うことによってネットワー
ク遅延時間を大幅に削減でき、使用プロセッサーの数を
最小に抑えながら、ネットワークの完全性を維持するこ
とができるだけでなく、仮想共有メモリーの最終目標
も、本発明によって実現可能となる。仮想共有メモリー
については既に述べたように、一つのノードに付随する
仮想メモリーは、それの物理あるいは仮想共有メモリー
アドレス空間から分離されている。分布しているノード
間のネットワーク通信は、図2を参照して既に一般的に
議論したように、目標ノードに割当てられた仮想メモリ
ー空間の中に 「マッピング」することによってなされ
る。すべての通信がメモリー書き込みの形をとり、プロ
セッサー書き込みの副作用として、あるいは、それ自身
のローカルなアダプターの仮想メモリー空間へのプログ
ラム書き込みとして、発生する。コマンドパケットや制
御レジスター更新のような、付随的なノード間情報転送
もまた、制御ならびにステータスレジスターやページテ
ーブルのネットワークアドレスに割当てられたSVM空
間へのマッッピングによって達成される。
【0022】メッセージには、アダプターカードによっ
てネットワークへの送り出しと応答の両方ができる2つ
のタイプのメッセージ、すなわち、コマンドメッセージ
とデータメッセージとがある。コマンドパケットは、制
御レジスターを更新したり、遠隔地のアダプターカード
からの応答を引出したりするために、2つあるいはそれ
以上のネットワークアダプター間のデータの伝送を支援
するものである。コマンドパケットは点から点へのフロ
ーの制御(ショート・コマンド・パケットで)を行い、
ネットワークシステムのエラー検出・修復を行い、通信
チャンネルを確立し、ネットワークアダプターハードウ
エアからのステータスレポートを獲得し、且つ、ネット
ワークをダイナミックに再構成(長いコマンドパケット
で)するのに使われる。更に以下に議論するように、短
いコマンドの実行は長いコマンドの実行と異なる。短い
コマンドは決してリンクハードウエア36から入力FI
FO34に入ることはない。かわりに、リンクハードウ
エア36は短いコマンドを実行するか、または入力FI
FO34をパスさせるかする。データメッセージあるい
はパケットはアダプターメモリーに対する更新を行わせ
る。ある状況下では、制御ならびにデータメッセージ
は、メモリーバス上のDMA(ダイレクトメモリーアク
セス)素子の働き、自動ネットワークフロー制御、FI
FO管理、あるいは、遠隔ネットワークアクセス動作、
などによって間接的に発生させられる。コマンドパケッ
トのための一つのオペレーションフォーマットの例を下
の表1に示す。
【0023】
【式1】 短いコマンド 長いコマンド データ ヘッダー(1) ヘッダー(1) ヘッダー(1) エラー(2) UID(8) アドレス( ) トレーラー(1) アドレス( ) 日付け( ) データ( ) エラー( ) エラー( ) トレーラー(1) トレーラー(1)
【0024】上表の中で、括弧の中の数字は各フィール
ドのバイト長を表わしている。可変長のフィールドは括
弧内に数字を付けずに示した。各パケットの先頭バイト
は、そのパケットのその他の部分のタイプ(コマンドで
あるかデータであるか)、サイズおよびフォーマットを
決めるヘッダーである。もしパケット中にアドレスフィ
ールドがあるならば、ヘッダーの中のビット1はアドレ
スが直接、物理メモリーアドレスを指すのか、あるい
は、間接的に仮想メモリーを指すのかを指示する。仮想
アドレスへの翻訳は、アダプターハードウエアに対して
ローカルのページテーブルにアクセスするように要求す
る。長いコマンドパケットのUIDは、上に議論したよ
うに、64ビットから成っており、それによってハード
ウエアの各単一要素を一義的に指定するものである。実
行可能なオペレーションは二つのポート、すなわち、図
3、4のメモリーバスインターフェース38あるいはリ
ンクハードウエア36のうちのいずれか一つを通ってネ
ットワークに到着する。以下に述べるオペレーションは
すべてそれらの実行中、アダプターに対して独占的なア
クセスを要求する。したがって、アダプターメモリーバ
スオペレーションの実行により、FIFOはパケットの
受け付けや待ち行列づくりの受け付けを続けるけれど
も、入力FIFO34からのそのオペレーションのフロ
ーは一時的にシャットダウンされる。逆に、入力FIF
Oからのネットワークパケットの実行により、入ってく
るホストメモリーのトラフィックが一時的にブロックさ
れる。ホストプロセッサーは、その動作のすべてについ
て中断されるのではないが、ネットワークから発生した
オペレーションの期間はそれのアダプターにアクセスす
ることができない。アダプターカードの関与するオペレ
ーションには次の5つの基本的なものがある。 1)プロセッサーのアダプターメモリーの読み込みある
いは書き込み、 2)ホスト素子ブロックのアダプターメモリーの読み込
みあるいは書き込み、 3)プロセッサーのページテーブルあるいはレジスター
の読み込みあるいは書き込み、 4)ネットワーク素子の書き込みあるいはブロック書き
込みの実行、 5)ネットワーク素子のページテーブルあるいはレジス
ターへの書き込み。 最初の三つの基本的なオペレーションにこいて、ホスト
プロセッサー40、あるいはDMA素子はメモリー3
2、ページテーブル33、あるいは、制御ならびにステ
ータスレジスター31に、メモリーバス37に沿った読
み込み、書き込みを通じてアクセスする。ホストプロセ
ッサーあるいはDMAは物理アドレスを供給し、書き込
みの場合は、単数あるいは複数の値を更新する。最後の
2つのオペレーションは、ネットワークパケットが例え
ばリンクハードウエア36を介して入力ポートに到着し
たとき実行される。ネットワークパケットの実行は、そ
れがデータであるかコマンドであるかにかかわらず、メ
モリー32、ページテーブル33、あるいはレジスター
31に対する更新をすることになってもかまわない。
【0025】最初のオペレーションにおいて、プロセッ
サー40はアダプターメモリー32に対して読み込み書
き込みの指示を行う。コマンド「読み込み」(52)は
プロセッサー40がロケーション52をメモリー32か
ら読み込むとき実行される。コマンド「書き込み」(5
2,a)で、プロセッサー40は同時に値aをメモリー
32中のロケーション52に書き込み、ネットワークを
通じての最終的な送信のために出力FIFOにメッセー
ジ「書き込み」(52,a)の待ち行列をつくる。物理
アドレスモードにおいては、アドレスに対して用いられ
る値がメモリー32中のメモリーロケーション52の物
理オフセットに対応し、メッセージ「書き込み」(5
2,a)が送り出される。仮想アドレシングモードにお
いては、コマンド中のアドレス値がメモリー32中の物
理アドレス52に対応しているページテーブルエントリ
ーPT(52)であり、メッセージ「書き込み」(PT
(52),a)が送り出される。仮想メモリーアドレシ
ングオペレーションに対する実際のオペレーションのシ
ーケンスを以下に詳しく述べる。まず、書き込みコマン
ドがメモリーバス接続38上のプロセッサー40から書
き込みコマンドを持って到着する。アダプターカードは
この書き込みコマンドをデコードし、メモリー32中の
指定したロケーション52に新しい値、例えばaを入れ
ることによってメモリー32を更新する。アダプターカ
ードはここで、物理メモリーページに対応するSVMの
ページアドレスをルックアップする。アダプターカード
は、パケットに付随しているヘッダーフィールドによっ
て指示されている仮想アドレシングモードであるか物理
アドレシングモードであるかを反映する物理レジスター
61を参照し、それによって、それが仮想アドレシング
モードにあることを決定する。つぎに、アダプターカー
ドは、ページテーブル33からのSVMページアドレス
によって決定されるアドレスを持ったネットワーク書き
込みパケットをつくり、ルックアップし、出力FIFO
35中にこのパケットのページオフセットと待ち行列を
つくる。この時点で、アダプター上での書き込みコマン
ドの実行はホストプロセッサーの立場から完了したもの
と見做され、したがって制御はホストに返される。最後
に、ネットワーク書き込みパケットがFIFO35を通
過した後、パケットはリンクハードウエア36を通して
送り出される。もし書き込みが物理アドレスモードで実
行されるならば、物理アドレスをページテーブルによっ
て翻訳する必要はない。物理アドレスはネットワークデ
ータパケット「書き込み」(52,a)でネットワーク
に送り出される。
【0026】詳しく述べなければならない次のオペレー
ションはホストデバイスブロックのアダプターメモリー
に対する読み込みと書き込みである。まず、図示されて
いないDMAデバイスが、メモリーバス37上にコマン
ドを送り出すことである。ブロック書き込みでは、コマ
ンドは一つのアドレスからなり、その後に任意のバイト
数のデータがつづく。アダプターでこれを受け取ると、
メモリーバス接続38を通り、DMAデータは目的ロケ
ーションのメモリーを更新するのに使われる。この時点
で、DMAはアダプターに対して優先的制御権を持って
いる。メモリーロケーションが更新されている間に、ア
ドレスと更新値をしまっているネットワークパケットが
つくられる。もしレジスター61が、アダプターは物理
アドレシングモードであると示している場合には、ペー
ジテーブルのルックアップは行われない。そして、パケ
ットは出力FIFO35に待ち行列を作る。ネットワー
クパケットが出力FIFO35にしまわれた後、アダプ
ターハードウエアはホストメモリーバス37上に、DM
A書き込みが完了し、制御がホストプロセッサーに返さ
れた旨の信号を出す。最後に、ネットワークパケットは
出力FIFO35を通って流れ、ネットワークに送り出
される。仮想アドレシングモードにおけるブロック書き
込みの場合には、物理アドレスはページテーブルを経て
翻訳されることになる。ネットワークパケットとして送
り出された仮想アドレスはPT(52)である。制御な
らびにステータスレジスター31、ページテーブル33
において、それらの内容はホストプロセッサー40によ
って単にメモリーとして読み込まれ且つ書き込まれる。
このようにして、特定のレジスターとページテーブルの
内容が、アダプターハードウエアによって認識された物
理アドレスを使って、ホストプロセッサーによってアク
セスされる。制御ならびにステータスレジスターに対す
る書き込みは潜在的に重要な副作用を持っている。しか
し、ページテーブルに対する更新は、ネットワーク全体
に対して更新の再送出が起こり得るということ以外には
特別な副作用を持たない。各プロセッサー40はネット
ワークアダプターに対して読み込み書き込み制御レジス
ター/ページテーブル命令を次のように実行する。ま
ず、ホストプロセッサー40がレジスター、たとえば3
1、に対して、メモリーに対して使われたのと同じコマ
ンド、たとえば、「書き込み」(51,UID)を使っ
て書き込みを行う。制御ならびにステータスレジスター
とページテーブルはメモリー32とははっきりと異なる
物理メモリーアドレスにメモリーマップされるだけであ
る。次に、書き込み値UIDは適当なロケーション、こ
の例では51、にしまわれる。レジスターの更新は、場
合によっては、たとえばこの例のように、ネットワーク
に対して長いコマンドパケットの送出といったような副
作用をひきおこす。長いコマンドパケットが生成されF
IFO中に待ち行列をつくると、次に、バス更新オペレ
ーションが完了しているので、ネットワークアダプター
30がメモリーバス37を通してホストプロセッサーに
信号を送る。制御はここでプロセッサーに返される。最
後に、コマンドパケットが出力FIFO35を通してネ
ットワーク全体に送り出される。仮想アドレスモードに
おいては、レジスターあるいはページテーブルメモリー
はページテーブルの内容によってネットワーク上にマッ
プされる。この場合、ホストプロセッサーによって一つ
の値がレジスターまたはページテーブルに書き込まれた
ときに、仮想アドレスPT(51)と更新値を用いてネ
ットワークデータパケットが生成される。このデータパ
ケットは、どんな長いコマンドまたはデータパケットが
副作用として発生されるとしてもその発生以前に、出力
FIFO35の中に入れられる。更新によって発生され
た最後の副作用のパケットがFIFO35中に待ち行列
をつくってはじめて制御がホストプロセッサーに返され
る。副作用として発生されたパケットが短いコマンドパ
ケットであるならば、プロセスはかなり短いものであ
る。コマンドレジスターが更新され、短いコマンドパケ
ットが生成されたのち、コマンドパケットはFIFO3
5をスキップし、リンクハードウエア36に直接出てゆ
く。
【0027】リンクハードウエア36を通ってアダプタ
ーに到着したネットワークオペレーションは、上述の短
いパケットの場合以外、FIFO34中に待ち行列をつ
くる。データメッセージは、それらの各アダプターカー
ド上のプロセッサーによる遠隔地点のノードでの書き込
みに応じて、物理メモリーロケーション32を更新する
のに使われる。仮想アドレシングモードでは、データメ
ッセージは制御ならびにステータスレジスターやページ
テーブルを、ページテーブルが適正にセットされている
ものとして、更新する。すべてのデータメッセージのル
ート選択はページテーブルルート選択を用いてスイッチ
ングネットワークを通しておこなわれる。ブロック書き
込みと非ブロック書き込みとの差は小さいので、詳細は
ブロック書き込みの例についてのみ述べておく。ブロッ
ク書き込みネットワークパケットは信号到来側のネット
ワーク伝送線に到着すると、物理アドレシングモードか
仮想アドレシングモードかを表わすヘッダーのバイトが
必要になる。この例として、仮想アドレシング状態が
「表示」され、その結果、到着SVMパケットに対して
付随するページテーブルのルックアップが要求される。
まず、到着パケットはリンクハードウエア36によって
受信される。次に、データパケットは入力FIFO34
中に待ち行列をつくる。パケットは入力FIFO36を
通過した後、デコードされ仮想アドレスはページテーブ
ルを通して付随するルックアップを行うことによって翻
訳される。アドレスの解読において、物理メモリーペー
ジ数を得るのにSVMページのインデックスが参照され
る。最後に、ルックアップによって得られた物理アドレ
スを用いて、アダプターカードがメモリー32に対して
データのブロックを書き込む。仮想アドレシングモード
においては、到着するパケットのアドレスは、ページテ
ーブルの内容に応じて、レジスター31、ページテーブ
ル33、あるいはメモリー32に対する更新を指示す
る。このようにして制御レジスターに対してなされた更
新は、コマンドパケットの発生を引き起こし、それは出
力FIFO35中に待ち行列をつくるだろう。その例
は、システムのダイナミックな再構成中に見られる。そ
うして、それによって、一つのコマンドパケットの実行
はネットワーク全体に送り出されるコマンドとデータの
両方のパケットの生成を必要とするだろう。メモリー3
2に対するネットワークの更新は、一般に、ネットワー
クパケットの生成を引き起こさない。
【0028】ネットワークブロック書き込みオペレーシ
ョンを実行するとき、ホストメモリーバス37は、ブロ
ックオペレーションが実行されている間、延長されたピ
リオドの間ブロック化される。ブロック書き込みネット
ワーク上での実行中のプロセッサーにローカルアダプタ
ーメモリーの参照を許す一つの方法は、ネットワークブ
ロック書き込みでローカル読み込みと書き込みをインタ
ーリーブすることである。ホストメモリーバスからのネ
ットワークアダプターメモリー書き込みを一時バッファ
ーに待避することも有効だろう。最後に、ページテーブ
ルあるいはレジスターへのネットワーク書き込みの詳細
を述べる。選択されたセットのコマンドレジスターへの
プロセッサー書き込みに応じて、コマンドメッセージが
生成され、ネットワークに送り出される。ホストプロセ
ッサーは、目標UIDを指定することによって、コマン
ドに対する目標を選択する。UID値は、コマンドパケ
ット中の最初のアーギュメントとして送り出される。コ
マンドパケットは、スタートアップで計算されたスパニ
ング・ツリーにしたがってアダプターネットワークを通
って、そのルート選択がなされる。コマンドメッセージ
が入力FIFO36から出ていくときに、それはレジス
ターコピーあるいはレジスター書き込み機能の実行を引
き起こす。この例では、コマンドは、register
write( )である。もし受信されたコマンドが
これとは違って、regcpy( )であるならば、プ
ロセシングにおける唯一の違いは 、register
write( )のプロセシングとはその副作用が違
う、ということである。register write
( )では、第一に、コマンドパケットがリンクハード
ウエアによって受け取られる。第二に、コマンドパケッ
トは入力FIFO36中に待ち行列をつくる。そうし
て、FIFOを通過した後、コマンドパケットはFIF
Oから出てゆき、そのフィールドが分析される。そこ
で、もしコマンドパケットUIDがレジスター51中の
値に一致すれば、そのコマンドが実行される。コマンド
の実行は、コマンドのアドレスのアーギュメントリスト
中で指定されたレジスターが指定値に更新される間、ロ
ーカルメモリーバスの中断を強制する。レジスターへの
書き込みは、そこで、書き込まれた値、更新されたレジ
スター、およびその他のレジスターの内容に依存した副
作用を引き起こす。ある場合には、制御レジスター更新
の副作用は、出力FIFO35中にネットワークパケッ
トを生成し待ち行列をつくることである。
【0029】データパケットのルート選択は、データパ
ケットのSVMアドレスを、たとえば、図6中のスイッ
チングネットワークポート70に含まれているプレロー
ドされたページテーブル73などによって、ルート選択
情報に翻訳することによってなされる。アドレス翻訳か
ら得られたルート選択情報は図7の67にnビットのベ
クトルとして示されているものであり、それは内部バス
77上の目標スイッチポートを指定するものである。ス
イッチングネットワーク、たとえばバス77上を流れる
データパケットは、目標ポートを見つけるのに、各ポー
トたとえば、70、79、あるいは80において、各1
ページ分のページテーブルのルックアップを必要とす
る。各スイッチポートのページテーブルの内容は読み込
み可能でかつ書き込み可能となっており、それによっ
て、種々のデータ伝送要求が受け付けられ、ネットワー
ク全体にわたるデータパケットの伝送が制御される。ス
イッチは2つのタイプのネットワークパケット、すなわ
ち、データパケットとコマンドパケットの両方(いずれ
も、短いのと長いのとがある)を受け付け、それらのパ
ケットを、メモリーマッッピング情報やUIDデバイス
アドレスによって指令されるように、そのスイッチによ
ってルート選択しなければならない。ネットワークのト
ポロジーを決定しページテーブルをイニシャライズし
て、それからデータパケットルート選択を行うために
は、コマンドを持つことが必要であるということから、
コマンドパケットのルート選択のメカニズムは、データ
パケットのルート選択のメカニズムとは違っていなけれ
ばならない。データパケットは、それらのパケットアド
レスならびにページテーブルにしまわれている情報を用
いて優先的にルートづけされる。短いコマンドパケット
は、あらかじめ計算されていた入力ならびに出力FIF
Oの両方をバイパスするところの、ネットワークスパニ
ングツリーによるコマンドパケットのフラッデイング
(充満)を専ら用いてルートづけされる。 スパニング
ツリーの各サイトにはツリー中のそれらの位置を示すた
めに、それぞれ1つのステータスレジスタービットをし
まっている。短いコマンドは、それが巡って行くネット
ワークの至る所のサイトでコマンドを実行する。しか
し、長いコマンドはネットワークスパニングツリーに従
って動き、ステータスならびに制御レジスターにしまわ
れているUIDがパケットのUIDフィールドにしまわ
れているデータとマッチするサイトでだけコマンドを実
行する。上に述べたように、各アダプターカードとスイ
ッチポートは、それらのステータスレジスター中にユニ
ークアイデンテイファイアーをしまっている。どの長い
コマンドも、ネットワークサイトのUIDと比較するた
めのUIDアーギュメントを含んでいる。すべての長い
コマンドパケットは、アダプターの入力ならびに出力F
IFOとスイッチポートを通して処理される。
【0030】スパニングツリーネットワークは、好まし
いコマンドのルート選択方法であって、それは、ネット
ワークを初期化したときと再構成したとき(たとえば、
新しいノードをネットワークに付け加えるなど)に計算
される。ネットワークスパニングツリーはアダプターカ
ードとスイッチポートに対応するサイトとネットワーク
ポート間のオペレーショナルリンクに対応するエッジと
からなる。スパニングツリーの目的は、ハードウエアに
対して、ネットワークがコマンドパケットで充満される
ことは許すけれども、コマンドパケットがネットワーク
中のサイクルによって、いつまでも再送出され続けるこ
とがないようにすることである。スパニングツリーが計
算された後、各スイッチポートは、それぞれの中の一つ
のレジスターで、それがツリーのインテリアーサイトで
あるかあるいはリーフサイトであるか、を記録する。も
しポートがリーフサイトであるならば、コマンドパケッ
トはそのポートのリンクハードウエアから再送出される
ことはない。もしスイッチポートがインテリアーサイト
であるならば、コマンドパケットはそのポートのリンク
ハードウエアから再送出される。ネットワークスパニン
グツリーを自動的に計算しそれを維持することの利点
は、以下の通りである。すなわち、ネットワークのトポ
ロジーに依存せず、ハードウエアの障害から自動復帰で
きる、スイッチ間の多重パスルート選択が可能であるこ
と、ならびに、ダイナミックなネットワーク管理ができ
ること、などである。本発明の目的は、利用可能なメモ
リー管理資源を用いて、ルーチンなプロセッサー間通信
を簡単化できる一般的なネットワークの枠組みを提供す
ることである。共有メモリーをユーザーノードの仮想メ
モリー空間へマッピングすることにより、ネットワーク
ハードウエアデバイスへの標準的なインターフェースが
提供され、且つネットワークに依存しないアプリケーシ
ョンの開発が促進される。カーネルに要求されること
は、ローレベルのネットワークイニシャリゼーション、
トラップと既定値のハンドリング、ならびにプロセスの
動作時のコンテクストのローレベル操作などを含むネッ
トワーク通信の機器に依存する面を取扱うことである。
ホストノードによって提供されるメモリープロテクショ
ンの機能は、ネットワークカーネルによって提供される
サービスを通してSVMネットワークメモリーにまで拡
張される。しかし、プロテクションの実行は、ホストの
オペレーテイングシステムがメモリープロテクションを
実行しない場合に限られる。
【0031】標準的な仮想メモリーの管理サービスは、
もし必要とあれば、ネットワークの接続制御が自動的に
達成されるよう、以下に詳細を述べるように強化するこ
とができる。ページ障害ハンドラーならびにページテー
ブルは、SVMネットワーク仮想アドレスにマップされ
た仮想メモリーページを確立し確認するように修正され
る。これらの修正の効果は、ネットワークノード上で走
っているプロセスが随意にそれらの仮想メモリー空間の
大きな部分を共有できることである。したがって、プロ
グラマーに対して要求される唯一のつとめは、ノードの
仮想メモリーアドレス空間中に共有メモリーを割当て、
ネットワークパケットルート選択のために目標のSVM
仮想アドレスを提供する、と言うことである。新しいオ
ペレーテイングシステムのコールやライブラリーの機能
がこのコンテクストにおいて用いられるために開発され
てきた。ユーザーレベルのネットワークコマンドはすべ
て4つの新しいシステムコール、すなわち、vsmge
t( ),vsmat( ),vsmdt( )、なら
びに vsmctl( )にマップされる。これらの新
しいシステムコールは、機能的には、標準的なプロセッ
サー間通信共有メモリーシステムコール、shmget
( ),shmat( ),shmdt( )、ならび
にshmctl()に対応する。 int vsmget(vsmaddr, size,
flags); int size, flag; struct vsm vsmaddr; などのコールは、ネットワークを通してマップされたS
VMアドレスの一つの領域のアイデンテイファイアー
を、ユーザープロセスに返す。もし要求されたSVM領
域が現在マップされているものでない場合には、システ
ムコールはそのマッピングを確立しようとする。 int vsmat(id, addr, flag
s); int id, flags; char *addr; などのコールは、SVMアドレスの一つの領域をユーザ
ープロスの仮想メモリーアドレス空間にロジカルに付加
する。 void vsmdt(addr); char *addr; などのコールは、ユーザープロセスの仮想メモリーアド
レス空間からSVMアドレスの1つの領域を取除く。
【0032】最後に、 void vsmctl(id, cmd, vsmb
uf); int id, cmd; struct vsmtsb vsmbuf; などはSVMマッピングパラメータを操作する。その他
のすべてのネットワークオペレーションは、フロー制
御、エラー制御、接続の設定、セキュリテイの維持、な
どを含み、データ転送はプログラムメモリーの参照実行
の副作用として自動的に生じる。SVMネットワークの
機能は、ネットワークカーネルとして機能するプロセス
のセットによって管理され、そのカーネルはユーザープ
ロセスから保護することのできるアドレス空間内で走っ
ている。ネットワーク中の各サイトはそれのために働く
1つのローカルSVMカーネルを持っている。SVMネ
ットワークカーネルは次の基本的な機能を提供する。す
なわち、ネットワークのイニシャリゼーションと管理、
接続の生成、セキュリテイー、ならびにネットワークプ
ロセスに対するルート選択と同期などである。これらの
サービスに対するアクセスは一組のリモートプロシジャ
ーコールあるいはシステムコールを通して供給される。
SVMシステムコールは、ネットワークされたノードあ
るいはそれらのノード上を走っているプロセスが、これ
らのサービスをしなければならないインターフェースに
対してだけ行われる。SVMのネットワークのイニシャ
リゼーションプロセスは、SVMカーネルの1つをネッ
トワークに対するスーパーバイザーノードとして指定す
ることである。スーパーバイザーはネットワーク上のプ
ロセス間の共有メモリープロテクションを強化すること
を可能とするSVMアドレス空間のマップを維持する。
そのスーパーバイザーはまた新しいネットワーク接続に
対して利用可能なSVMアドレスの「空きリスト」を持
っている。そのスーパーバイザーは、ネットワークスイ
ッチ間のトラフィックをフィルターしたりノードからの
同期要求を受け付けたりするところの、スイッチングネ
ットワークルート付けテーブルをモニターし維持する。
【0033】SVM仮想メモリー管理システムのイニシ
ャリゼーションとオペレーションの一例は次のようなも
のである。すなわち、今、SVMNetアダプターに指
定された物理メモリーロケーションがキャッシュ機能を
持たず、また、ページテーブルの内容が仮想メモリーの
1ページがSVMNetの物理メモリーか標準的なDR
AMにマップされたかどうかを記録するものと仮定する
と、ページ障害ハンドラーはこの付加的なページテーブ
ル情報を使ってSVMネットワークからのページを再利
用することになる。基本的なSVMメモリー管理オペレ
ーションには、割当て、フリー、付加、削除がある。仮
想メモリーページをネットワークにマップすることは、
アダプターページテーブルを更新することとマップされ
たSVMページの更新コピーを得ることである。プロセ
ッサー Pが仮想メモリーページvmkを共有仮想メモ
リーページsvmiに割当てると、以下のステップが起
こる。 − カーネルがフリーのアダプター物理メモリーページ
pmlを得る。 − カーネルがノードPTの内容(vmk−to−pm
l,svmkマッピングインジケーター)を生成する − スーパーバイザーが、プロテクションをチェックし
た後、svmiを空きリストから割当てる。 − カーネルがアダプターPTの内容pml−to−s
vmiを生成する − スーパーバイザーがネットワークルート選択テーブ
ルを更新する − スーパーバイザーがvmkについてのsvmiペー
ジ内容を得る − カーネルが新しいノードPTをマークし、アダプタ
ーPTの内容を有効にする。
【0034】プロセッサーPjが仮想メモリーページv
mkを共有仮想メモリーページsvmiからフリーにす
ると、以下のステップが起こる。 − スーパーバイザーがネットワークルート選択テーブ
ルを更新する − スーパーバイザーがSVMの空きリストを更新する − カーネルがアダプターPTの内容pml−to−s
vmiを無効にし削除する − カーネルがノードPTの内容vmk−to−pml
を無効にし削除する − カーネルがpmlをアダプターの空きメモリーリス
トに返す。 プロセッサーPjが仮想メモリーページvmkを共有仮
想メモリーページsvmiに付加すると、以下のステッ
プが起こる。 − ノードPTの内容がvmk−to−svmiをマッ
プすることを、カーネルが確認する − スーパーバイザーが、svmiに対するプロテクシ
ョンをチェックする − フリーなアダプター物理ページpmlがあれば選択
する − スーパーバイザーがネットワークルート選択テーブ
ルを更新する − カーネルがvmkに対する古いアダプターPTの内
容を見つけ、vmk−to−pmlに対する更新をする − スーパーバイザーがvmkに対するページの内容を
得る − カーネルがノードのページテーブルをマークし、ア
ダプターページテーブルの内容を有効にする。プロセッ
サーPjが仮想メモリーページvmkを共有仮想メモリ
ーページsvmiから削除すると、以下のステップが起
こる。 − カーネルがノードPT中の内容vmk−to−sv
miを無効であるとマークする − カーネルがアダプターPT中の内容pml−to−
svmiを無効であるとマークする − スーパーバイザーがネットワークルート選択テーブ
ルを更新する − カーネルがローカルアダプター空きメモリーリスト
にpmlを付加する。
【0035】当該技術分野に精通したプログラマーなら
ば、本発明のアダプターを含む現存のノードに対して容
易に必要な修正を行うことができるだろう。上に述べて
きたように、最も好ましくは、本発明によるネットワー
クは、アダプターを常駐で持つ各種のノードを含むのみ
ならず、少なくとも、各ネットワークノードに付随する
少なくとも1つのスイッチポートを持ち、さらに、上に
説明してきたように、スイッチバスに接続されたスイッ
チ配列をも含むべきである。本発明は好ましい実施例に
ついて示され、述べられてきたが、当該技術分野に精通
した人にとって明白な種々の変更や修正は特許請求の範
囲で述べられる本発明の精神と目的の範囲の中にあるも
のと見なされる。
【図面の簡単な説明】
【図1】多数のプロセッサーあるいはノードを相互に接
続するネットワークを模式的に示す図。
【図2】地理的に広く分布しているネットワーク中の多
数のノードにメモリーマップされる仮想共有メモリー空
間を表わす模式図。
【図3】本発明によるプロセッサーに接続されたアダプ
ターカードの説明図。
【図4】本発明のアダプターカードならびにその中にお
ける物理的ロケーションをより詳細に説明する図。
【図5】本発明のページテーブルにたくわえられた情報
のフォーマットを示す図。
【図6】アダプターカードの相互接続に対するスイッチ
とバス配列を説明する図。
【図7】本発明によるスイッチポートについてのページ
テーブルの組織を示す図。

Claims (45)

    【特許請求の範囲】
  1. 【請求項1】 第1のノードであって、少なくとも1つ
    の第1のプロセッサーと第1の共有メモリーロケーショ
    ンを持ち、且つそれらが複数の他のノードに相互に接続
    されていて、前記共有メモリーに対して少なくとも1つ
    の更新値を供給するための方法であって、 前記他の複数のノードのそれぞれがまた少なくとも1つ
    のプロセッサーと共有メモリーロケーションとを有し、
    且つ、手順として: (a)第1のメモリーロケーションに更新値を書き込む
    ステップ、 (b)前記他の複数のノードにおいて共有メモリーのア
    ドレスを得るステップ、 (c)前記アドレスと更新値を持つ1つの書き込みパケ
    ットを発生させるステップ、及び、 (d)前記書き込みパケットを前記アドレスに送るステ
    ップ、 を具備した方法。
  2. 【請求項2】 前記ノードがさらにページテーブルを有
    し、前記請求項1の「(b)前記他の複数のノードにお
    いて共有メモリーのアドレスを得るステップ」はさら
    に:前記ページテーブルをアクセスするステップ、 を具備した請求項1の方法。
  3. 【請求項3】 前記ノードがさらに少なくとも1つのシ
    ーケンシャル出力バッファーを具備し、また前記請求項
    1の「(c)前記アドレスと更新値を持つ1つの書き込
    みパケットを発生させるステップ」がさらに手順とし
    て: (a)少なくとも前記アドレスと前記更新値を含む書き
    込みパケットを確立するステップ、及び (b)前記出力バッファーに対して前記書き込みパケッ
    トを供給するステップ、 を具備した請求項1の方法。
  4. 【請求項4】 請求項3の方法であって、さらに手順と
    して、 (a)書き込み、取得、発生などのステップの間、前記
    第1のプロセッサーのオペレーションを一時中止するス
    テップ、及び (b)前記発生ステップの後、前記第1のプロセッサー
    のオペレーションを再開するステップを具備した方法。
  5. 【請求項5】 請求項3の方法であって、さらに、前記
    請求項1の「(b)前記他の複数のノードにおいて共有
    メモリーのアドレスを得るステップ」と前記「(c)前
    記アドレスと更新値を持つ1つの書き込みパケットを発
    生させるステップ」を前記第1のプロセッサーのオペレ
    ーションと交互に重ね合わせるステップを具備した方
    法。
  6. 【請求項6】 第1のノードであって、少なくとも1つ
    の第1のプロセッサーと複数の第2のノードとインター
    リーブしている第1のメモリーロケーションを持ち、且
    つ、それらが1つの第2のプロセッサーと第2のメモリ
    ーロケーションを持ち、 また、前記メモリーロケーションは共有メモリー値を含
    み、前記第1のメモリーロケーションに対する更新を受
    信する方法であって、且つ、手順として: (a)前記更新値と第1のメモリーロケーションアドレ
    スを含む第1のパケットを受信するステップ、及び (b)前記メモリーロケーションを更新するステップ、 を具備した方法。
  7. 【請求項7】 請求項6の方法であって、さらに手順と
    して、 (a)前記受信並びに更新の機関、前記第1のプロセッ
    サーをオペーレーションを行うステップを具備した方
    法。
  8. 【請求項8】 第1のノードであって、少なくとも1つ
    のページテーブルが仮想ならびに物理メモリーロケーシ
    ョンに対するアドレスからなり、 また、前記第1のメモリーロケーションアドレスが仮想
    メモリーアドレスであって、且つ前記請求項6の
    「(a)前記更新値と第1のメモリーロケーションアド
    レスを含む第1のパケットを受信するステップ」が手順
    として: (a)前記更新値と第1の仮想メモリーアドレスを含む
    前記パケット受信するステップ、 (b)第1の物理メモリーロケーションに対応する物理
    メモリーアドレスに対して前記仮想メモリーアドレスを
    翻訳するために前記少なくとも1ページのページテーブ
    ルにアクセスするステップ、及び (c)前記更新値を前記第1の物理メモリーロケーショ
    ンに書き込むステップ、 を具備した請求項6の方法。
  9. 【請求項9】 請求項6の方法であって、さらに手順と
    して: (a)第2のメモリーロケーションアドレスと更新値を
    含む第2のパケットを発生するステップ、及び (b)第2のパケットを送り出すステップ、 を具備した方法。
  10. 【請求項10】 前記第2のパケットの前記発生が手順
    として: (a)前記第1のメモリーロケーションアドレスを前記
    第1ページテーブルに供給するステップ、 (b)第2のメモリーロケーションアドレスを得るステ
    ップ、及び (c)前記第2のメモリーロケーションアドレスと前記
    更新値とからなる第2のパケットを発生するステップ、 を具備した請求項9の方法。
  11. 【請求項11】 前記第1のノードが少なくとも1つの
    シーケンシャル出力バッファーを具備し、また前記請求
    項10の「(b)第2のパケットを送り出すステップ」
    がさらに手順として: (a)前記第2のパケットを前記出力バッファーに供給
    するステップ、及び (b)前記第2のパケットを伝送するステップ、 を具備した請求項9の方法。
  12. 【請求項12】 第1のノードであって、1つの第1の
    プロセッサー、第1のメモリーロケーション、第1のペ
    ージテーブルロケーションならびに第1の制御レジスタ
    ーロケーションを持ち、且つ、少なくとも1つの第2の
    ノードと相互接続されたネットワークにおいて、少なく
    とも1つの第2のプロセッサー、第2のメモリーロケー
    ション、第2のページテーブルロケーションならびに第
    2の制御レジスターロケーションを持ち、前記少なくと
    も1つの第2のノードノードにおける前記第2の少なく
    とも1つのロケーションに対して更新値を供給するため
    の方法であって、 且つ、手順として: (a)少なくとも1つの更新値と少なくとも1つのロケ
    ーションアドレスつくりだすステップ、及び (b)前記パケットを前記少なくとも1つの第2のロケ
    ーションへ送り出すステップ、 を具備した方法。
  13. 【請求項13】 前記請求項12の「(a)少なくとも
    1つの更新値と少なくとも1つのロケーションアドレス
    つくりだすステップ」が手順として: (a)前記少なくとも1つの第2のロケーションアドレ
    スを前記第1のページテーブルから得るステップ、 を具備した請求項12の方法。
  14. 【請求項14】 請求項12の方法であって、前記第2
    のロケーションがメモリー、ページテーブル、あるい
    は、制御レジスターロケーションなどからなるグループ
    のいずれかであってよい方法。
  15. 【請求項15】 第1と、少なくとも1つの第2のノー
    ドに付随する共有メモリーロケーションの中での無矛盾
    性を維持するための方法であって、 前記第2のノードはネットワーク全体に付随するページ
    テーブルを有し、且つ、手順として: (a)前記共有メモリーロケーションを前記ページテー
    ブル中にメモリーマップするステップ、及び (b)前記共有メモリーロケーションに対する更新を前
    記ネットワーク全体に多方向送出するステップ、 を具備した方法。
  16. 【請求項16】 請求項15の方法であって、さらに、
    前記更新をインターリーブするように構成した方法。
  17. 【請求項17】 請求項15の方法であって、前記多方
    向送出が手順として: (a)前記第1のノードにおけるメモリー更新を発生す
    るステップ、 (b)少なくとも1つの第2のノードに対する前記共有
    メモリーロケーションのアドレスをアクセスするステッ
    プ、 (c)少なくとも前記更新と前記アドレスを含むパケッ
    トをつくりだすステップ、及び (d)前記パケットを送り出すステップ、 を具備した方法。
  18. 【請求項18】 請求項17の方法であって、前記アク
    セスが手順として: (a)前記第1のノードにおける前記メモリーのロケー
    ション前記ページテーブルに供給するステップ、 (b)少なくとも1つの第2のノードに対する前記共有
    メモリーロケーションの対応するアドレスを得るステッ
    プ、 (c)少なくとも前記更新と前記アドレスを含むパケッ
    トをつくりだすステップ、及び (d)前記パケットを送り出すステップ、 を具備した方法。
  19. 【請求項19】 請求項17の方法であって、さらに、
    手順として: (a)前記少なくとも1つの第2のノードにおける前記
    更新を受信するステップ、及び (b)前記少なくとも1つの第2のノードにおける前記
    共有メモリーロケーションの前記アドレスに対する前記
    更新を供給するステップ、を具備した方法。
  20. 【請求項20】 請求項19の方法であって、前記パケ
    ット中の前記アドレスが仮想アドレスであり、且つ、前
    記請求項19の「(b)前記少なくとも1つの第2のノ
    ードにおける前記共有メモリーロケーションの前記アド
    レスに対する前記更新を供給するステップ」が手順とし
    て: (a)前記第2のページテーブルを前記仮想アドレスで
    アクセスするステップ、 (b)少なくとも1つの第2のノードにおける前記共有
    メモリーの物理ロケーションを前記第2のページテーブ
    ルから見つけるステップ、及び (c)前記物理ロケーションを前記更新値で更新するス
    テップ、 を具備した方法。
  21. 【請求項21】 請求項19の方法であって、且つ、前
    記ネットワークが少なくとも1つの第3を含み、さらに
    手順として:(a)前記第2のノードにおいて、前記少
    なくとも1つの第3のノードへの伝送のための前記更新
    とアドレスを含む第2のパケットをアセンブルするステ
    ップ、を具備した方法。
  22. 【請求項22】 複数のコンピューターノードからなる
    コンピューターネットワークであって、各ノードは少な
    くとも1つのプロセッサーを有し、ネットワークは前記
    ノード間の相互接続よりなっており、その改良点は:少
    なくとも1つのプロセッサーのそれぞれに接続された前
    記ノードのそれぞれにあるアダプターカード、前記ノー
    ドを前記ネットワークに相互接続するためのリンクハー
    ドウエアからなる前記アダプターカード、少なくとも1
    つの入力バッファー、少なくとも1つのメモリーロケー
    ション、少なくとも1つのページテーブル、少なくとも
    1組の制御ならびにステータスレジスター、ならびに少
    なくとも1つの出力バッファーについてなされたものか
    らなるネットワーク。
  23. 【請求項23】 コンピューターネットワークシステム
    であって、その構成要素として: (a)少なくとも2つのコンピューターノード、 (b)各ノードに付随する少なくとも1つのプロセッサ
    ー、 (c)少なくとも2つのノードによって共有されるデー
    タの少なくとも1つのコピーをしまうための各プロセッ
    サーに付随した少なくとも1つのデータ格納ロケーショ
    ン、 (d)前記共有データの各コピーの格納ロケーションに
    インデクスするための各ノードに付随する少なくとも1
    つのページテーブル手段、 (e)各ノードにおいて接続されたネットワーク伝送手
    段と相互に接続された前記少なくとも2つのノード、 を具備したシステム。
  24. 【請求項24】 請求項23のコンピューターネットワ
    ークシステムであって、その構成要素として、さらに: (a)前記ノードのそれぞれに付随し、前記ネットワー
    ク伝送手段に対して、またそれによって前記の他のノー
    ドに対して、データパケットを供給するための前記ネッ
    トワーク伝送手段に接続された少なくとも1つの伝送手
    段、を具備したシステム。
  25. 【請求項25】 前記伝送手段が少なくとも1つのノー
    ド出力バッファーを含む請求項24のコンピューターネ
    ットワーク。
  26. 【請求項26】 請求項23のコンピューターネットワ
    ークシステムであって、さらに、それは各ノードに付随
    した少なくとも1つの受信手段を含み、前記ネットワー
    ク伝送手段に接続されているネットワーク。
  27. 【請求項27】 前記受信手段が少なくとも1つのノー
    ド入力バッファーを含む請求項26のコンピューターネ
    ットワーク。
  28. 【請求項28】 請求項24のコンピューターネットワ
    ークであって、且つ、前記伝送手段がその構成要素とし
    て: (a)少なくとも1つの出力バッファー、及び (b)前記ノード出力バッファーと前記ネットワーク伝
    送手段に接続された少なくとも1つのスイッチポート、 を具備したネットワーク。
  29. 【請求項29】 請求項28のコンピューターネットワ
    ークであって、且つ、前記少なくとも1つのスイッチポ
    ートが伝送手段がその構成要素として: (a)前記ノード出力バッファーに付随した少なくとも
    1つの入力バッファー、及び (b)少なくとも1つのスイッチページテーブル、 を具備したネットワーク。
  30. 【請求項30】 請求項26のコンピューターネットワ
    ークであって、且つ、前記受信手段が伝送手段がその構
    成要素として: (a)少なくとも1つのノード入力入力バッファー、及
    び (b)前記ノード入力バッファーと前記ネットワーク伝
    送手段に接続された少なくとも1つのスイッチポートを
    具備したネットワーク。
  31. 【請求項31】 請求項23のコンピューターネットワ
    ークであって、さらに、その構成要素として: (a)前記ネットワーク伝送手段に対して前記ノードの
    それぞれに付随する接続手段、 を具備したネットワーク。
  32. 【請求項32】 請求項31のコンピューターネットワ
    ークであって、且つ、前記接続手段がその構成要素とし
    て: (a)少なくとも1つのノード入力バッファー、 (b)少なくとも1つのノード出力バッファー、及び (c)前記少なくともノード入力とノード出力バッファ
    ーとさらに前記ネットワーク伝送手段に接続されたリン
    クハードウエアを具備したネットワーク。
  33. 【請求項33】 請求項32のコンピューターシステム
    であって、且つ、前記接続手段がさらにその構成要素と
    して: (a)各ノードにおいて前記リンクハードウエアと前記
    ネットワーク伝送手段の間の各ノードにおいて接続され
    ている少なくとも1つのスイッチポートを具備したシス
    テム。
  34. 【請求項34】 請求項33のコンピューターシステム
    であって、且つ、前記少なくとも1つのスイッチポート
    がその構成要素として: (a)前記少なくとも1つのノード出力バッファーに付
    随する少なくとも1つのスイッチ入力バッファー、 (b)前記少なくとも1つのノード入力バッファーに付
    随する少なくとも1つのスイッチ出力バッファー、を含
    む。 (c)少なくとも1つのスイッチページテーブル手段、 (d)少なくとも1つのスイッチレジスター手段、及び (e)前記ネットワーク伝送手段に接続するスイッチ接
    続手段、 を具備したシステム。
  35. 【請求項35】 仮想共有メモリーにマップされた少な
    くとも2つのコンピューターノードにおける相互接続の
    ためのスイッチ手段であって、且つ、その構成要素とし
    て: (a)それらの内の少なくとも1つが前記各コンピュー
    ターノードに接続されている少なくとも2つのスイッチ
    ポート、少なくとも1つのスイッチ入力バッファーから
    なる前記各スイッチポート、少なくとも1つのスイッチ
    出力バッファー、少なくとも1つのスイッチページテー
    ブル手段、少なくとも1つのスイッチレジスターとリン
    クハードウエア、及び (b)前記少なくとも2つのスイッチポート相互接続す
    るための前記各スイッチポートに付随した前記リンクハ
    ードウエアに接続されたスイッチバス、 を具備した手段。
  36. 【請求項36】 請求項35のスイッチ手段であって、
    前記少なくとも1つのページテーブル手段は、少なくと
    も2つの関連するノードに対して、仮想と物理アドレシ
    ング情報を含むインデクスを具備した手段。
  37. 【請求項37】 ノードに対する方法であって、少なく
    とも1つのプロセッサーと少なくとも1つのメモリーロ
    ケーションと少なくとも1つのページテーブル手段を有
    し、前記少なくとも1つのメモリーロケーションにおい
    てメモリー値を変更するために、メモリーは他のプロセ
    ッサーを持つ少なくとも1つの相互接続されたコンピュ
    ーターノード、前記共有メモリーのコピー、および少な
    くとも1つのページテーブル手段と共有され、さらに手
    順として: (a)前記メモリーロケーションの前記物理アドレスに
    アクセスするステップ、 (b)前記更新値を前記メモリーロケーションに供給す
    るステップ、 (c)前記メモリーロケーションの前記物理アドレスを
    前記ページテーブルに供給するステップ、 (d)前記物理アドレスに対応する前記少なくとも1つ
    の他のノードにおける少なくとも1つのアドレスを前記
    ページテーブルから得るステップ、 (e)前記少なくとも1つのアドレスと前記更新値を含
    むパケットをアセンブルするステップ、及び (f)前記パケットを前記少なくとも1つの他のノード
    に送出するステップ、 を具備した方法。
  38. 【請求項38】 コンピューターノードを少なくとも1
    つの他のコンピューターノードに相互接続することを容
    易にする少なくとも1つのプロセッサーを有するコンピ
    ューターノードに挿入するためのアダプターカードであ
    って、構成要素として: (a)少なくとも1つのメモリー値を含む少なくとも1
    つのメモリーロケーション、 (b)少なくとも1つのページテーブル、 (c)少なくとも1つのレジスター、 (d)少なくとも1つのノード入力バッファー、 (e)少なくとも1つのノード出力バッファー、および (f)前記ノードを少なくとも1つの他のノードに接続
    するためのリンクハードウエア、 を具備したカードアダプター。
  39. 【請求項39】 請求項38のアダプターカードであっ
    て、前記ページテーブルが前記少なくとも1つのメモリ
    ーロケーションのアドレスを含むアダプターカード。
  40. 【請求項40】 請求項38におけるごときアダプター
    カードであって、且つ少なくとも1つの他のコンピュー
    ターノードが少なくとも1つのメモリー値を含む少なく
    とも1つのメモリーロケーションを含み、前記少なくと
    も1つのメモリー値が前記アダプターカード中の前記少
    なくとも1つのメモリー値と共有され、前記ページテー
    ブルが前記少なくとも1つの他のノード中の前記少なく
    とも1つのメモリーロケーションのアドレス]を含んで
    いるのアダプターカード。
  41. 【請求項41】 既存のコンピューターノードにおける
    相互接続コンピューターノード間の共有仮想メモリーに
    対するアクセスのための方法であって、且つ、手段とし
    て: (a)ノードに前記共有メモリーのアドレスを含んでい
    る少なくとも1つのページテーブルを供給するステッ
    プ、及び (b)前記ノードのページテーブル中に前記ネットワー
    クのロケーションをメモリーマップするステップ、 を具備した方法。
  42. 【請求項42】 既存のコンピューターノードにおける
    共有仮想メモリーに対するアクセスのための装置であっ
    て、且つ、その構成要素として: (a)各ノードに挿入するためのアドレスカードであっ
    て、前記カードは少なくとも3つのメモリーロケーショ
    ンとネットワークインターフェース、を具備する装置。
  43. 【請求項43】請求項42の装置であって、且つ、前記
    少なくとも3つのメモリーロケーションがその構成要素
    として: (a)データロケーションメモリー、 (b)ページテーブルメモリー、及び (c)制御・ステータスレジスターメモリー、 を具備した装置。
  44. 【請求項44】 請求項42の装置であって、且つ少前
    記ネットワークインターフェースがその構成要素とし
    て: (a)少なくとも1つのシーケンシャル入力バッファ
    ー、 (b)少なくとも1つのシーケンシャル出力バッファ
    ー、及び (c)リンクハードウエア、 を具備した装置。
  45. 【請求項45】 請求項44の装置であって、前記ネッ
    トワークインターフェースがその構成要素としてさら
    に: (a)前記スイッチバスに接続されたスイッチポート、 を具備した装置。
JP5092279A 1992-03-27 1993-03-25 分散共有仮想メモリーとその構成方法 Pending JPH0619785A (ja)

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 Child Applications (1)

Application Number Title Priority Date Filing Date
JP2002280316A Division JP2003178039A (ja) 1992-03-27 2002-09-26 分散共有仮想メモリーとその構成方法

Publications (1)

Publication Number Publication Date
JPH0619785A true JPH0619785A (ja) 1994-01-28

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 After (1)

Application Number Title Priority Date Filing Date
JP2002280316A Pending JP2003178039A (ja) 1992-03-27 2002-09-26 分散共有仮想メモリーとその構成方法

Country Status (2)

Country Link
US (2) US5522045A (ja)
JP (2) JPH0619785A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5829041A (en) * 1994-09-14 1998-10-27 Kabushiki Kaisha Toshiba Method and apparatus for managing single virtual space suitable for distributed processing
FR2770665A1 (fr) * 1997-11-06 1999-05-07 Alsthom Cge Alcatel Dispositif d'echange entre unites de traitement d'informations a processeurs interconnectes par un bus commun
US5992560A (en) * 1996-02-21 1999-11-30 Ibiden Co., Ltd. Muffler for internal combustion engine
JP2005044343A (ja) * 2003-06-21 2005-02-17 Samsung Electronics Co Ltd データバス幅を自在に変更する携帯用保存装置及び方法
US6928529B2 (en) 2001-08-07 2005-08-09 Nec Corporation Data transfer between virtual addresses
US7136933B2 (en) 2001-06-06 2006-11-14 Nec Corporation Inter-processor communication systems and methods allowing for advance translation of logical addresses
JP4734348B2 (ja) * 2006-01-31 2011-07-27 富士通株式会社 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体
JP2012508418A (ja) * 2008-11-10 2012-04-05 フリースケール セミコンダクター インコーポレイテッド 集積回路を相互接続するための技術
KR101355105B1 (ko) * 2012-01-03 2014-01-23 서울대학교산학협력단 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US9690619B2 (en) 2011-04-18 2017-06-27 Fujitsu Limited Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory
JP2017538212A (ja) * 2014-12-18 2017-12-21 インテル コーポレイション 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構
US11868251B2 (en) 2021-11-09 2024-01-09 Electronics And Telecommunications Research Institute Interleaved wideband memory access method using optical switch, and server for performing the same

Families Citing this family (159)

* Cited by examiner, † Cited by third party
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
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
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
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 データ共用方式
US5860109A (en) * 1996-07-01 1999-01-12 Sun Microsystems, Inc. Methods and apparatus for a coherence transformer for connecting computer system coherence domains
US5991854A (en) * 1996-07-01 1999-11-23 Sun Microsystems, Inc. Circuit and method for address translation, using update and flush control circuits
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
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
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
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
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
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
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
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
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
US6115790A (en) * 1997-08-29 2000-09-05 Silicon Graphics, Inc. System, method and computer program product for organizing page caches
US6295584B1 (en) * 1997-08-29 2001-09-25 International Business Machines Corporation Multiprocessor computer system with memory map translation
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
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
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
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
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
KR100610522B1 (ko) * 1997-11-04 2006-08-09 코닌클리케 필립스 일렉트로닉스 엔.브이. 다른 전송 특성들을 사용하는 통신 네트워크
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 日本電気株式会社 プロセッサ間通信装置
DE19983969T1 (de) * 1999-07-06 2002-10-10 Mitsubishi Electric Corp Antriebssteuersystem
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 エヌ・ティ・ティ・コムウェア株式会社 データの共有方法、端末装置および記録媒体
US6961838B2 (en) * 2000-06-02 2005-11-01 Hewlett-Packard Development Company, L.P. Generating updated virtual disks using distributed mapping tables accessible by mapping agents and managed by a centralized controller
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
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US7035911B2 (en) 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community 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
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
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
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
US7184399B2 (en) * 2001-12-28 2007-02-27 Intel Corporation Method for handling completion packets with a non-successful completion status
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
US6795902B2 (en) * 2002-01-09 2004-09-21 Sun Microsystems, Inc. Inter-domain data transfer
US7020753B2 (en) * 2002-01-09 2006-03-28 Sun Microsystems, Inc. Inter-domain data transfer
US6877030B2 (en) * 2002-02-28 2005-04-05 Silicon Graphics, Inc. Method and system for cache coherence in DSM multiprocessor system without growth of the sharing vector
US7269709B2 (en) * 2002-05-15 2007-09-11 Broadcom Corporation Memory controller configurable to allow bandwidth/latency tradeoff
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
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
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
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
WO2004042591A1 (en) * 2002-11-05 2004-05-21 Koninklijke Philips Electronics N.V. Data processing apparatus with address redirection in response to periodic address patterns
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
JP4012517B2 (ja) 2003-04-29 2007-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想計算機環境におけるロックの管理
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
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
US7478211B2 (en) * 2004-01-09 2009-01-13 International Business Machines Corporation Maintaining consistency for remote copy using virtualization
US20050154786A1 (en) * 2004-01-09 2005-07-14 International Business Machines Corporation Ordering updates in remote copying of data
JP2005227922A (ja) * 2004-02-12 2005-08-25 Yokogawa Electric Corp プロセス間情報共有システム
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
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
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
US20080005719A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, systems, and computer program products for providing a program execution environment
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
US20080005752A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for generating application processes by linking applications
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
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
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
US8086805B2 (en) * 2006-10-05 2011-12-27 Waratek Pty Ltd. Advanced contention detection
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 中国科学院计算技术研究所 一种远程内存共享系统及其实现方法
US20080320459A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Concurrency Control For Addressable Entities
US20080320282A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Transaction Support For Executable Program Components
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)
JP5307796B2 (ja) * 2008-03-19 2013-10-02 パナソニック株式会社 処理装置、処理システム、データ共有処理方法、及びデータ共有処理用集積回路
US8019966B2 (en) * 2008-06-09 2011-09-13 International Business Machines Corporation Data sharing utilizing virtual memory having a shared paging space
US8041877B2 (en) * 2008-06-09 2011-10-18 International Business Machines Corporation Distributed computing 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
JP5241384B2 (ja) * 2008-08-29 2013-07-17 ルネサスエレクトロニクス株式会社 分散共有メモリ型マルチプロセッサ及びデータ処理方法
KR101038167B1 (ko) 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
US9069672B2 (en) * 2009-06-12 2015-06-30 Intel Corporation Extended fast memory access in a multiprocessor computer system
JP2011186554A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
EP2499576A2 (en) * 2009-11-13 2012-09-19 Richard S. Anderson Distributed symmetric multiprocessing computing architecture
JP5700370B2 (ja) * 2011-01-31 2015-04-15 独立行政法人海洋研究開発機構 ノード
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
WO2014073324A1 (ja) 2012-11-12 2014-05-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 光回路スイッチ(ocs)による電気/光メモリリンクの確立
US9898414B2 (en) 2014-03-28 2018-02-20 Oracle International Corporation Memory corruption detection support for distributed shared memory applications
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
US10467139B2 (en) 2017-12-29 2019-11-05 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
US10452547B2 (en) 2017-12-29 2019-10-22 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
US11487674B2 (en) * 2019-04-17 2022-11-01 Rankin Labs, Llc 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 富士通株式会社 情報処理装置及び情報処理方法
CN114844827B (zh) * 2022-05-05 2023-03-28 浙江大学 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法
CN116484947B (zh) * 2023-06-25 2023-09-08 上海燧原科技有限公司 算子的自动生成方法、装置、设备及介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
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
EP0092895B1 (en) * 1982-04-28 1988-05-11 International Computers Limited 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
DE69132300T2 (de) * 1990-03-12 2000-11-30 Hewlett Packard Co Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
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

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5829041A (en) * 1994-09-14 1998-10-27 Kabushiki Kaisha Toshiba Method and apparatus for managing single virtual space suitable for distributed processing
US5992560A (en) * 1996-02-21 1999-11-30 Ibiden Co., Ltd. Muffler for internal combustion engine
FR2770665A1 (fr) * 1997-11-06 1999-05-07 Alsthom Cge Alcatel Dispositif d'echange entre unites de traitement d'informations a processeurs interconnectes par un bus commun
EP0917062A1 (fr) * 1997-11-06 1999-05-19 Alcatel Dispositif d'échange entre unités de traitement d'informations à processeurs interconnectés par un bus commun
US7136933B2 (en) 2001-06-06 2006-11-14 Nec Corporation Inter-processor communication systems and methods allowing for advance translation of logical addresses
US6928529B2 (en) 2001-08-07 2005-08-09 Nec Corporation Data transfer between virtual addresses
JP2005044343A (ja) * 2003-06-21 2005-02-17 Samsung Electronics Co Ltd データバス幅を自在に変更する携帯用保存装置及び方法
JP4734348B2 (ja) * 2006-01-31 2011-07-27 富士通株式会社 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体
JP2012508418A (ja) * 2008-11-10 2012-04-05 フリースケール セミコンダクター インコーポレイテッド 集積回路を相互接続するための技術
US9690619B2 (en) 2011-04-18 2017-06-27 Fujitsu Limited Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory
KR101355105B1 (ko) * 2012-01-03 2014-01-23 서울대학교산학협력단 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US9208088B2 (en) 2012-01-03 2015-12-08 Seoul National University R&Db Foundation Shared virtual memory management apparatus for providing cache-coherence
JP2017538212A (ja) * 2014-12-18 2017-12-21 インテル コーポレイション 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構
US10706496B2 (en) 2014-12-18 2020-07-07 Intel Corporation Function callback mechanism between a Central Processing Unit (CPU) and an auxiliary processor
US11868251B2 (en) 2021-11-09 2024-01-09 Electronics And Telecommunications Research Institute Interleaved wideband memory access method using optical switch, and server for performing the same

Also Published As

Publication number Publication date
JP2003178039A (ja) 2003-06-27
US5592625A (en) 1997-01-07
US5522045A (en) 1996-05-28

Similar Documents

Publication Publication Date Title
JPH0619785A (ja) 分散共有仮想メモリーとその構成方法
US11640362B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US5446915A (en) Parallel processing system virtual connection method and apparatus with protection and flow control
US7594052B2 (en) Integrated circuit and method of communication service mapping
US7165131B2 (en) Separating transactions into different virtual channels
US6876561B2 (en) Scratchpad memory
JP5285375B2 (ja) ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
US6023732A (en) Message transfer apparatus for controlling a message send in a packet switched interconnection network
JP2565652B2 (ja) インターネットワーキング・パケット経路指定装置
US20040151170A1 (en) Management of received data within host device using linked lists
JPH05501041A (ja) 高速パケットスイッチング装置および方法
JP2006502642A (ja) トランザクションを確立するための集積回路および方法
JPH065527B2 (ja) 通信ネットワークアダプタ
US20020174316A1 (en) Dynamic resource management and allocation in a distributed processing device
JP2505050B2 (ja) 複数プロセツサ間で通信するためのシステム
CN106648896B (zh) 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法
JPH04227155A (ja) ネットワーク情報転送方法及び装置
JPH0844675A (ja) 処理エレメント間の制御メッセージ分散のための装置及び方法
US5347514A (en) Processor-based smart packet memory interface
US7218638B2 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
US20020174258A1 (en) System and method for providing non-blocking shared structures
JP3904498B2 (ja) プロセッサ間通信システム
JPS63257052A (ja) マルチプロセツサシステム
KR100318946B1 (ko) 멀티프로세서 통신시스템에서 에이티엠 스위치 패브릭을이용한 데이터 전송 장치 및 방법

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040219