JPH1196127A - 第1のコンピュータと第2のコンピュータとの間で遠隔ディスク読取り操作を実施する方法と装置 - Google Patents

第1のコンピュータと第2のコンピュータとの間で遠隔ディスク読取り操作を実施する方法と装置

Info

Publication number
JPH1196127A
JPH1196127A JP10183849A JP18384998A JPH1196127A JP H1196127 A JPH1196127 A JP H1196127A JP 10183849 A JP10183849 A JP 10183849A JP 18384998 A JP18384998 A JP 18384998A JP H1196127 A JPH1196127 A JP H1196127A
Authority
JP
Japan
Prior art keywords
computer
data
memory
disk
local physical
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
JP10183849A
Other languages
English (en)
Inventor
Taruuri Madousudan
マドゥスダン・タルーリ
Shii Piisu Maashiyaru
マーシャル・シイ・ピース
Buisuwanasan Surinibasan
スリニバサン・ヴィスワナサン
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1196127A publication Critical patent/JPH1196127A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/922Communications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

(57)【要約】 【課題】 遠隔ディスク読取り、および遠隔ノード上の
メモリ記憶装置からの同様の遠隔データ検索操作をより
効率的にするシステムおよび方法を提供する。 【解決手段】 クライアント・コンピュータがサーバ・
コンピュータにあるディスクのデータを要求するとき、
クライアントは、読取りバッファを割り当てられたグロ
ーバル・アドレス範囲にマップするIMMUエントリを
生成し、記憶することによって、割り振られた読取りバ
ッファに関連するメモリをエクスポートする。サーバ
で、その要求は、読取り要求中で指定されたグローバル
・アドレス範囲をローカル物理アドレスの対応する範囲
にマップするためにOMMUエントリを生成し、記憶す
るメモリ・インポート操作を実施する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に、第1のコ
ンピュータが、第2のコンピュータに物理的に結合され
たディスクまたは他の非ランダム・アクセス・コンピュ
ータ・メモリ・デバイス上に記憶されたデータまたはプ
ログラムにアクセスすることを可能にするメモリ・マッ
プ・データ転送を使用できるコンピュータ・ネットワー
クに関し、さらに詳細には、最初に遠隔サーバのメモリ
中のデータのコピーを作成せずにデータを遠隔サーバ中
のディスクから通信バスに直接送ることによってそのよ
うな遠隔ディスク・アクセスをより効率的にするシステ
ムおよび方法に関する。
【0002】
【従来の技術】多数のマルチノード・コンピュータ・シ
ステムでは、1つのコンピュータ・ノード(クライアン
トとも呼ばれる)上で動作しているプロセッサまたはタ
スクが他のコンピュータ・ノード(サーバとも呼ばれ
る)に関連するディスクまたは同様のデバイス上に記憶
された情報にアクセスできることが重要である。一般
に、遠く離れた位置にあるディスク上のデータにアクセ
スすることは、待ち時間および使用されるリソースの点
で費用がかかる。本発明は、クライアント・ノードがサ
ーバ・ノードのところにある(またはそれに取り付けら
れる)ディスクから読み出されるディスクを実行すると
きに待ち時間ならびにサーバ・ノード上で使用されるリ
ソースを少なくするシステムおよび方法を提供する。
【0003】図1を参照すると、ここではノードAまた
はサーバ50およびノードBまたはクライアント52と
呼ばれる2つのコンピュータ・ノードのかなり簡略化さ
れた図が示されている。各ノードのところにあるコンピ
ュータは、任意のタイプのコンピュータである。言い換
えれば、特定の商標、アーキテクチャ、オペレーティン
グ・システムは、各コンピュータ・ノードがネットワー
ク環境中で動作するように構成される限り、この議論で
は重要ではない。各コンピュータ・ノード50、52
は、一般に、中央処理装置(CPU)54、ランダム・
アクセス・メモリ56、内部メモリ・バス58、および
しばしばネットワーク・インタフェース・カード(NI
C)と呼ばれる通信インタフェース60を含む。コンピ
ュータ・ノードは、1つまたは複数のタイプの通信媒
体、スイッチング機構などを含むネットワーク相互接続
62を介してメッセージまたはパケットを互いに送信す
ることによって互いに通信する。
【0004】この議論では、NICがメモリ・マップ・
メッセージ送信に適していると仮定する。すなわち、N
ICは、ローカル物理アドレスを使用して、直接にアド
レス指定できなければならず、またNICのドライバ・
ソフトウェアを使用しなくても遠隔コンピュータ・ノー
ド中の位置との間の直接ロードおよび記憶がNICを介
して実施できる。
【0005】さらに、本発明は遠隔ディスク・アクセス
に関連するので、少なくとも1つのコンピュータ・ノー
ド50は、高速磁気ディスクなど不揮発性非ランダム・
アクセス・メモリ・デバイス64、および対応するディ
スク・コントローラ66を有する。実際には、多数の実
施形態では、コンピュータ・ノードの大部分または全部
は1つまたは複数のローカル・ディスク・ドライバを有
する。しかしながら、1つのコンピュータ・ノード52
がどのようにして他のコンピュータ・ノード50に接続
されたディスク64のデータにアクセスするかを説明す
ることに興味があるので、サーバ・ノード50用のディ
スク64のみを図1に示してある。
【0006】「メッセージ伝送」なる語は、受信側シス
テムが送信されてきたメッセージを自動的に処理するメ
ッセージ伝送プロトコルの使用を指示または暗示するた
めに使用されることがあり、また「データ伝送」なる語
は、単にあるシステムから他のシステムへのデータの書
込みまたはコピーを指示することに留意されたい。ただ
し、本明細書では、「メッセージ伝送」および「データ
伝送」なる語は交換可能に使用される。
【0007】図2に、特に重要な構成要素のみが示され
ている図1のコンピュータ・ノード中で使用されるもの
など従来の通信インタフェース(またはNIC)60の
簡略化された図を示す。NIC60は、一般に、着信メ
モリ管理ユニット(IMMU)70および発信メモリ管
理ユニット(OMMU)72の2つのアドレス・マッピ
ング機構を含む。2つのメモリ管理ユニットの目的は、
各コンピュータ・ノード中のローカル物理アドレス(P
A)をグローバル・アドレス(GA)にマップすること
およびその逆を行うである。NIC60中の転送論理回
路74は、IMMU70およびOMMU72を使用し
て、アドレスを参照し、変換することを含めて、メッセ
ージ・パケットを送信し、受信する機構を処理する。
【0008】メモリ・バス58とIMMU70およびO
MMU72との間の点線は、一般にNICドライバ・プ
ログラムの制御下で、2つのMMU中のアドレス変換エ
ントリを記憶し、削除するCPU誘導制御信号を表す。
メモリ・バス58と転送論理回路74との間の点線は、
転送論理回路74を構成し、制御するCPU誘導制御信
号を表す。
【0009】仮想、ローカル物理アドレス空間とグロー
バル・アドレス空間との間のメモリ・マッピング 図3および図4を参照すると、(図1に示されるものな
ど)分散コンピュータ・システム中のノードは、共用グ
ローバル・アドレス空間GAを使用する。各ノードは、
そのローカル・アドレス空間LAの一部をグローバル・
アドレス空間中の「ウィンドウ」にマップする。さら
に、各ノード上のプロセスは、それらのプライベート仮
想アドレス空間VAの一部をローカル物理アドレス空間
PAにマップし、さらにローカル物理アドレス空間PA
の一部をグローバル・アドレス空間GA中のウィンドウ
にエクスポートする。ローカル物理アドレス空間の一部
を「エクスポート」するプロセスは、割り当てられたグ
ローバル・アドレス空間範囲を介してローカル物理アド
レス空間のエクスポートされた部分への読取りアクセス
および/または書込みアクセスが特定の他のコンピュー
タ・ノードに、与えられるので「ローカル物理アドレス
の一部を他のノードにエクスポート」とも呼ばれる。
【0010】図3および図4に示されるローカル物理ア
ドレス(例えば、PA1およびPA2)は、物理バス・
アドレスであり、必ずしもメモリ位置アドレスではない
ことに留意されたい。事実、多数の物理アドレスが実際
にネットワーク・インタフェースなど、メモリ以外のデ
バイスにマップされる。例えば、第1のコンピュータ上
の物理メモリが第2のコンピュータにエクスポートされ
たとき、エクスポートされたメモリへの書込みのために
第2のコンピュータ中で使用される物理アドレスは、ロ
ーカル・メモリにマップされるのではなく、第2のコン
ピュータのネットワーク・インタフェースにマップされ
る。
【0011】宛先アドレスを含むメッセージがノードA
中のプロセス50からノードB中のプロセス52に送ら
れるとき、一連のアドレス変換(アドレス・マッピング
変換とも呼ばれる)が宛先アドレス上で実施される。ノ
ードA中のプロセスからの仮想アドレスVA1は、まず
ノードAのCPU54−A中のTLB(変換ルックアサ
イド・バッファ)80−Aによってローカル物理アドレ
スPA1に変換される。ローカル物理アドレスPA1
は、次いでノードAのネットワーク・インタフェース6
0−A中の発信MMU(OMMU)72−Aによってグ
ローバル・アドレスGAxに変換される。グローバル・
アドレスを含むメッセージがノードBによって受信され
たとき、グローバル・アドレスGAxは、ノードBのネ
ットワーク・インタフェース60−B中の着信MMU
(IMMU)70−BによってノードBに関連するロー
カル物理アドレスPA2に変換される。ローカル物理ア
ドレスPA2は、受信プロセスに関連する仮想アドレス
VA2に対応する。ノードBのCPU54−B中のTL
B80−Bは、仮想アドレスVA2を受信されたメッセ
ージがそこに記憶されるローカル・アドレスPA2にマ
ップする。
【0012】TLBは、一般に仮想アドレスをローカル
物理アドレスに変換するだけであり、その逆は行わず、
したがって図4中のいくつかの矢印は、実際のアドレス
変換ではなくマッピングを表すことに留意されたい。ノ
ードB中の受信プロセスがアドレスVA2において受信
されたメッセージを読み取るとき、TLB80−Bは、
その仮想アドレスを、ネットワーク・インタフェースの
IMMU70−Bによって受信されたメッセージの宛先
アドレスとして決定された同じローカル・アドレスLA
2に変換する。
【0013】メッセージを受信するアドレス空間範囲
は、一般に予約アドレス空間、メールボックス、または
この目的でセットアップされたパケット・ベースの通信
を使用するより高いレベルのプロトコルを使用して、送
信ノードと受信ノードとの間で事前に取り決められる。
グローバル・アドレス空間中のウィンドウがどのように
して割り当てられるか、および受信側アドレスがメッセ
ージを受信するためにどのようにしてセットアップされ
るかの詳細は、本明細書の範囲外である。さらに、本発
明は、そのような通信セットアップ機構の変更を必要と
しない。
【0014】各MMUエントリは、一般にアドレス空間
の1つまたは複数のページ(より一般にはn≧0の整数
値に対して2n ページ)のマッピングを表すので、受信
バッファは、一般にページ・サイズ・チャンク中に割り
振られる。より大きい受信バッファ、または整数サイズ
の受信バッファは、ユーザ・レベル・プロトコルによっ
て多数のMMUエントリを使用して構成される。受信バ
ッファが割り振られ、対応するMMUマッピングが確立
された後、ユーザ・レベル・プログラムは、カーネル介
在なしに受信バッファを管理することができる。「AP
I」(アプリケーション・プログラム・インタフェー
ス)を送信する多数の異なる種類のユーザ・レベル・メ
ッセージを基本受信バッファ機構の最上部に作成するこ
とができる。これは、送信および受信Unixプリミテ
ィブ、ソケット、ORB(オブジェクト・リソース・ブ
ローカ)転送、遠隔手順呼出しなどを含む。基本メッセ
ージ送信機構は、できるだけ少ないプロセッサ・サイク
ルがとられるように、できるだけ「軽量」かつ効率的で
あるように設計される。
【0015】本発明は、上記で論じたローカル物理アド
レス、グローバル・アドレス間マッピング機構を使用す
る。
【0016】従来の遠隔ディスク読取り方法 図5に、ノードAのところにあるディスクから情報を読
み取るノードB上のプロセス用の従来の手順を示す。第
1のステップは、ノードAがメッセージをノードBに書
き込むことができるように、ノードBがノードAに「メ
モリをエクスポート」することによって受信バッファを
セットアップすることである(ステップ80)。いくつ
かの実施態様では、このステップは、ノードBがノード
Aからの多数のディスク読取りを実施していることが予
め分かっているので予め実施される。しかしながら、た
いていの実施態様では、メモリをエクスポートするステ
ップは、遠隔ディスク読取り要求に応答して、ノードB
中のユーザまたはカーネル・プロセスによって実施され
る。メモリをエクスポートするステップ80は、ノード
Bのメモリ中の受信バッファの物理アドレス範囲をグロ
ーバル・アドレスの対応する範囲にマップするIMMU
エントリをノードB中に作成することによって実施され
る。上記のように、ノードBは、一般に、メモリを他の
ノードにエクスポートするためにそれに事前に割り当て
られるグローバル・アドレスの範囲を有する。しかしな
がら、グローバル・アドレスを割り当てる他の機構も同
様に適用できる。
【0017】次に、ステップ82で、クライアント・ノ
ード(ノードB)が、要求された情報が記憶されるサー
バ・ノード(ノードA)に要求メッセージを送信する。
要求メッセージは、 ・ メッセージが送信される宛先ノード ・ メッセージが送信される発信源ノード ・ 要求された情報を含むディスク・ファイル、ディス
ク・ファイル部分、ディスク位置範囲など情報源 ・ 要求された情報が送信されるべきグローバル・アド
レス、および ・ ここでは関係のない、プロトコル・パラメータなど
他のパラメータを指定する。
【0018】サーバ(ノードA)において、要求メッセ
ージが受信されたとき、サーバは、要求側クライアント
・ノード、ノードBによってエクスポートされるメモリ
をインポートするためにOMMUエントリをセットアッ
プする(ステップ84)。OMMUエントリは、ステッ
プ84で、受信されたメッセージ中で指定されたグロー
バル・アドレス範囲をサーバ・ノード中の物理メモリの
対応する範囲にマップする。必要な場合(例えば、不十
分な隣接するメモリが使用できる場合および/またはマ
ップされたアドレス範囲のサイズが2n ページに等しく
ない場合)、サーバ・ノードは、指定されたグローバル
・アドレス空間が2つ以上のローカル物理アドレス範囲
にマップされるように2つ以上のOMMUエントリを生
成する。
【0019】要求側ノードB中のIMMUおよび応答側
または送信側ノードA中のOMMUがセットアップされ
た後、要求されたデータの送信が開始される。特に、ま
ずノードBが、一般にディスク・コントローラDMA操
作を使用して、データ転送を実施することによって、要
求されたディスク・データを前にOMMUエントリ中に
マップされたローカル物理メモリ範囲にコピーする(ス
テップ86)。次いで、ローカル物理メモリ範囲の内容
をローカル・メモリから割り当てられたグローバル・ア
ドレスに書き込む(ステップ88)。グローバル・アド
レスにデータを書き込むことにより、それらのグローバ
ル・アドレスに対する送信側ノードのOMMUエントリ
(または複数のエントリ)中に示されるように、送信側
ノードの通信インタフェースが書き込まれるデータをそ
れらのグローバル・アドレスに関連するノードに送信す
る。このデータ伝送操作(ステップ88)は、直接CP
U制御下で「プログラムI/O」命令によって実施され
るか、または通信インタフェース(NIC)DMA操作
によって実施される(すなわち、その場合、通信インタ
フェース中のDMA論理回路がローカル物理メモリから
通信ネットワークへのデータの転送を処理する)。最後
に、要求されたデータが要求側ノード中の受信バッファ
に完全に送信された後、「完了した」メッセージは、一
般に、要求されたデータの送信が完了したことが要求側
ノードに通知されるように、送信側ノードによって要求
側ノード中の事前に定義されたメッセージ待ち行列位置
に送信される(ステップ90)。
【0020】サーバが要求されたデータを要求側ノード
に送信した後(ステップ86、88、90)、サーバ
は、ノードBからの要求に関連するインポートされたメ
モリ用のOMMUエントリ(または複数のエントリ)を
削除することによって接続を「切断」する。
【0021】完了したメッセージに応答して、要求側ノ
ードは、要求に使用されたメモリがアンエクスポートさ
れるように対応するIMMUエントリ(または複数のエ
ントリ)を削除することによって接続のその側を切断
し、ローカル読取り/書込み制御を要求側システムのロ
ーカル物理メモリのその部分に戻す(ステップ94)。
次いで、切断操作と並行して、要求側ノードは、受信さ
れたデータを処理する(ステップ96)。
【0022】
【発明が解決しようとする課題】もちろん、従来技術
は、遠隔ディスク読取り操作を実施するために図5に関
して上記で説明した動作のシーケンスの多数の変更を含
む。しかしながら、説明したステップは、Solari
TM(Sun Microsystems社の商標)な
ど、UNIXTM(SCOの商標)タイプのオペレーティ
ング・システムを使用する分散コンピュータ・システム
について代表的なものである。本発明は、遠隔ディスク
読取り、および遠隔ノード上のメモリ記憶装置からの同
様の遠隔データ検索操作をより効率的にするシステムお
よび方法を提供することを課題とするものである。
【0023】
【課題を解決するための手段】本発明を使用する分散コ
ンピュータ・システムでは、遠隔読取り操作を実施する
ためのクライアント・ノードと呼ばれるもの、およびサ
ーバ・ノードと呼ばれるものを含めて、多数のコンピュ
ータまたはコンピュータ・ノードが存在する。クライア
ント・ノードならびにサーバ・ノードは、事実、サーバ
・クラスタ外のコンピュータの観点から単一のサーバ・
ノードとして動作するコンピュータ・ノードのクラスタ
の一部である。
【0024】クライアント・ノードは、サーバ・ノード
のところにあるディスクまたは同様のデバイスのデータ
を要求するとき、読取りバッファを割り当てられたグロ
ーバル・アドレス範囲にマップする1つまたは複数の着
信MMU(IMMU)エントリを生成し、記憶すること
によって、割り振られた読取りバッファに関連するメモ
リをエクスポートする。遠隔データ読取り要求は、割り
当てられたグローバル・アドレス範囲とともに、サーバ
・ノードに伝達される。
【0025】サーバ・ノードのところで、要求は、読取
り要求中で指定されたグローバル・アドレス範囲をロー
カル物理アドレスの対応する範囲にマップするために1
つまたは複数の発信MMU(OMMU)エントリを生成
し、記憶するメモリ・インポート操作を実施することに
よって処理される。サーバ中のマップされたローカル物
理アドレスは、サーバのメモリ中の位置ではない。サー
バは、次いで要求メッセージ中で指定されたデータをデ
ィスクからマップされたローカル物理アドレスに直接転
送するディスク・コントローラDMA操作を実施する。
DMA操作は、指定されたデータをサーバのネットワー
ク・インタフェースに送信し、そこでデータがそこに転
送されるマップされたローカル物理アドレスが対応する
グローバル・アドレスに変換される。対応するグローバ
ル・アドレスを有する指定されたデータは、次いでクラ
イアント・ノードに送信される。
【0026】クライアント・ノードは、指定されたデー
タの受信に応答して、受信された指定されたデータ中の
グローバル・アドレスを割り振られた受信バッファに対
応するローカル物理アドレスに変換し、受信された指定
されたデータを割り振られた受信バッファ中に記憶す
る。
【0027】本発明の追加の目的および特徴は、図面に
関連して行った以下の詳細な説明および首記の請求の範
囲からより容易に理解できよう。
【0028】
【発明の実施の形態】図6を参照すると、マルチCPU
サーバ202、および1つまたは複数の通信ネットワー
ク206を介してサーバに結合された多数のクライアン
ト・コンピュータ204を含む分散コンピュータ・シス
テム200が示されている。サーバ202は、単一のサ
ーバ・コンピュータによって与えることができるよりも
多くの計算サービスがクライアント204に与られるよ
うにコンピュータ210の1つまたは複数のクラスタ2
08を含む。サーバ202は、「サーバ・クラスタ」と
も呼ばれる。本明細書では、情報を共用する必要がある
2つのサーバ・コンピュータ210が同じクラスタ21
0中にあるか、または異なるクラスタ210中にあるか
は無関係である。
【0029】計算タスクおよびファイル処理タスクは、
サーバのコンピュータ210上に分配される。したがっ
て、1つのサーバ・コンピュータ上で動作しているプロ
セスによって必要とされるデータは、他のサーバ・コン
ピュータの一部である(またはそれに接続される)ディ
スクまたは同様のメモリ・デバイス中に位置する。
【0030】本発明は、主として「遠隔ディスク読取
り」操作をより効率的にする方法を目的とする。すなわ
ち、サーバ202中の第1のコンピュータ210がサー
バ中の他のコンピュータ210のところにあるディスク
中に記憶されたデータを読み取る必要があるとき、本発
明は、図5に関して上記で説明したものよりも効率的で
ある操作を実施する効率的な機構および方法を提供す
る。
【0031】本発明を説明する目的で、「クライアン
ト」および「サーバ」なる語は、どちらもサーバ202
中のコンピュータ210を示すために使用される。ただ
し、本発明は、任意の「真の」クライアント・コンピュ
ータ204とサーバ・クラスタ202中のサーバ・コン
ピュータ210との間で遠隔ディスク・データ読取り操
作を実施するためにも使用できる。
【0032】図7に、ノードB上のプロセスがノードA
のところにあるディスクから情報を読み取ることを可能
にする本発明の改良された遠隔ディスク・データ読取り
手順を示す。この手順の一部のステップは、図5に関し
て上記で説明したものと同じものであり、したがって図
5の場合と同じ参照番号が割り当てられる。新しいステ
ップまたは修正されたステップには新しい参照番号が割
り当てられる。
【0033】第1のステップは、ノードBがノードAに
「メモリをエクスポート」することによって受信バッフ
ァをセットアップすることである(ステップ80)。い
くつかの実施形態では、このステップは、ノードBがノ
ードAからの多数のディスク読取りを実施していること
が予め分かっているので予め実施される。しかしなが
ら、たいていの実施形態では、メモリをエクスポートす
るステップは、遠隔ディスク読取り要求に応答して、ノ
ードB中のユーザまたはカーネル・プロセスによって実
施される。メモリをエクスポートするステップ80は、
ノードBのメモリ中の受信バッファの物理アドレス範囲
をグローバル・アドレスの対応する範囲にマップするI
MMUエントリをノードB中で作成することによって実
施される。上記のように、ノードBは、一般に、メモリ
を他のノードにエクスポートするためにそれに事前に割
り当てられるグローバル・アドレスの範囲を有する。し
かしながら、グローバル・アドレスを割り当てる他の機
構も同様に適用できる。
【0034】次に、ステップ82で、クライアント・ノ
ード(ノードB)は、要求する情報が記憶されているサ
ーバ・ノード(ノードA)に要求メッセージを送信す
る。要求メッセージは、 ・ メッセージが送信される宛先ノード ・ メッセージが送信される発信源ノード ・ 要求された情報を含むディスク・ファイル、ディス
ク・ファイル部分、ディスク位置範囲など情報源 ・ 要求された情報が送信されるべきグローバル・アド
レス、および ・ ここでは関係のない、プロトコル・パラメータなど
他のパラメータを指定する。
【0035】サーバ(ノードA)において、要求メッセ
ージが受信されたとき、サーバは、要求側クライアント
・ノード、ノードBによってエクスポートされるメモリ
をインポートするためにOMMUエントリをセットアッ
プする(ステップ300)。ステップ300でセットア
ップされたOMMUエントリは、受信されたメッセージ
中で指定されたグローバル・アドレス範囲をサーバ・ノ
ード中の物理メモリの対応する範囲にマップする。ただ
し、図5のステップ84の場合と異なり、マップされた
ローカル物理アドレスは、第2のコンピュータのメモリ
中の位置を示すのではなく、サーバのネットワーク・イ
ンタフェースによる使用のために残しておいた物理アド
レスである。必要な場合(例えば、ネットワーク・イン
タフェースに割り当てられる物理アドレスの十分に大き
い隣接する範囲が使用できない場合および/またはマッ
プされたアドレス範囲のサイズが2n ページに等しくな
い場合)、サーバ・ノードは、指定されたグローバル・
アドレス空間が2つ以上のローカル物理アドレス範囲に
マップされるように2つ以上のOMMUエントリを生成
する。
【0036】要求側ノードB中のIMMUおよび応答側
または送信側ノードA中のOMMUがセットアップされ
た後、サーバ中のディスク・コントローラは、要求され
たデータをインポートされたメモリに割り当てられた
(サーバ中の)ローカル物理アドレスにコピーするよう
に(図8に示される)その内部DMA332をセットア
ップする(ステップ301)。言い換えれば、DMAの
発信源アドレス、宛先アドレス、およびデータ量カウン
ト・レジスタは、ディスク・デバイスから要求されたク
ライアント・コンピュータ中に位置するメモリに割り当
てられたローカル物理アドレスへの直接データ転送を実
施するために必要な値によってセットアップされる。
【0037】次に、サーバは、実質上ネットワーク通信
エラー・イベント・カウント(CEEカウント)をロー
カル変数(LEEカウント)中に記憶する「オープン・
バリア(バリアを開く)」操作を実施する(ステップ3
02)。後で「クローズ・バリア(バリアを閉じる)」
操作が実施されたとき、ネットワーク・インタフェース
用のドライバは、未決定の送信操作が完了するのを待
ち、次いで現在のネットワーク通信エラー・イベント・
カウント(CEEカウント)がローカルに記憶された値
LEEカウントと比較され、その2つが等しくない場
合、エラー状況フラグが上がる。
【0038】「オープン・バリア」ステップの後、ディ
スク・コントローラDMA転送操作が開始され、要求さ
れたデータがディスクから直接サーバのネットワーク・
インタフェース(304)に送信される。DMA一致用
の宛先アドレスはOMMAによってマップされるので、
NICカードは、直接関連する内部バスからディスク・
データを受信し、そのデータを通信チャネルを介して、
対応するグローバル・アドレスに変換されたローカル物
理宛先アドレスを有する要求側サーバに再送信する。要
求側クライアント・コンピュータにおいて、送信された
データ中のグローバル・アドレスは、受信側クライアン
ト・コンピュータのIMMUによってローカル物理アド
レスに変換され、次いでそのデータは、それらのローカ
ル物理アドレスに対応する受信バッファ中に記憶するた
めにローカル内部バス上に送信される。前記のように、
ネットワーク・インタフェースによる上述のすべてのア
ドレス変換およびデータ再転送は、完全に自動的であ
り、そのようなデバイスの標準の操作を表す。
【0039】サーバは、要求されたデータを要求側ノー
ドに送信した後(ステップ301、302、304)、
次いでデータ送信がうまくいったかどうかを判定する
「クローズ・バリア」操作(ステップ306)を実施す
る。実際に、クローズ・バリアでは、データ送信エラ
ー、または命令のオープン−クローズ・バリア対によっ
て保護されるデータ転送に無関係の他の通信システム・
エラーを検出する。クローズ・バリア操作でエラー・フ
ラグが上がった場合、ステップ302、304、306
を繰り返す。所定の回数の反復の後で、データ送信が引
き続きうまくいかない場合、エラー・メッセージをクラ
イアントおよびサーバ・コンピュータ・オペレータに送
信する(これは単にエラー・メッセージをログ・ファイ
ル中に書き込むステップを必要とする)。
【0040】DMA操作が完了し、要求されたデータが
完全に要求側ノード中の受信バッファに送信された後、
「完了した」メッセージは、要求されたデータの送信が
完了したことが要求側ノードに通知されるように、送信
側ノードによって要求側ノード中の事前に定義されたメ
ッセージ待ち行列位置に送信される(ステップ90)。
【0041】最後に、サーバは、ノードBからの要求に
関連するインポートされたメモリ用のOMMUエントリ
(または複数のエントリ)を削除することによって接続
を「切断」する(ステップ92)。
【0042】完了したメッセージに応答して、要求側ノ
ードは、要求に使用されたメモリがアンエクスポートさ
れるように対応するIMMUエントリ(または複数のエ
ントリ)を削除することによって接続のこちら側を切断
し、ローカル読取り/書込み制御を要求側システムのロ
ーカル物理メモリのその部分に戻す(ステップ94)。
次いで、切断操作と並行して、要求側ノードは、受信さ
れたデータを処理する(ステップ96)。
【0043】もちろん、遠隔ディスク読取り操作を実施
する図7に関して上記で説明した操作のシーケンスには
多数の変形がある。しかしながら、上記で説明したDM
A操作ステップ(300、304)は、従来技術の遠隔
ディスク読取り方法に勝る大きい利点を与える。特に、
ディスク読取り操作は、ローカル・サーバ・メモリへの
記憶操作が回避され、システム待ち時間が減少するの
で、より速く実施される。また、極めて重要なことに、
サーバがローカル・メモリ・リソースをクライアント・
コンピュータの遠隔読取り操作で使用するために割り振
る必要がないのでサーバ中のメモリ使用度が小さくな
る。
【0044】図8に、サーバ・クラスタ200中のコン
ピュータ210のブロック図を示す(図6参照)。コン
ピュータ210は、特定の遠隔ディスク読取り操作に関
してサーバまたはクライアントのどちらにもなることが
できる。コンピュータ210は、CPU320、内部通
信バスまたはメモリ・バス322、ランダム・アクセス
・メモリ324、通信インタフェースまたはネットワー
ク・インタフェース(NIC)326、および高速磁気
ディスクなど、不揮発性非ランダム・アクセス・メモリ
・デバイス328、および対応するディスク・コントロ
ーラ330を含む。ディスク・コントローラ330は、
ディスク記憶装置328との間で直接メモリ・アクセス
(DMA)データ転送を実施するDMA論理回路332
を含む。
【0045】好ましい実施形態では、NIC326およ
びディスク・コントローラ330は、PCIバス334
に結合される。PCIバス334は、バス・ブリッジ3
36によって主メモリ・バス322に結合される。コン
ピュータのメモリ324は、通常、ディスク記憶装置3
28とともに次のものを記憶する。 ・ オペレーティング・システム340(例えば、Su
n Microsystems社のSolarisTM
ペレーティング・システム)。 ・ 遠方に位置するディスク記憶装置からデータを要求
することができるアプリケーション・プログラムを含め
て、アプリケーション・プログラム342。 ・ 特に、アプリケーション・プログラム・コマンドに
応答してコンピュータ・ノード間のファイル転送を処理
するファイル・システム341。このファイル・システ
ムは、ファイル転送のクライアント側およびサーバ側を
処理するクライアント・ファイル・システム部分および
サーバ・ファイル・システム部分を含む。 ・ ネットワーク・インタフェース326を制御し、か
つその中のIMMUおよびOMMUの使用を管理するN
ICドライバ344(図8には示されていない)。 ・ NICドライバ344とともに、遠隔ディスク読取
り手順のクライアント側部分を実施する(オペレーティ
ング・システム340の一部として実施されることが好
ましい)遠隔ディスク読取り手順346。 ・ ディスク・コントローラのDMAのセットアップを
含めて、ディスク・コントローラの使用を制御するディ
スク・コントローラ・ドライバ348。 ・ 遠隔ノードから要求されたデータを受信する受信バ
ッファ350。 ・ 遠隔ノードがデータをコンピュータ210に送信し
た後で遠隔ノードから「完了した」メッセージなどを受
信する受信待ち行列352。
【0046】ファイル・システム341のクライアント
側部分は、遠隔ディスクI/O操作を実施するイベント
の連鎖全体を開始するステップ82を実施する。
【0047】図7に示される遠隔ディスク読取り手順の
サーバ側は、ファイル・システム341(ステップ90
を実施する)、ステップNICドライバ344(すなわ
ち、ステップ300、302、306、308および9
2を実施する)、およびディスク・コントローラ・ドラ
イバ348(すなわち、ステップ301および304を
実施する)中で実施される。図7には示されていない
が、サーバ側で実施されるステップの連鎖全体は、ファ
イル・システム341のサーバ側部分の制御下で実施さ
れる。すなわち、クライアント側のステップ82がファ
イル・システム341のサーバ側に話しかけ、次いでフ
ァイル・システム341が図7のサーバ側上に示される
一組のステップを開始する。
【0048】遠隔ディスク書込み 上記で説明したものと全く同じ技法が遠隔ディスク書込
み操作を実施するためにも使用できる。すなわち、クラ
イアント・ノードは、図7に示されるものと同じ手順を
使用して、以下のわずかな変更を加えて、サーバ・ノー
ド上のディスクに直接データを書き込むことができる。
ステップ80で、ディスクに書き込むべきデータを含む
メモリをエクスポートする。ステップ82で、要求メッ
セージは、実施すべきディスク書込み操作を示す。ステ
ップ301で、データを遠隔でディスクへ書き込むため
にディスク・コントローラDMAがセットアップされ、
かつステップ304でディスクへのDMA遠隔書き込み
が行われる(すなわちクライアントからのデータがディ
スクに書き込まれる)。
【0049】要するに、本発明は第1のコンピュータの
ディスクから第2のコンピュータのメモリへ、またその
逆にデータを直接転送する際に、転送されたデータのロ
ーカル・コピーが第1のコンピュータのメモリ中に作成
されるのを回避するために第1のコンピュータ中のメモ
リをバイパスするようにしたものである。
【0050】以上、本発明について、いくつかの特定の
実施形態に関して説明したが、説明は、本発明を説明す
るためのものであり、本発明を限定するものではない。
特許請求の範囲によって定義される本発明の真の精神お
よび範囲から逸脱することなく、様々な修正形が当業者
なら思い付くであろう。
【図面の簡単な説明】
【図1】 コンピュータ・ネットワーク中の2つのコン
ピュータ・ノードのブロック図である。
【図2】 コンピュータ・ネットワークの各コンピュー
タ中で使用される通信インタフェースの構成要素を示す
ブロック図である。
【図3】 仮想アドレス空間、ローカル・アドレス空
間、およびグローバル・アドレス空間、およびそれらの
アドレス空間間のマッピングを示す図である。
【図4】 分散コンピュータ・システムの第1のノード
から第2のノードへのデータの送信に関連するアドレス
変換を実施するために使用されるコンピュータ・モジュ
ールのブロック図である。
【図5】 第1のコンピュータ・ノードB上のプロセス
が他のコンピュータ・ノードAのところにあるディスク
から情報を読み取る従来の手順の流れ図である。
【図6】 単一のサーバ・ノードとして動作するコンピ
ュータのクラスタを有するコンピュータ・システムを示
す図である。
【図7】 本発明の一実施形態による第1のコンピュー
タ・ノードB上のプロセスが他のコンピュータ・ノード
Aのところにあるディスクから情報を読み取る手順の流
れ図である。
【図8】 本発明の好ましい実施形態を組み込んだサー
バ・コンピュータまたはクライアント・コンピュータの
ブロック図である。
【符号の説明】
200 分散コンピュータ・システム 202 マルチCPUサーバ 204 クライアント・コンピュータ 206 通信ネットワーク 208 サーバ・クラスタ 210 コンピュータ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年7月27日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正内容】
【0009】仮想、ローカル物理アドレス空間とグロー
バル・アドレス空間との間のメモリ・マッピング 図3および図4を参照すると、(図1に示されるものな
ど)分散コンピュータ・システム中のノードは、共用グ
ローバル・アドレス空間GAを使用する。各ノードは、
そのローカル・アドレス空間の一部をグローバル・アド
レス空間中の「ウィンドウ」にマップする。さらに、各
ノード上のプロセスは、それらのプライベート仮想アド
レス空間VAの一部をローカル物理アドレス空間PAに
マップし、さらにローカル物理アドレス空間PAの一部
をグローバル・アドレス空間GA中のウィンドウにエク
スポートする。ローカル物理アドレス空間の一部を「エ
クスポート」するプロセスは、割り当てられたグローバ
ル・アドレス空間範囲を介してローカル物理アドレス空
間のエクスポートされた部分への読取りアクセスおよび
/または書込みアクセスが特定の他のコンピュータ・ノ
ードに、与えられるので「ローカル物理アドレスの一部
を他のノードにエクスポート」とも呼ばれる。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正内容】
【0028】
【発明の実施の形態】図6を参照すると、マルチCPU
サーバ202、および1つまたは複数の通信ネットワー
ク206を介してサーバに結合された多数のクライアン
ト・コンピュータ204を含む分散コンピュータ・シス
テム200が示されている。サーバ202は、単一のサ
ーバ・コンピュータによって与えることができるよりも
多くの計算サービスがクライアント204に与られるよ
うにコンピュータ210の1つまたは複数のクラスタ2
08を含む。サーバ202は、「サーバ・クラスタ」と
も呼ばれる。本明細書では、情報を共用する必要がある
2つのサーバ・コンピュータ210が同じクラスタ20
中にあるか、または異なるクラスタ208中にあるか
は無関係である。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0048
【補正方法】変更
【補正内容】
【0048】遠隔ディスク書込み 上記で説明したものと全く同じ技法が遠隔ディスク書込
み操作を実施するためにも使用できる。すなわち、クラ
イアント・ノードは、図7に示されるものと同じ手順を
使用して、以下のわずかな変更を加えて、サーバ・ノー
ド上のディスクに直接データを書き込むことができる。
ステップ80で、ディスクに書き込むべきデータを含む
メモリをエクスポートする。ステップ82で、要求メッ
セージは、実施すべきディスク書込み操作を示す。ステ
ップ301で、データを遠隔でディスクへ読み込むため
にディスク・コントローラDMAがセットアップされ、
かつステップ304でディスクへのDMA遠隔読み込み
が行われる(すなわちクライアントからのデータがディ
スクに書き込まれる)。
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 マーシャル・シイ・ピース アメリカ合衆国・94043・カリフォルニア 州・マウンテンビュー・ローラ レーン・ 2368 (72)発明者 スリニバサン・ヴィスワナサン アメリカ合衆国・94536・カリフォルニア 州・フレモント・レキシントン ストリー ト 339番・38725

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 メモリ・マップDMA転送を使用して、
    第1のコンピュータにあるディスクから第2のコンピュ
    ータ中のメモリに、または第2のコンピュータ中のメモ
    リから第1のコンピュータにあるディスクにデータを直
    接転送するステップと、 転送されたデータのローカル・コピーが第1のコンピュ
    ータのメモリ中に作成されるのを回避するために第1の
    コンピュータ中のメモリをバイパスするステップとを含
    む、第1のコンピュータと第2のコンピュータとの間で
    遠隔ディスク読取り操作を実施する方法。
  2. 【請求項2】 第1のコンピュータにおいて、 受信バッファに関連するローカル物理アドレスの範囲を
    グローバル・アドレスの対応する範囲にマップし、 第2のコンピュータのところに位置するディスクから取
    り出されるべきデータおよび割り振られた受信バッファ
    に関連するグローバル・アドレスの範囲を指定する要求
    メッセージを第2のコンピュータに送信し、 第2のコンピュータにおいて、要求メッセージの受信に
    応答して、 要求メッセージ中で指定されたグローバル・アドレスの
    範囲をローカル物理アドレスの対応する範囲にマップ
    し、 要求メッセージ中で指定されたデータをディスクからマ
    ップされたローカル物理アドレスに直接転送するDMA
    操作を実施し、DMA操作は、データがそれに転送され
    たマップされたローカル物理アドレスがそこで対応する
    グローバル・アドレスに変換される第2のコンピュータ
    中のネットワーク・インタフェースに指定されたデータ
    を送信し、 対応するグローバル・アドレスを有する指定されたデー
    タを第2のコンピュータのネットワーク・インタフェー
    スから第1のコンピュータ中のネットワーク・インタフ
    ェースに送信し、 第1のコンピュータにおいて、指定されたデータの受信
    に応答して、 受信された指定されたデータ中のグローバル・アドレス
    を割り振られた受信バッファに対応するローカル物理ア
    ドレスに変換し、 受信された指定されたデータを割り振られた受信バッフ
    ァ中に記憶することを含み、DMA操作が、転送された
    データのローカル・コピーが第2のコンピュータのとこ
    ろのメモリ中に作成されるのを回避するために第2のコ
    ンピュータ中のメモリをバイパスする、第1のコンピュ
    ータと第2のコンピュータとの間で遠隔ディスク読取り
    操作を実施する方法。
  3. 【請求項3】 第1のコンピュータにおいて、第2のコ
    ンピュータのディスクからのデータに対するアプリケー
    ション・プログラム要求に応答して、 ローカル物理アドレスの関連する範囲を有する受信バッ
    ファを第1のコンピュータ中のメモリ中に割り振り、 割り振られた受信バッファに関連するローカル物理アド
    レス範囲をグローバル・アドレスの対応する範囲にマッ
    プするエントリを第1のコンピュータ中の入力メモリ・
    マッピング・ユニット中に記憶し、 第2のコンピュータのディスクから取り出されるべきデ
    ータおよび割り振られた受信バッファに関連するグロー
    バル・アドレスの範囲を指定する要求メッセージを第2
    のコンピュータに送信し、 第2のコンピュータにおいて、要求メッセージの受信に
    応答して、 要求メッセージ中で指定されたグローバル・アドレスの
    範囲をローカル物理アドレスの対応する範囲にマップす
    るエントリを第2のコンピュータ中の出力メモリ・マッ
    ピング・ユニット中に記憶し、その際、マップされたロ
    ーカル物理アドレスが第2のコンピュータのメモリ中の
    位置を示さない、 要求メッセージ中で指定されたデータをディスクからマ
    ップされたローカル物理アドレスに直接に転送するDM
    A操作を実施し、そのDMA操作は、データがそれに転
    送されたマップされたローカル物理アドレスがそこで対
    応するグローバル・アドレスに変換される第2のコンピ
    ュータ中のネットワーク・インタフェースに指定された
    データを送信し、 対応するグローバル・アドレスを有する指定されたデー
    タを第1のコンピュータに送信し、 第1のコンピュータにおいて、指定されたデータの受信
    に応答して、 受信された指定されたデータ中のグローバル・アドレス
    を割り振られた受信バッファに対応するローカル物理ア
    ドレスに変換し、 受信された指定されたデータを割り振られた受信バッフ
    ァ中に記憶する、ことを含み、DMA操作が、転送され
    たデータのローカル・コピーが第2のコンピュータのと
    ころのメモリ中に作成されるのを回避するために第2の
    コンピュータ中のメモリをバイパスする、第1のコンピ
    ュータと第2のコンピュータとの間で遠隔ディスク読取
    り操作を実施する方法。
  4. 【請求項4】 第2のコンピュータにおいて、出力メモ
    リ・マッピング・ユニット中のエントリが、指定された
    データが第1のコンピュータ中にうまく送信された後で
    非活動化され、 第1のコンピュータにおいて、入力メモリ・マッピング
    ・ユニット中のエントリが、指定されたデータが第2の
    コンピュータからうまく受信された後で非活動化される
    請求項3に記載の方法。
  5. 【請求項5】 第1のコンピュータに、 CPUと、 受信バッファがその中に割り振られるメモリを含むメモ
    リと、 入力メモリ管理ユニット(IMMU)と、 ネットワーク・インタフェースと、 第1のコンピュータのCPUによって実行でき、(A)
    受信バッファに関連するローカル物理アドレスの範囲を
    グローバル・アドレスの対応する範囲にマップするエン
    トリをIMMU中に記憶し、かつ(B)第2のコンピュ
    ータにあるディスクから取り出されるべきデータと、割
    り振られた受信バッファに関連するグローバル・アドレ
    スの範囲とを指定する要求メッセージを、ネットワーク
    ・インタフェースおよびネットワーク・インタフェース
    に結合された通信チャネルを介して第2のコンピュータ
    に送信するネットワーク・インタフェース・ドライバ手
    順とを含み、 第2のコンピュータに、 CPUと、 メモリと、 要求メッセージ中で指定されたデータを記憶するディス
    クと、 出力メモリ管理ユニット(OMMU)と、 通信チャネルに結合されたネットワーク・インタフェー
    スと、 第2のコンピュータのCPUによって実行でき、(A)
    要求メッセージ中で指定されたグローバル・アドレスの
    範囲をローカル物理アドレスの対応する範囲にマップす
    るエントリをOMMU中に記憶するネットワーク・イン
    タフェース・ドライバであって、マップされたローカル
    物理アドレスが第2のコンピュータのメモリ中の位置を
    示さないネットワーク・インタフェース・ドライバと、 ディスクに結合され、内部バスによってネットワーク・
    インタフェースに結合され、要求メッセージ中で指定さ
    れたデータをディスクからマップされたローカル物理ア
    ドレスに直接に転送するDMA論理回路を含むディスク
    ・コントローラであって、DMA操作が、(A)データ
    がそれに転送されたマップされたローカル物理アドレス
    がそこでOMMU中に記憶されたエントリに従って対応
    するグローバル・アドレスに変換される第2のコンピュ
    ータ中のネットワーク・インタフェースに指定されたデ
    ータを送信し、かつ(B)指定されたデータが対応する
    グローバル・アドレスとともに通信チャネルを介して第
    1のコンピュータに送信されるディスク・コントローラ
    とを含み、 第1のコンピュータに、ネットワーク・インタフェース
    が、指定されたデータの受信に応答して、(A)受信さ
    れた指定されたデータ中のグローバル・アドレスを割り
    振られた受信バッファに対応するローカル物理アドレス
    に変換し、かつ(B)受信された指定されたデータを割
    り振られた受信バッファ中に記憶する論理回路を含む、
    分散コンピュータ・システム中で第1のコンピュータと
    第2のコンピュータとの間で遠隔ディスク読取り操作を
    実施する装置。
  6. 【請求項6】 第2のコンピュータ中のネットワーク・
    インタフェース・ドライバが、指定されたデータが第1
    のコンピュータ中にうまく送信された後でOMMU中の
    エントリを非活動化し、 第1のコンピュータ中のネットワーク・インタフェース
    ・ドライバが、指定されたデータが第2のコンピュータ
    からうまく受信された後でIMMU中のエントリを非活
    動化する請求項5に記載の装置。
