(57)【特許請求の範囲】
【請求項１】
第１デバイスが、該第１デバイスが接続される第１バスとコンピュータネットワークとに接続される第１ネットワークアダプタと、前記コンピュータネットワークに接続される第２ネットワークアダプタと、を介して行う第２デバイスをターゲットとするリモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得する方法であって、
前記第１ネットワークアダプタ内の前記第１バスに関連するメモリ領域内に、前記第２デバイスに割り当てられた第１メモリ領域と前記第２デバイスに対する前記リモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得するための第２メモリ領域とを割り当てるステップと、
前記第１メモリ領域に対して前記リモートダイレクトメモリアクセストランザクション要求が行われると、前記第１ネットワークアダプタによって、前記第２デバイスが接続される前記コンピュータネットワーク上に前記リモートダイレクトメモリアクセストランザクションを発行するステップと、
前記第２ネットワークアダプタによって、前記発行されたリモートダイレクトメモリアクセストランザクションを処理するステップと、
前記第２ネットワークアダプタによって、前記リモートダイレクトメモリアクセストランザクションに対応する前記アクセス確認情報を判定するステップと、
前記第２ネットワークアダプタによって、前記コンピュータネットワークを介して前記アクセス確認情報を前記第１ネットワークアダプタの前記第２メモリ領域に送信するステップと、
前記第１ネットワークアダプタによって、前記コンピュータネットワークから前記リモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を前記第２メモリ領域に受信するステップと、
を備えたことを特徴とするアクセス確認情報を取得する方法。
【請求項２】
第１デバイスがコンピュータネットワークを介して行う第２デバイスをターゲットとするリモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得できるようにするシステムであって、
前記第１デバイスが接続される第１バスと、
前記第１バスと前記コンピュータネットワーク間に接続され、前記第１バスに関連するメモリ領域内に、前記第２デバイスに割り当てられた第１メモリ領域と、前記第２デバイスに対する前記リモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得するための第２メモリ領域とを有し、前記第１メモリ領域に対して前記リモートダイレクトメモリアクセストランザクション要求が行われると前記第２デバイスが接続される前記コンピュータネットワーク上に前記リモートダイレクトメモリアクセストランザクションを発行し、前記コンピュータネットワークから前記リモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を前記第２メモリ領域に受信するように設定された第１ネットワークアダプタと、
前記ターゲットとなる第２デバイスに接続された第２バスと、
前記第２バスと前記コンピュータネットワーク間に接続され、前記発行されたリモートダイレクトメモリアクセストランザクションを処理し、前記リモートダイレクトメモリアクセストランザクションに対応する前記アクセス確認情報を判定し、前記コンピュータネットワークを介して前記アクセス確認情報を前記第１ネットワークアダプタの前記第２メモリ領域に送信するように設定された第２ネットワークアダプタと、
を備えたことを特徴とするシステム。
【請求項３】
前記リモートダイレクトメモリアクセストランザクションは前記第１メモリ領域のアドレス範囲内のターゲットアドレスを備えることを特徴とする請求項２記載のシステム。
【請求項４】
前記第１ネットワークアダプタは、
前記リモートダイレクトメモリアクセストランザクションのアドレスが、前記第１メモリ領域のアドレス範囲内にあるという判定に基づいて前記第１デバイスから受信したダイレクトメモリアクセストランザクションを識別するインターフェースユニットと、
前記リモートダイレクトメモリアクセストランザクションに関連するデータを待ち行列に入れるバッファユニットと、
前記インターフェースユニットと接続され、前記バッファユニットに前記リモートダイレクトメモリアクセストランザクションに関連するデータのブロックスキューを形成する制御ユニットと、
をさらに備えたことを特徴とする請求項３記載のシステム。
【請求項５】
前記第１バスと前記第２バスはＰＣＩバスであることを特徴とする請求項２から４のいずれか１項記載のシステム。
【請求項６】
第１デバイスがコンピュータネットワークを介して第２デバイスをターゲットとするリモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得できるようにするシステムのネットワークアダプタであって、
前記第１デバイスが接続されるバスと前記コンピュータネットワークの間に接続され、前記バスに関連するメモリ領域内に前記第２デバイスに割り当てられた第１メモリ領域と前記第２デバイスに対する前記リモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得するための第２メモリ領域とを有し、
前記第１メモリ領域に対して前記リモートダイレクトメモリアクセストランザクション要求が行われると、前記第２デバイスが接続される前記コンピュータネットワーク上に前記リモートダイレクトメモリアクセストランザクションを発行し、
前記コンピュータネットワークから前記リモートダイレクトメモリアクセストランザクションに対応するアクセス確認情報を前記第２メモリ領域に受信するように設定されたことを特徴とするネットワークアダプタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータネットワークの構築に関するものであり、更に詳しくは、コンピュータネットワークを介したダイレクトメモリアクセス（直接メモリ操作）に関する。
【０００２】
【従来の技術】
高速ネットワークによって分散リソース（資源）の使用が容易になり、コンピュータネットワーク内の所定のノードに位置するデバイス（装置）から別のノードに位置するリモート（遠隔）メモリへの直接アクセスの重要性が高まっている。データ転送にリモートダイレクトメモリアクセス（ＲＤＭＡ、遠隔直接メモリ操作）を使用すると、コンピュータネットワーク内のプロセッサは、それぞれのユーザーメモリ間においてオペレーティングシステムの最小限の介入によりデータを直接交換することができる。この結果、起動に伴うレイテンシー（待ち時間）の削減と共にスループットの向上が可能となる。
【０００３】
かかるＲＤＭＡ動作とは、２つのデバイスのメモリ間におけるネットワークを介した直接的なデータ交換のことである。ＲＤＭＡ動作においては、ノード（例：サーバー）がメモリを割り当ててピンダウン（スワップ不能にする）し、そのメモリ内容を別のノード（例：クライアント）に送信すると、そのノード（クライアント）は該メモリ（サーバーのメモリ）に直接的に読み取り（リード）及び書き込み（ライト）を行うことができる。ここにおいて、「直接的」という言葉は、ＲＤＭＡ動作にはサーバー又はクライアントの中央処理装置（ＣＰＵ）が関与しないことを意味している。かかるＲＤＭＡ動作を使用すれば、クライアントは、サーバーが上述のように引き渡したメモリをもうひとつのページファイルとして使用できる。
【０００４】
【発明が解決しようとする課題】
しかしながら、ネットワークを介したアクセスには常にエラーの可能性が存在する。ＲＤＭＡ動作によって書き込みアクセスが適切に行われたことを確認するには、書き込みアクセスを実行したデバイスは、書き込んだデータを読み取りアクセスを実行して読み取る必要がある。又、ＲＤＭＡ動作によって読み取りアクセスが適切に実行されたことを確認するには、読み取りアクセスを実行したデバイスは、再度読み取りアクセスを実行し、これら２回にわたる読み取りアクセスによって読み取ったデータを比較する必要がある。ＲＤＭＡ動作を検証するためのこれらの方法には、時間を所要すると共にネットワークのリソースを浪費するという欠点がある。
【０００５】
以上のことから、前述のような手順を踏むことなく、ＲＤＭＡ動作が適切に実行されたというアクセスの確認、及び／又はＲＤＭＡ動作のプロセスにおいてエラーが発生した場合にはエラー情報をＲＤＭＡ動作のイニシエータ（起動側）が取得可能なシステム及びその方法の提供が要求されている。
【０００６】
【課題を解決するための手段】
本発明は、コンピュータネットワークを介したＲＤＭＡトランザクション（ＲＤＭＡ処理）に関するアクセスの確認を提供する方法及びシステムからなる。
【０００７】
本発明の一実施例においては、第１デバイス及び第２デバイスが第１及び第２ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ Ｃｏｍｐｏｎｅｎｔ Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスに各々個別に接続される。そして、該第１及び第２ＰＣＩバスを各々個別に第１及び第２ＰＣＩネットワークアダプタを介してコンピュータネットワークに接続する。該第１及び第２ＰＣＩネットワークアダプタは、コンピュータネットワークを介して第２ＰＣＩバスに伝達される第１ＰＣＩバス上のメモリマッピングされた読み取り又は書き込みを容易にする機能ユニットを備えている。第１デバイスが接続されている第１ＰＣＩバスのメモリ領域内には、ＲＤＭＡ領域及びこれと関連するアクセス確認領域が確保され、これらは第２デバイスに割り当てられている。第１デバイスは第２デバイスに割り当てられている該ＲＤＭＡ領域に対して直接書き込み、或いは読み取りすることにより、第２デバイスに対してＲＤＭＡ動作を実行することができる。このＲＤＭＡトランザクションは、第１及び第２ＰＣＩネットワークアダプタが処理する。又、第２ＰＣＩネットワークアダプタは、第２デバイスをターゲットとして第１デバイスがイニシエート（起動）した個々のＲＤＭＡトランザクションに対して、対応するアクセス確認情報を準備し、該情報を応答パケットで第１ＰＣＩネットワークアダプタに送信する。このアクセス確認情報は、第１デバイスがチェックするまで第１ＰＣＩネットワークアダプタに保存される。ＲＤＭＡトランザクションに関するこのアクセス確認情報を取得するには、第２デバイスに割り当てられている第１ＰＣＩバスのＰＣＩメモリ領域内のＲＤＭＡ領域に関連する確認領域に対して第１デバイスがＰＣＩ読み取りを実行する。
【０００８】
【発明の実施の形態】
図１は本発明の一実施例によるシステム１００のブロックダイアグラムである。該システム１００は、ネットワークルーター１０３及び該ルーターに接続された３つのノードＡ〜Ｃからなるコンピュータネットワーク（ネットワーク）である。ノードＡは、バス１２０Ａに接続された１つ以上のデバイス（例：１１１Ａ、１１２Ａ、１１３Ａ）を備えている。該バス１２０Ａはネットワークアダプタ１３０Ａを介してネットワークルーター１０３に接続されている。ノードＢは、バス１２０Ｂに接続された１つ以上のデバイス（例：１１１Ｂ、１１２Ｂ）を備えている。該バス１２０Ｂはネットワークアダプタ１３０Ｂを介してネットワークルーター１０３に接続されている。ノードＣは、バス１２０Ｃに接続された１つ以上のデバイス（例：１１１Ｃ、１１２Ｃ、１１３Ｃ）を備えている。該バス１２０Ｃはネットワークアダプタ１３０Ｃを介してネットワークルーター１０３に接続されている。
【０００９】
システム１００の各デバイス（例：１１１Ａ、１１２Ａ、１１３Ａ、１１１Ｂ、１１２Ｂ、１１１Ｃ、１１２Ｃ、１１３Ｃ）を一般的にデバイス１１０と呼ぶことにする。該デバイス１１０は、ディスプレイ、ディスクドライブ、サウンドカード、スモールコンピュータ標準インターフェース（ＳＣＳＩ：Ｓｍａｌｌ Ｃｏｍｐｕｔｅｒ Ｓｔａｎｄａｒｄ Ｉｎｔｅｒｆａｃｅ）アダプタ等の従来技術によるＰＣＩデバイスであってよい。又、該デバイス１１０は、ネットワークに接続された従来技術によるワークステーションやパーソナルコンピュータであってもよく、更には１つのネットワークであってもよい。或いは又、該デバイス１１０は、特殊なノードであってもよい。例えば、該デバイス１１０は、ダイレクトメモリアクセス（ＤＭＡ）デバイスを有するデータボールトや１つ以上のストレージデバイスに接続されたディスクコントローラカードであってもよい。更には、該デバイス１１０は、入出力（Ｉ／Ｏ）デバイス等のノンインテリジェント型のノードであってもよい。又、該デバイス１１０は、内蔵ＣＰＵを有するインテリジェント型のノードやある種のマイクロコントローラ装置であってもよい。即ち、該デバイス１１０は、どのようなデバイスやノード構成であってもよい。尚、該デバイス１１０をペリフェラル、或いはペリフェラルデバイスと呼ぶ場合がある。
【００１０】
バス１２０Ａ〜Ｃの各々には、２つ或いは３つのペリフェラルの接続が図示されているが、これらの各バスには、所望のアプリケーション及びシステム性能に応じて、より少数、或いはより多数のペリフェラルを接続することができる。
【００１１】
又、１２０Ａ〜Ｃの各バスは、ＰＣＩバス、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ Ｇｒａｐｈｉｃｓ Ｐｏｒｔ）、ＰＣＩ−Ｘ等、読み取りのリトライ（再試行）をサポートするものであればどのようなバスであってもよい。本発明の一実施例においては、バス１２０Ａ〜Ｃの各々はＰＣＩバスであり、ネットワークアダプタ１３０Ａ〜Ｃの各々は、従来技術によるＰＣＩプロトコルと命令規則を実装したＰＣＩインターフェイスを提供するＰＣＩネットワークアダプタであり、ペリフェラルデバイス１１０は、該アダプタを使用してＰＣＩプロトコルにより相互に通信可能になっている。又、ネットワーク１００内の別のＰＣＩバスに伝達されるＰＣＩバス上のメモリマッピングされたＰＣＩ読み取り又は書き込みを該ＰＣＩネットワークアダプタ１３０Ａ〜Ｃによって実行できる。更に、別の実施例においては、２つのＰＣＩバスを１つのネットワークアダプタに接続し、該ネットワークアダプタをこれら２つのＰＣＩバス間のブリッジとして機能させると共に、これら２つのＰＣＩバスのいずれかとネットワーク１０３内の第３のＰＣＩバスとの間のブリッジの一部として機能させることも可能である。
【００１２】
システム１００内のノードのデバイス１１０が、プロセッサ等のＰＣＩマスタデバイスの場合には、該デバイスは自身が直接接続されているＰＣＩバスのアドレス領域をアドレス指定する能力を保有する。該ＰＣＩアドレス領域には、入出力（Ｉ／Ｏ）領域とメモリ領域の２つがあり、これらはネットワーク１００内のＰＣＩバスごとに設けられている。このＰＣＩバスと関連するメモリ領域のサイズは、ｘバイト又は２xである（ここで、ｘはｘビットアドレス方式を表している）。例えば、６４ビットアドレス方式を使用した場合、メモリ領域のサイズは４ＧＢ又は２64である。ネットワーク１００を従来技術による設定プログラムによって設定すると、ネットワーク１００内のすべてのデバイスに対して各ＰＣＩバス１２０Ａ〜Ｃのアドレス領域内に互いに排他的なアドレス領域が割り当てられる。コンピュータネットワークは、ノードＡ等の１つのマスタノードのプロセッサによって設定することも可能であり、ノードが異なる複数のプロセッサによって独立的に設定することもできる。ノードによって設定プログラムが実行されると、デバイスの存在、種類、アドレス領域要件を自動的に検出し、それらのデバイスのアドレスデコーダが割り当てられたアドレス範囲を識別できるようにプログラムすることにより、デバイスに領域が割り当てられる。
【００１３】
ＰＣＩバス１２０Ａにとっては、デバイス１１１Ｂ、１１２Ｂ、１１１Ｃ、１１２Ｃ、１１３ＣはＰＣＩネットワークアダプタ１３０Ａの背後に位置するデバイス群である。これらのデバイスはメモリ、Ｉ／Ｏ、又はメモリとＩ／Ｏデバイスの組み合わせであってよい。更に、Ｉ／Ｏデバイスには、メモリ領域に割り当てられたものとＩ／Ｏ領域に割り当てられたものがあってよい。ＰＣＩバス１３０Ａのメモリ領域においては、ＰＣＩネットワークアダプタ１３０Ａの背後に位置するすべてのメモリデバイス又はメモリマッピングされたＩ／Ｏ装置に対し、ＰＣＩネットワークアダプタ１３０Ａに関連するメモリの共通全体範囲内に互いに排他的なメモリアドレス領域が割り当てられる。例として、図２はＰＣＩバス１２０Ａのメモリ領域２００を示すブロックダイアグラムである。該メモリ領域２００は、ＰＣＩネットワークアダプタ１３０Ａと関連する全体アドレス範囲２２０を備えている。該アドレス範囲２２０は、リモートＩ／Ｏ動作用のアドレス領域２５０、ＲＤＭＡトランザクション用のアドレス領域２９０、ＰＣＩネットワークアダプタ１３０Ａの内部レジスタに割り当てられたメモリマッピングされたレジスタ領域２３０を備えている。又、メモリ領域２００は、ノードＡのローカルメモリデバイス又はメモリサブユニットへのアクセスに使用するアドレス領域２６０、予約済みのアドレス範囲２１０、１つ以上のその他のアドレス領域２７０を備えることができる。
【００１４】
引き続き図２を参照すれば、ＲＤＭＡ領域２９０は、ノードＡのデバイスがネットワークルーター１０３を介してメモリデバイスに直接アクセスするためのアクセス領域と、確認チェック動作用の確認領域２８０を備えている。ＰＣＩネットワークアダプタ１３０Ａは、ターゲットアドレスがアクセス領域２４０内の場合に、ＰＣＩバス１２０Ａ上にＲＤＭＡトランザクションとして検出されたメモリトランザクションを処理するようにプログラムされている。該アクセス領域２４０は、各々ノードＢとノードＣに対応するアドレス領域２４０Ｂ及びアドレス領域２４０Ｃを備えている。アドレス領域２４０Ｂは、ノードＢに関連するメモリデバイス又はメモリサブユニットに割り当てられたサブ領域を備えており、アドレス領域２４０ＣはノードＣに関連するメモリデバイス又はメモリサブユニットに割り当てられたサブ領域を備えている。確認領域２８０はアドレス領域２８０Ｂ及び２８０Ｃを備えている。アドレス領域２８０Ｂは、ノードＢのメモリデバイス又はメモリサブユニットをターゲットとするＲＤＭＡトランザクションの各々に関するアクセス確認情報を取得するための複数のサブ領域を備えている。又、アドレス領域２８０Ｃも、ノードＣのメモリデバイス又はメモリサブユニットをターゲットとするＲＤＭＡトランザクションの各々に関するアクセス確認情報を取得するための複数のサブ領域を備えている。例えば、図２に示すように、アドレス領域２４０Ｂは、デバイス１１１Ｂがメモリデバイスであればデバイス１１１Ｂに割り当てられると共にデバイス１１１Ｂがメモリサブユニットを含んでいればデバイス１１１Ｂの該メモリサブユニットに割り当てられるサブ領域２４１Ｂを備えている。そして、アドレス領域２８０Ｂは、サブ領域２４１Ｂに関連するサブ領域２８１Ｂを備えている。ノードＡにおけるデバイス１１１ＢをターゲットとするＲＤＭＡトランザクションのイニシエータは、該サブ領域２８１ＢからＰＣＩ読み取りによってこのＲＤＭＡトランザクションに関するアクセス確認情報を取得することができる。
【００１５】
ＰＣＩネットワークアダプタ１３０Ａ等のネットワーク１００内のＰＣＩネットワークアダプタ１３０Ａ〜Ｃの各々は、ネットワーク１００の別のノード（例：ノードＢ及びノードＣ）のデバイスに割り当てたアドレス領域を定義するのに使用するレジスタを備えている。アドレス領域の定義は、ベースアドレスとアドレスオフセットによって行う。アドレス領域のベースアドレスは、そのアドレス領域内のアドレスの基準点として機能する。そして、アドレス領域内のアドレスは、ベースアドレスにオフセットを加算することによって指定する。アドレス領域内の最大のオフセットがそのアドレス領域のアドレスオフセットである。ＰＣＩネットワークアダプタ１３０Ａ、１３０Ｂ、又は１３０Ｃは、通常、次に示すアドレス領域のベースアドレス及びアドレスオフセット用のレジスタを備えている。
ａ）メモリマッピングされたレジスタ領域（図２のアドレス領域２３０等）
ｂ）ネットワーク１００の別のノードに関連するリモートＩ／Ｏ領域（図２のアドレス領域２５０等）
ｃ）ネットワーク１００の別のノードに関連するリモートダイレクトメモリアクセス（ＲＤＭＡ）領域（ＲＤＭＡ領域２９０等）
【００１６】
ノードＡ等のノードからの領域ｂ）またはｃ）へのアクセスは、ＰＣＩネットワークアダプタ１３０Ａ等のローカルＰＣＩネットワークアダプタによって処理されてＰＣＩネットワークアダプタ１３０Ｂ又は１３０Ｃ等のリモートＰＣＩネットワークアダプタに転送される。領域ｃ）へのアクセスは、リモートＰＣＩバスにおいては、通常、該リモートＰＣＩバスのメモリ領域内へのアクセスとして現れる。
【００１７】
ノードＡのデバイス１１１Ａ等のコンピュータネットワーク１００のノードにおけるＰＣＩマスタデバイスは、ＰＣＩバス１２０Ａ上に読み取り／書き込みアドレスと共に読み取り／書き込み命令を出力することによってＲＤＭＡトランザクションをイニシエートすることができる。この読み取り／書き込みアドレスは、個々の実装に応じてＸビット（例：６４ビット又は３２ビット）であってよい。例として、図３に本発明の一実施例による６４ビット読み取り／書き込みアドレス３００を示している。この６４ビット読み取り／書き込みアドレス３００は、ベースアドレス（ＢＡ）フィールド３１０、書き込み又は読み取り確認（ＷＡ）フィールド３２０、ノードＩＤフィールド３４０、アドレスオフセットフィールド３５０等のいくつかのフィールドに分割されている。これらのフィールドへのビットの割り当ては実装に依存しており、変更可能である。本発明の一実施例においては、ＢＡフィールド３１０はビット［６３：５８］を備えており、これらのビットはＰＣＩネットワークアダプタ１３０ＡによってＲＤＭＡ領域２９０のベースアドレスであるＲＤＭＡ＿ＢＡと比較される（図２参照）。これが一致すれば、ＰＣＩネットワークアダプタ１３０ＡはこれがＲＤＭＡトランザクションであると認識し、ＰＣＩの仕様に従って値ＤＥＶＳＥＬ＃をアサートする。ＷＡフィールド３２０は確認ビットを備えており、この場合にはビット５７が確認ビットである。このビットは通常のＲＤＭＡトランザクションでは０であり、書き込み又は読み取り確認チェックの場合には１（設定状態）となる。ノードＩＤフィールド３４０はビット［５５：４８］を備えており、ＰＣＩ＿ＩＦネットワークアダプタはこれらのビットを使用して宛先ノードＩＤとＰＣＩバス番号（宛先ノードに複数のＰＣＩバスが存在する場合）を算出する。オフセットフィールド３５０内のビットは、リモートノードがそのリモートノードにおける特定のデバイスをＲＤＭＡトランザクションのターゲットとして識別するのに使用する。
【００１８】
ＰＣＩバス１２０Ａ等のローカルＰＣＩバス上の書き込みトランザクションは、ネットワーク１０３を介してノードＢ等のリモートノードに対して、書き込みアドレス及び書き込みデータと共に書き込み要求パケットとして転送される。この書き込みパケットを受信すると、ノードＢのＰＣＩネットワークアダプタ１３０Ｂは書き込み命令を発行し、該書き込み命令はＰＣＩバス１２０Ｂ上に出力される。ＰＣＩバス１２０Ａ等のローカルＰＣＩバス上の読み取りトランザクションは、ネットワーク１０３を介してノードＢ等のリモートノード（所望のデータが存在するノード）に対して、読み取り要求パケットとして転送される。この読み取り要求パケットを受信すると、ノードＢのＰＣＩネットワークアダプタ１３０Ｂは読み取り命令を発行し、要求された読み取りデータをノードＡのＰＣＩネットワークアダプタ１３０Ａに返す。この読み取りトランザクションを処理する間、更なる読み取り要求を阻止するためにノードＡにおいてリトライ信号が生成される。要求した読み取りデータをノードＡが受信すると、ＰＣＩネットワークアダプタ１３０Ａはその読み取りデータを該読み取りトランザクションのイニシエータに返し、該読み取りトランザクションを完了する。
【００１９】
ＰＣＩネットワークアダプタ１３０ＡをターゲットとするＰＣＩ読み取りコマンドに確認ビットを設定すると、これは確認領域２８０への読み取りアクセス、即ち、確認チェックを意味している。ＰＣＩ読み取り／書き込みトランザクションのイニシエータは、確認ビットが０ではなく１である点を除いて、ＰＣＩ読み取り／書き込みトランザクションで使用するのと同じアドレスでＰＣＩバス１２０Ａ上にＰＣＩ読み取り命令を出力することにより、アクセス確認チェックを実行することができる。ＰＣＩネットワークアダプタ１３０Ａは、この読み取りトランザクションが確認チェックであることを識別する。そして、リモートノードにおいて対象のＰＣＩ読み取り／書き込みトランザクションが完了すると、ＰＣＩネットワークアダプタ１３０Ａは確認チェックを処理し、対象の読み取り／書き込みトランザクションの完了ステータスを表す値を返す。本発明の一実施例においては、ＲＤＭＡトランザクションの完了ステータスは、ＲＤＭＡトランザクションの間に応答パケットで送信され、イニシエートしたノードのＰＣＩネットワークアダプタに保存される。エラーチェックの完了前にＲＤＭＡ動作がエラーを伴って終了した場合は、アクセス確認チェックによってクリアされるまで、そのエラーステータスがＰＣＩネットワークアダプタに無期限に保存される。
【００２０】
ＰＣＩネットワークアダプタ１３０Ａ、１３０Ｂ、又は１３０Ｃは、ネットワーク１００内の１つのＰＣＩバスに接続されているデバイスと別のＰＣＩバスに接続されているデバイス間でのＰＣＩトランザクション（例：ＰＣＩ読み取り／書き込みトランザクション）を交換するための機能ユニットを備えている。又、ＰＣＩネットワークアダプタ１３０Ａ、１３０Ｂ、又は１３０Ｃは、特定のＰＣＩ読み取りトランザクションを確認チェックトランザクションとして識別し、ＰＣＩ読み取り／書き込み確認情報を提供するためにかかるトランザクションを処理するための機能ユニットをも備えている。
【００２１】
図４は、ＰＣＩネットワークアダプタ１３０Ａ及び１３０Ｂが備えている、デバイス１１１等のノードＡのＰＣＩマスタデバイスがノードＢのデバイスをターゲットとしてイニシエートした読み取り／書き込みトランザクションを処理するための機能ユニットの一部を示している。この図４に示すように、ＰＣＩネットワークアダプタ１３０Ａは、ＰＣＩバス１２０Ａに接続されたＰＣＩインターフェイス（ＰＣＩ＿ＩＦ）ターゲットユニット４１０、該ＰＣＩ＿ＩＦユニット４１０に接続されたターゲット制御（ＴＣＴＲ）ユニット４３０、ＴＣＴＲユニット４３０に接続された少なくとも１つのターゲット書き込みバッファ（ＴＷＢ）４４０及び少なくとも１つのターゲットフェッチバッファ（ＴＦＢ）４４５を備えている。又、ＰＣＩネットワークアダプタ１３０Ａは、一端がＭＩＣインターフェイス（ＭＩＣ＿ＩＦ）ユニット４６０Ａを介してＴＷＢ４４０とＴＦＢ４４５に接続され他端がネットワークルーター１０３に接続されたメッシュインターフェイスチップ（ＭＩＣ）ユニット４７０Ａをも備えている。
【００２２】
更に、図４に示されているように、ＰＣＩネットワークアダプタ１３０ＢはＰＣＩバス１２０Ｂに接続されたＰＣＩ＿ＩＦマスタユニット４２０、該ＰＣＩ＿ＩＦマスタユニット４２０に接続されたマスタアクセスバッファ（ＭＡＢ）ユニット４５０を備えている。更に、ＰＣＩネットワークアダプタ１３０Ｂは、一端がＭＩＣインターフェイス（ＭＩＣ＿ＩＦ）ユニット４６０Ａを介してＭＢＡユニット４５０に接続され他端がネットワークルーター１０３に接続されたＭＩＣユニット４７０Ｂをも備えている。
【００２３】
ＰＣＩ＿ＩＦターゲットユニット４１０は、ＰＣＩバス１２０ＡとＰＣＩネットワークアダプタ１３０Ａの中核機能間のインターフェイスを提供している。該ユニットは、ＰＣＩバス１２０Ａ上に出力されＰＣＩネットワークアダプタ１３０Ａに割り当てられた全体アドレス範囲２２０内のアドレス領域をターゲットとするＰＣＩトランザクションを識別及び受信する。又、ＰＣＩ＿ＩＦターゲットユニット４１０は、ＰＣＩトランザクションのターゲットアドレスに基づいて宛先ノードＩＤの算出をも行う。
【００２４】
ＴＷＢ又はＴＦＢが複数存在する場合は、各々のＴＷＢ又はＴＦＢにバッファ番号を割り当てる。ＴＷＢ４４０及びＴＦＢ４５０の各々は複数のメモリページを備えている。ＴＣＴＲユニット４３０は、宛先ノードＩＤと読み取り／書き込みアドレスのアドレスオフセットに従ってＴＦＢ又はＴＷＢのメモリページに読み取り又は書き込みブロックキューを形成する。該ＴＣＴＲは、読み取り／書き込みトランザクションと関連するノードＩＤ及びアドレスオフセットと共に特定の読み取り／書き込みトランザクションを待ち行列に入れたメモリページのページアドレス等、読み取り／書き込みブロックキューのレコードを保存するためのタグランダムアクセスメモリ（タグＲＡＭ）を備えている。
【００２５】
ＭＩＣユニット４７０Ａは、ＰＣＩネットワークアダプタ１３０Ａとネットワークルータ１０３内の機能ユニット間のインターフェイスを提供することにより、ＰＣＩバス１２０Ａに直接接続されているデバイスにネットワークルーター１０３へのアクセスを提供する。
【００２６】
ＭＩＣインターフェイスユニット４６０Ａは、書き込みパケットを形成し、ＴＦＢ／ＴＷＢユニット４４０／４４５とＭＩＣユニット４７０Ａ間で読み取り／書き込みデータパケットを転送する。該読み取り又は書き込みパケットは、ヘッダとペイロードを備えている。このヘッダは、ソースノードＩＤ、宛先ノードＩＤ、命令の種類、パケット長等の情報を備えている。書き込みパケットの場合、ペイロードは書き込むデータである。読み取りパケットの場合、ペイロードはリモートノードからフェッチした読み取りデータである。
【００２７】
ＭＩＣユニット４７０Ａは、ネットワークルーター１０３から読み取りパケットを受信すると共に、宛先ノードＩＤからのルーティング（経路選択）情報と順序を維持するためのシーケンス番号と共に書き込みパケットをネットワークルーター１０３に送信する。又、ネットワークルーター１０３から受信した読み取りパケットごとに、ＭＩＣユニット４７０Ａはサニティチェックとエラー訂正を実行し、読み取りパケットをＭＩＣ＿ＩＦユニット４６０Ａに送信する。サニティチェックの例としては、パケット破損チェック、パケットシーケンスチェック、重複パケットの検出等が含まれる。
【００２８】
ネットワークルーターは、ＰＣＩネットワークアダプタを読み取り／書き込みパケットの受信者として識別する各読み取り／書き込みパケット内のルーティング情報に基づいてネットワーク１００内のノード間で読み取り／書き込みパケットを配送する。
【００２９】
ＭＩＣユニット４７０Ｂは、ＰＣＩネットワークアダプタ１３０Ｂとネットワークルーター１０３内の機能ユニット間のインターフェイスを提供する。該ユニットはネットワークルーター１０３からＰＣＩネットワークアダプタ１３０Ｂに向けた書き込みパケットを受信すると共に、読み取りデータを読み取りパケットの受信者を示すルーティング情報と共にノードＢからネットワークルーター１０３に送信する。又、ネットワークルーター１０３から受信した書き込みパケットごとに、ＭＩＣユニット４７０Ｂはサニティチェックとエラー訂正を実行し、書き込みパケットをＭＩＣ＿ＩＦユニット４６０Ｂに送信する。
【００３０】
ＭＩＣ＿ＩＦユニット４６０Ｂは、ノードＢからの読み取りデータを含む読み取りパケットを形成し、読み取り／書き込みデータパケットをＭＩＣユニットとＭＡＢユニット４５０間で転送する。書き込みパケットを受信すると、ＭＩＣ＿ＩＦユニット４６０Ｂは、書き込みパケットのヘッダを含む書き込み要求をＭＡＢユニット４５０に送信し、書き込みパケットのペイロードをＭＡＢユニットのデータバッファに書き込む。
【００３１】
ＭＡＢユニット４５０は、ネットワーク１００の他のノード（ノードＡ及びノードＣ）からの読み取り／書き込みトランザクションを処理する。該ＭＡＢユニット４５０は、複数のメモリページを有するマスタアクセスデータバッファ（ＭＡＢ）を備えており、受信した書き込み要求を受信した順序で処理する。書き込み動作の場合、ＭＡＢは書き込みパケットのヘッダをデコード（解読）し、ソースノードＩＤ、宛先ノードＩＤ、アドレスオフセット、命令の種類等の情報を取得する。該宛先ノードＩＤ、アドレスオフセット、書き込みデータは、ＰＣＩ＿ＩＦマスタユニット４２０に送信される。一方、読み取り動作の場合は、ＭＡＢ４５０はＭＩＣ＿ＩＦユニット４６０Ｂから読み取り要求を受信し、書き込み動作と同様にパケット情報をデコードする。そして、読み取り要求はＰＣＩ＿ＩＦマスタユニット４２０に送信され、該ユニットがＰＣＩバス１２０Ｂ上に読み取り要求を出力することによって読み取りデータを取得する。該読み取りデータはＰＣＩネットワークアダプタ１３０Ａに返送され、ＴＦＢ４４５のバッファに保存される。
【００３２】
ＰＣＩ＿ＩＦマスタユニット４２０は、書き込みパケット内のアドレス情報をＰＣＩバス１２０ＢのＰＣＩメモリ領域内のＰＣＩアドレスに変換する。又、該ユニットは、書き込みパケットの伝送において起こり得るエラーのチェックも行う。この結果、問題がなければ、ＰＣＩ＿ＩＦマスタユニット４２０は書き込みデータを変換されたアドレスと共にＰＣＩバス１２０Ｂ上に出力し、書き込みパケットの送信元であるＰＣＩネットワークアダプタ１３０Ａに応答パケットでアクノリッジ信号（ＡＣＫ）を返信する。一方、エラーが検出された場合は、該エラーステータスが応答パケットでＰＣＩネットワークアダプタ１３０Ａに返送され、書き込みデータは破棄される。ＰＣＩネットワークアダプタ１３０Ａにおいては、受信したＡＣＫ又はＲＤＭＡトランザクションの完了／エラーステータスをエラーログの書式で保管し、ＴＣＴＲユニット４３０内のエラーログ用のランダムアクセスメモリ（エラーＲＡＭ）に保存する。書き込み完了／エラーステータスはＴＷＢ＿ＬＯＧとして保管され、読み取り完了／エラーステータスはＴＦＢ＿ＬＯＧとして保管される。エラーＲＡＭ内の該エラーログには、元の読み取り／書き込みトランザクションを待ち行列に入れたＴＦＢ／ＴＷＢのバッファ番号によって索引が付けられる。
【００３３】
ＰＣＩマスタデバイス１１１は、ＰＣＩバス１２０Ａ上に読み取り命令を出力することによって確認チェックをイニシエートすることができる。ＰＣＩ＿ＩＦターゲットユニット４１０は、読み取りアドレス内の確認ビットが設定されているかどうかをチェックする。該ビットが設定されている場合は、確認チェックを意味し、ＰＣＩ＿ＩＦターゲットユニット４１０はＴＣＴＲユニット４３０に対し、タグＲＡＭから対象の読み取り／書き込みトランザクションを待ち行列に入れたＴＦＢ／ＴＷＢ内のメモリページのページアドレスを検索するように通知する。該ページアドレスからバッファ番号を導き出すことが可能であり、これを使用してエラーＲＡＭに保存されている確認情報を取得することができる。ページアドレスがＴＷＢ４４０内のページに属している場合は、ＴＷＢ内に出力されているすべての書き込みデータは、アクセス確認チェックに関連する読み取りがローカルＰＣＩバス１２０Ａ上で完了する前に、リモートＰＣＩバスに出力される。
【００３４】
本発明の一実施例においては、確認チェックトランザクションごとに、ＰＣＩネットワークアダプタ１３０Ａが該確認チェックトランザクションに対応するＲＤＭＡトランザクションの完了ステータスを示す値を返す。この返される値は、ＲＤＭＡ動作におけるエラー発生の有無及び／又はエラーステータスを示す３２ビットの数値である。アクセス確認チェックステータスワードの書式は次のとおりであり、
【外１】
0004163440.tif 000002
ここで、ビット［３１：１６］は予約領域であり、ビット［１５：８］は読み取りトランザクションに対応するエラーコードであり、ビット［７：０］は書き込みトランザクションに対応するエラーコードである。この数値は、ＴＣＴＲユニット４３０のエラーＲＡＭから読み取ることができる。
【００３５】
【発明の効果】
上述の本発明による実施例によれば、コンピュータネットワーク内のプロセッサは該コンピュータネットワーク内の別のデバイスのメモリアドレスにリモートアクセスし、該リモートアクセスに関するアクセス確認情報を取得することができる。該アクセス確認情報はイニシエートしたデバイスのローカルノードに保存され、ローカルのＰＣＩメモリ領域内の特定のアドレス範囲からＰＣＩ読み取りによって取得することができる。この結果、アクセスが適切に実行されたかどうかを確認するためにネットワークを介して再度リモートメモリアドレスにアクセスする必要がないため、本発明の実施例によれば、ネットワークの帯域幅を効率的に使用することができる。
【００３６】
付記
本発明による好適な実施例は、次のとおりである。
【００３７】
１．バスに接続されたコンピュータデバイスを有するコンピュータネットワークにおいて、該コンピュータデバイスが該コンピュータネットワークを介して送信されたダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得する方法であって、前記バスに関連するメモリ領域内に前記ダイレクトメモリアクセストランザクション用のアクセス領域を提供する段階と；前記バスに関連するメモリ領域内に前記アクセス領域に対応する確認領域を提供する段階と；前記確認領域から読み取って前記ダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得する段階と；を有することを特徴とする方法。
【００３８】
２．第１デバイスに接続された第１バスとネットワーク間を接続する装置であって、ダイレクトメモリアクセストランザクションを処理する設定ユニットと；前記ネットワークから前記ダイレクトメモリアクセストランザクションに対応するアクセス確認情報を受信する受信ユニットと；を有することを特徴とする装置。
【００３９】
３．第２デバイスに接続された第２バスとネットワーク間を接続する装置であって、ダイレクトメモリアクセストランザクションを処理して該ダイレクトメモリアクセストランザクションに対応するアクセス確認情報を判定する設定ユニットと；前記ネットワークを介して前記アクセス確認情報を送信する送信ユニットと；を有することを特徴とする装置。
【００４０】
４．第１デバイスに接続された第１バスとネットワーク間を接続する装置であって、ダイレクトメモリアクセストランザクションに関連するアドレスが既定のアドレス範囲内にあるという判定に基づいて前記第１デバイスから受信したダイレクトメモリアクセストランザクションを識別するインターフェイスユニットと；前記ダイレクトメモリアクセストランザクションに関連するデータを待ち行列に入れるバッファユニットと；前記インターフェイスユニットと接続され、前記バッファユニットに前記ダイレクトメモリアクセストランザクションに関連するデータのブロックキューを形成する制御ユニットと；を有することを特徴とする装置。
【００４１】
５．前記ダイレクトメモリアクセストランザクションは、前記アクセス領域内のターゲットアドレスにアクセスすることによって実行される付記１記載の方法。
【００４２】
６．前記ターゲットアドレスはノードＩＤフィールド、確認フィールド、アドレスオフセットを備え、前記確認領域からの読み取り段階には、ノードＩＤフィールド及びアドレスオフセットが前記ターゲットアドレスと同一であり確認フィールドが前記ターゲットアドレスと異なる読み取りアドレスと共に読み取り命令を前記バス上に出力する段階；を含む付記５記載の方法。
【００４３】
７．第１デバイスがネットワークを介して第２デバイスをターゲットとするダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得できるようにするシステムであって、前記第１デバイスに接続された第１ＰＣＩバスと；前記第１ＰＣＩバスと前記コンピュータネットワーク間に接続され、前記ダイレクトメモリアクセストランザクションを処理し、前記コンピュータネットワークから前記ダイレクトメモリアクセストランザクションに対応するアクセス確認情報を受信するように設定された第１ＰＣＩネットワークアダプタと；を有することを特徴とするシステム。
【００４４】
８．前記第１ＰＣＩネットワークアダプタには前記第１ＰＣＩバスの前記ＰＣＩメモリ領域内に第１アドレス範囲が割り当てられ、前記第２デバイスには前記第１アドレス範囲内に第２アドレス範囲が割り当てられ、前記ダイレクトメモリアクセストランザクションは前記第２アドレス範囲内のターゲットアドレスを備える付記７記載のシステム。
【００４５】
９．前記第１ＰＣＩネットワークアダプタは、前記第１ＰＣＩバスに接続され、前記ターゲットアドレスが前記第２アドレス範囲内にあるという判定に基づいて前記ダイレクトメモリアクセストランザクションを識別及び受信するように設定されたＰＣＩインターフェイスターゲットユニットと；少なくとも１つのバッファと；前記ＰＣＩインターフェイスターゲットユニットと前記少なくとも１つのバッファの間に接続され、前記少なくとも１つのバッファに前記ダイレクトメモリアクセストランザクションに関連するデータの少なくとも１つのブロックキューを形成するように設定されたＰＣＩターゲット制御ユニットと；を更に有する付記８記載のシステム。
【００４６】
１０．前記ＰＣＩターゲット制御ユニットは、前記少なくとも１つのバッファ内の前記ダイレクトメモリアクセストランザクションに関連する待ち行列に入れられたデータのメモリ位置を保存するように設定された第１メモリユニットと、前記ダイレクトメモリアクセストランザクションに対応するアクセス確認情報を保存するように設定された第２メモリユニットを有する付記９記載のシステム。
【００４７】
１１．前記第２メモリユニット内のアクセス確認情報には、前記ダイレクトメモリアクセストランザクションに関連する待ち行列に入れられたデータのメモリ位置によって索引が付けられる付記１０記載のシステム。
【００４８】
１２．前記ターゲットデバイスに接続された第２ＰＣＩバスと；前記第２ＰＣＩバスと前記コンピュータネットワーク間に接続され、前記ダイレクトメモリアクセストランザクションを処理し、前記ダイレクトメモリアクセストランザクションに対応する前記アクセス確認情報を判定し、前記コンピュータネットワークを介して前記アクセス確認情報を前記第１ＰＣＩネットワークアダプタに送信するように設定された第２ＰＣＩネットワークアダプタと；を更に有する付記７記載のシステム。
【００４９】
１３．前記第２ＰＣＩネットワークアダプタは、前記ダイレクトメモリアクセストランザクションと関係するアドレス情報を判定するように設定されたマスタアクセスバッファと；前記マスタアクセスバッファと前記第２ＰＣＩバス間に接続され、前記アドレス情報をＰＣＩアドレスに変換し、該ＰＣＩアドレスと共に前記ダイレクトメモリアクセストランザクションを前記ＰＣＩバス上に出力するように設定されたＰＣＩインターフェイスマスタユニットと；を有する付記１２記載のシステム。
【００５０】
１４．前記ＰＣＩインターフェイスマスタユニットは、前記ダイレクトメモリアクセストランザクションの前記アクセス確認情報を判定し、前記アクセス確認情報を含む応答パケットを形成し、該応答パケットを前記コンピュータネットワークを介して前記アドレス情報に従って前記第１ＰＣＩネットワークアダプタに送信する付記１３記載のシステム。
【００５１】
１５．第１デバイスがネットワークを介して第２デバイスをターゲットとするダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得できるようにするシステムであって、前記第１デバイスに接続された第１バスと；前記バスに接続され、前記第１デバイスを前記コンピュータネットワークに接続するネットワークアダプタであって、前記ダイレクトメモリアクセストランザクションに関連するアドレスが既定のアドレス範囲内にあるという判定に基づいて前記ダイレクトメモリアクセストランザクションを識別及び受信するインターフェイス手段と、前記ダイレクトメモリアクセストランザクションに関連するデータを待ち行列に入れる少なくとも１つのバッファと、前記インターフェイス手段に接続され、前記少なくとも１つのバッファに前記ダイレクトメモリアクセストランザクションに関連するデータのブロックキューを形成する制御手段と、を更に備えるネットワークアダプタと；前記制御手段と接続され、前記コンピュータネットワークから受信したアクセス確認情報を保存するメモリと；を有することを特徴とするシステム。
【００５２】
１６．第１デバイスがネットワークを介して第２デバイスをターゲットとするダイレクトメモリアクセストランザクションに対応するアクセス確認情報を取得できるようにするシステムであって、前記第１デバイスに接続された第１ＰＣＩバスと；前記第１ＰＣＩバスと前記コンピュータネットワーク間に接続され、前記ダイレクトメモリアクセストランザクションを処理し、前記コンピュータネットワークから前記ダイレクトメモリアクセストランザクションに対応するアクセス確認情報を受信するように設定された第１ＰＣＩネットワークアダプタと；ターゲットデバイスに接続されたた第２ＰＣＩバスと；前記第２ＰＣＩバスと前記コンピュータネットワーク間に接続され、前記ダイレクトメモリアクセストランザクションを処理し、前記ダイレクトメモリアクセストランザクションに対応する前記アクセス確認情報を判定し、前記コンピュータネットワークを介して前記アクセス確認情報を前記第１ＰＣＩネットワークアダプタに送信するように設定された第２ＰＣＩネットワークアダプタと；を有することを特徴とするシステム。
【図面の簡単な説明】
【図１】本発明の一実施例によるコンピュータネットワークの概要を示すブロックダイアグラムである。
【図２】本発明の一実施例によるＰＣＩメモリ領域のブロックダイアグラムである。
【図３】本発明の一実施例による送信ノードにおけるＰＣＩ読み取り／書き込みトランザクションに関連する６４ビットＰＣＩ読み取り／書き込みアドレスのブロックダイアグラムである。
【図４】本発明の一実施例による受信ノードにおけるＰＣＩ読み取り／書き込みトランザクションに関連する６４ビットＰＣＩ読み取り／書き込みアドレスのブロックダイアグラムである。
【符号の説明】
１０３…ネットワークルーター
１２０Ａ〜Ｃ…ＰＣＩバス
１３０Ａ〜Ｃ…ＰＣＩネットワークアダプタ
１１１Ａ〜Ｃ、１１２Ａ〜Ｂ、１１３Ａ、１１３Ｃ…デバイス
【図１】
0004163440.tif 000003
【図２】
0004163440.tif 000004
【図３】
0004163440.tif 000005
【図４】
0004163440.tif 000006