JP10183849A 1997-06-30 1998-06-30 第1のコンピュータと第2のコンピュータとの間で遠隔ディスク読取り操作を実施する方法と装置 Pending JPH1196127A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/885,058 US5884313A (en) 1997-06-30 1997-06-30 System and method for efficient remote disk I/O
US08/885058 1997-06-30

Publications (1)

Publication Number Publication Date
JPH1196127A true JPH1196127A (ja) 1999-04-09

Family

ID=25386035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10183849A Pending JPH1196127A (ja) 1997-06-30 1998-06-30 第1のコンピュータと第2のコンピュータとの間で遠隔ディスク読取り操作を実施する方法と装置

Country Status (5)

Country Link
US (2) US5884313A (ja)
EP (1) EP0889623B1 (ja)
JP (1) JPH1196127A (ja)
CA (1) CA2241994A1 (ja)
DE (1) DE69826930T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152891A (ja) * 2008-12-10 2010-07-08 Nvidia Corp ヘテロジニアス処理ユニット間での不均一メモリアクセスのためのチップセットサポート
WO2012160792A1 (ja) * 2011-05-23 2012-11-29 パナソニック株式会社 通信端末

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6026448A (en) * 1997-08-27 2000-02-15 International Business Machines Corporation Method and means for exchanging messages, responses and data between different computer systems that require a plurality of communication paths between them
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
DE19807076A1 (de) * 1998-02-20 1999-08-26 Cit Alcatel Datenbereitstellungsystem
US6549946B1 (en) * 1998-05-21 2003-04-15 International Business Machines Corporation Apparatus and method for telecommunication routing and parameter negotiation
US6615383B1 (en) * 1998-05-29 2003-09-02 Sun Microsystems, Inc. System and method for message transmission between network nodes connected by parallel links
US6920475B1 (en) * 1999-04-23 2005-07-19 Oracle International Corporation Communication architecture for distributed computing environment
JP3376956B2 (ja) * 1999-05-14 2003-02-17 日本電気株式会社 プロセッサ間通信装置
US7281030B1 (en) * 1999-09-17 2007-10-09 Intel Corporation Method of reading a remote memory
US6910082B1 (en) * 1999-11-18 2005-06-21 International Business Machines Corporation Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server
US6892298B2 (en) * 2000-07-26 2005-05-10 Times N Systems, Inc. Load/store micropacket handling system
US7876748B1 (en) 2000-09-07 2011-01-25 International Business Machines Corporation Stable hash-based mapping computation for a dynamically varying target set
US20020129172A1 (en) * 2001-03-08 2002-09-12 International Business Machines Corporation Inter-partition message passing method, system and program product for a shared I/O driver
US7124228B2 (en) * 2001-07-10 2006-10-17 Sun Microsystems, Inc. Bus communication architecture, in particular for multicomputing systems
US7266622B2 (en) * 2002-03-25 2007-09-04 International Business Machines Corporation Method, computer program product, and system for automatic application buffering
US20040128407A1 (en) * 2002-12-31 2004-07-01 Bennett Joseph A. ATA device programming time
US7526617B2 (en) * 2005-12-29 2009-04-28 Sap Ag System and method for memory management using memory windows
US20080225837A1 (en) * 2007-03-16 2008-09-18 Novell, Inc. System and Method for Multi-Layer Distributed Switching
US7882327B2 (en) * 2007-07-31 2011-02-01 Advanced Micro Devices, Inc. Communicating between partitions in a statically partitioned multiprocessing system
US10572393B2 (en) * 2015-04-22 2020-02-25 ColorTokens, Inc. Object memory management unit
US10454845B2 (en) * 2015-04-22 2019-10-22 ColorTokens, Inc. Object memory management unit
US10778636B2 (en) * 2016-06-28 2020-09-15 ColorTokens, Inc. Dynamic credential based addressing
CN114610232A (zh) * 2020-04-28 2022-06-10 华为技术有限公司 一种存储系统、内存管理方法和管理节点
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
US11593278B2 (en) 2020-09-28 2023-02-28 Vmware, Inc. Using machine executing on a NIC to access a third party storage not supported by a NIC or host
US11829793B2 (en) 2020-09-28 2023-11-28 Vmware, Inc. Unified management of virtual machines and bare metal computers
US11792134B2 (en) 2020-09-28 2023-10-17 Vmware, Inc. Configuring PNIC to perform flow processing offload using virtual port identifiers
US11636053B2 (en) 2020-09-28 2023-04-25 Vmware, Inc. Emulating a local storage by accessing an external storage through a shared port of a NIC
US11736566B2 (en) 2020-09-28 2023-08-22 Vmware, Inc. Using a NIC as a network accelerator to allow VM access to an external storage via a PF module, bus, and VF module
US11863376B2 (en) 2021-12-22 2024-01-02 Vmware, Inc. Smart NIC leader election
US11928367B2 (en) 2022-06-21 2024-03-12 VMware LLC Logical memory addressing for network devices
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825358A (en) * 1985-04-10 1989-04-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5394526A (en) * 1993-02-01 1995-02-28 Lsc, Inc. Data server for transferring selected blocks of remote file to a distributed computer network involving only single data transfer operation
US5680573A (en) * 1994-07-12 1997-10-21 Sybase, Inc. Method of buffering data objects in a database
JPH0887459A (ja) * 1994-09-19 1996-04-02 Fujitsu Ltd バックグラウンド通信方式
US5729682A (en) * 1995-06-07 1998-03-17 International Business Machines Corporation System for prompting parameters required by a network application and using data structure to establish connections between local computer, application and resources required by application
FR2737031B1 (fr) * 1995-07-21 1997-08-14 Bull Sa Procede de transfert de donnees dans un systeme informatique multinodal
US5787483A (en) * 1995-09-22 1998-07-28 Hewlett-Packard Company High-speed data communications modem
US5913028A (en) * 1995-10-06 1999-06-15 Xpoint Technologies, Inc. Client/server data traffic delivery system and method
US5887134A (en) * 1997-06-30 1999-03-23 Sun Microsystems System and method for preserving message order while employing both programmed I/O and DMA operations

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152891A (ja) * 2008-12-10 2010-07-08 Nvidia Corp ヘテロジニアス処理ユニット間での不均一メモリアクセスのためのチップセットサポート
US9015446B2 (en) 2008-12-10 2015-04-21 Nvidia Corporation Chipset support for non-uniform memory access among heterogeneous processing units
WO2012160792A1 (ja) * 2011-05-23 2012-11-29 パナソニック株式会社 通信端末
US9116883B2 (en) 2011-05-23 2015-08-25 Panasonic Intellectual Property Management Co., Ltd. Communication terminal including cluster information calculation section and DMA-transfer section
JP6011814B2 (ja) * 2011-05-23 2016-10-19 パナソニックIpマネジメント株式会社 通信端末

Also Published As

Publication number Publication date
DE69826930T2 (de) 2006-03-09
US5884313A (en) 1999-03-16
EP0889623A3 (en) 2002-06-05
EP0889623A2 (en) 1999-01-07
US6049808A (en) 2000-04-11
DE69826930D1 (de) 2004-11-18
CA2241994A1 (en) 1998-12-30
EP0889623B1 (en) 2004-10-13

Similar Documents

Publication Publication Date Title
JPH1196127A (ja) 第1のコンピュータと第2のコンピュータとの間で遠隔ディスク読取り操作を実施する方法と装置
US6611883B1 (en) Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
Cheriton et al. The distributed V kernel and its performance for diskless workstations
US6256657B1 (en) Cross-domain data transfer using deferred page remapping
US8281081B2 (en) Shared memory architecture
Welch et al. Pseudo devices: User-level extensions to the Sprite file system
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
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
TW544589B (en) Loosely coupled-multi processor server
US5630059A (en) Expedited message transfer in a multi-nodal data processing system
EP0889622B1 (en) Apparatus and method for remote buffer allocation and management for message passing between network nodes
US20030145230A1 (en) System for exchanging data utilizing remote direct memory access
US7668841B2 (en) Virtual write buffers for accelerated memory and storage access
US20040117496A1 (en) Networked application request servicing offloaded from host
JP2004523035A (ja) メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
EP0707266B1 (en) Methods and apparatus for a data transfer mechanism in the field of computer systems
JP2004523829A (ja) メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
US9753883B2 (en) Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
JP2002084311A (ja) パケット転送処理装置
US9535851B2 (en) Transactional memory that performs a programmable address translation if a DAT bit in a transactional memory write command is set
Sterbenz Axon: a host-network interface architecture for gigabit communications
US10228968B2 (en) Network interface device that alerts a monitoring processor if configuration of a virtual NID is changed
JPH0831069B2 (ja) 高速通信バスウインド制御装置
CN116680219A (zh) 主机集群通信系统、方法、设备及存储介质
JPH0830567A (ja) 並列計算機のプロセッサ間相互アクセス方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050623

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070821

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080304