リモートダイレクトメモリーアクセスRDMAデバイスと;中央処理装置CPUとメモリーを有する周辺機器と;前記RDMAデバイスと前記周辺機器に対して通信可能に接続されたプラットフォームコントローラーハブPCHと、を含み、前記PCHは、前記PCHの中に含まれ、前記周辺機器のメモリー又は前記DMAデバイスのメモリーのうちの一つに対してマップされた仮想アドレスにおけるアクセスリクエストメッセージに係る通知を受け取り;前記RDMデバイスの前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、前記周辺機器からの前記RDMAデバイスのメモリーに対する前記アクセスリクエストメッセージに基づき、RDMAアクセスリクエストを前記RDMAデバイスに対して伝送し、前記RDMAアクセスリクエストメッセージは仮想アドレスRDMAパラメーターを含み;かつ前記周辺機器の前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、アクセスリクエストメッセージを前記周辺機器の前記メモリーに対して伝送する、ように構成されている、ことを特徴とするシステム。前記RDMAアクセスリクエストは、RDMA読み出しリクエストを有し、前記PCHは、さらに;前記RDMAデバイスからの前記周辺機器によるデータリクエストを受け取り、かつ、前記周辺機器の前記メモリーに対して、前記データを含んでいるデータメッセージを伝送する、請求項1に記載のシステム。前記RDMAアクセスリクエストは、RDMA書き込みリクエストを有し、前記PCHは、さらに;前記周辺機器のメモリーからの前記RDMAデバイスによるデータリクエストを受け取り、かつ、前記RDMAデバイスに対して、前記データを含んでいるデータメッセージを伝送する、請求項1に記載のシステム。前記周辺機器の前記CPUは、複数のプロセッサコアのうちの一つ、または、前記周辺機器の中に含まれているマルチコアプロセッサを有する、請求項1に記載のシステム。前記周辺機器と前記RDMAデバイスは、周辺コンポーネント相互接続エクスプレスPCIeリンクを介して、前記PCHに対して通信可能に接続されている、請求項1に記載のシステム。前記RDMAデバイスと前記PCHは、PCIeルートポートを介して通信可能に接続されている、請求項5に記載のシステム。前記周辺機器は、グラフィックサブシステムを有し、かつ前記CPUは、グラフィックプロセッサユニットGPUを有する、請求項1に記載のシステム。前記アクセスリクエストメッセージは、インフィニバンド仕様に準じている、請求項1に記載のシステム。前記アクセスリクエストメッセージは、RDMAコンソーシアム仕様に準じている、請求項1に記載のシステム。リモートダイレクトメモリーアクセスRDMAデバイスのメモリーと周辺機器のメモリーのうちの一つに対してマップされた仮想アドレスにおけるアクセスリクエストメッセージに係る通知を受け取るステップであり、前記周辺機器は、さらに、中央処理装置CPUとメモリーを有するステップと;前記RDMデバイスの前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて:RDMAパラメーターとして前記RDMAデバイスの前記メモリーに対してマップされた前記仮想アドレスを利用するステップと;前記周辺機器からの前記RDMAデバイスのメモリーに対する前記アクセスリクエストメッセージに基づき、RDMAアクセスリクエストを前記RDMAデバイスに対して伝送するステップであり、前記RDMAアクセスリクエストメッセージは仮想アドレスRDMAパラメーターを含んでいるステップと;前記周辺機器の前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、アクセスリクエストメッセージを前記周辺機器の前記メモリーに対して伝送するステップと、を含む、ことを特徴とする方法。前記RDMAアクセスリクエストは、RDMA読み出しリクエストを有し、前記方法は、さらに;前記RDMAデバイスからの前記周辺機器によるデータリクエストを受け取るステップと、前記周辺機器の前記メモリーに対して、前記データを含んでいるデータメッセージを伝送するステップと、を含む、請求項10に記載の方法。前記RDMAアクセスリクエストは、RDMA書き込みリクエストを有し、前記方法は、さらに;前記周辺機器のメモリーからの前記RDMAデバイスによるデータリクエストを受け取りステップと、前記RDMAデバイスに対して、前記データを含んでいるデータメッセージを伝送するステップと、を含む、請求項10に記載の方法。前記周辺機器の前記CPUは、複数のプロセッサコアのうちの一つ、または、前記周辺機器の中に含まれているマルチコアプロセッサを有する、請求項10に記載の方法。前記周辺機器と前記RDMAデバイスは、周辺コンポーネント相互接続エクスプレスPCIeリンクを介して、PCHに対して通信可能に接続されている、請求項10に記載の方法。前記RDMAデバイスと前記PCHは、PCIeルートポートを介して通信可能に接続されている、請求項14に記載の方法。前記周辺機器は、グラフィックサブシステムを有し、かつ前記CPUは、グラフィックプロセッサユニットGPUを有する、請求項10に記載の方法。前記アクセスリクエストメッセージは、インフィニバンド仕様とRDMAコンソーシアム仕様の少なくとも一つに準じている、請求項10に記載の方法。リモートダイレクトメモリーアクセスRDMAデバイスに対して通信可能に接続された第1の相互接続リンクと;中央処理装置CPUとメモリーを有する周辺機器に対して通信可能に接続された第2の相互接続リンクと;プラットフォームコントローラーハブPCHと、を含み、前記PCHは、前記PCHの中に含まれ、前記周辺機器のメモリー又は前記DMAデバイスのメモリーのうちの一つに対してマップされた仮想アドレスにおけるアクセスリクエストメッセージに係る通知を受け取り;前記RDMデバイスの前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、前記周辺機器からの前記RDMAデバイスのメモリーに対する前記アクセスリクエストメッセージに基づき、RDMAアクセスリクエストを前記RDMAデバイスに対して伝送し、前記RDMAアクセスリクエストメッセージは仮想アドレスRDMAパラメーターを含み;かつ前記周辺機器の前記メモリーに対してマップされた仮想アドレスにおける前記アクセスリクエストメッセージの受け取りに応じて、アクセスリクエストメッセージを前記周辺機器の前記メモリーに対して伝送する、ことを特徴とする装置。前記RDMAアクセスリクエストは、RDMA読み出しリクエストを有し、前記PCHは、さらに;前記RDMAデバイスからの前記周辺機器によるデータリクエストを受け取り、かつ、前記周辺機器の前記メモリーに対して、前記データを含んでいるデータメッセージを伝送する、請求項18に記載の装置。前記RDMAアクセスリクエストは、RDMA書き込みリクエストを有し、前記PCHは、さらに;前記周辺機器のメモリーからの前記RDMAデバイスによるデータリクエストを受け取り、かつ、前記RDMAデバイスに対して、前記データを含んでいるデータメッセージを伝送する、請求項18に記載の装置。前記第1および第2の相互接続リンクのそれぞれは、周辺コンポーネント相互接続エクスプレスPCIeリンクを有しており、かつ、前記装置は、さらに、前記RDMAデバイスに対して通信可能に接続されたルートポートを含んでいる、請求項18に記載の装置。周辺機器140は、RDMA150の中に保管されているデータにアクセスする必要があり、その逆もまた同様である。現在、インフィニバンドInfiniBand仕様又はRDMAコンソーシアム仕様、等といった多くの相互接続構造規格の実施は、ピアデバイスが、別のピアデバイスのアドレス空間において保管されているデータに直接的にアクセスすることをできなくしている。現在のソリューションは、ピアデバイスが、リクエストされたデータを共通に利用可能なメモリーに対して書き込むことを要求する。この説明図においては、システムメモリー120であり、相互接続性構造に接続されたあらゆる周辺機器によってアクセス可能である。しかしながら、そうしたデータ転送のために共通のシステムメモリーを使用することは時間の浪費であり、処理のオーバーヘッドを増加させるものである。さらに、共通システムのメモリーを使用することは、周辺機器の処理動作を遅くしてしまう。本発明の実施例は、ホストと、CPU及びメモリーの複合体を含む周辺機器代替的には、ここにおいてプロセッサアドインカードとして言及されるものとの間で、リモートダイレクトメモリーアクセスRDMAデバイスハードウェアを共有することができるシステム、装置、および、方法を説明する。本発明の実施例は、プロセッサアドインカードadd-incardとRDMAデバイスとの間でのピアツ-ピアpeer-to-peerのデータ転送のための周辺コンポーネント相互接続エクスプレスPCIeといった相互接続ハードウェアを利用する。ホストシステムは、メモリー及びレジスターをRDMAデバイスに対して、及び又は、RDMAデバイスからマップするためのモジュール又はロジックを含んでよい。これにより、ホストシステムのI/Oオペレーティングシステムと同時に、アドインカードのプロセッサ上のユーザーモードアプリケーションに対して、または、アプリケーションから直接的に実行されるべきI/Oをできるようにしている。本発明の具体例を利用するプロセッサアドインカードの実施例は、グラフィックプロセッサユニットGPUを有するグラフィックプロセッササブシステムと、高度に並列なアプリケーションのパフォーマンスを改善するための複数の小さく、低消費電力なプロセッサコア又はマルチコアプロセッサを有するプロセッサアドインカードを含んでいる。異種混在heterogeneousが加速されたコンピューター環境においては、しかしながら、共通で、規格ベースのプログラミング及びコミュニケーションモデルを提供することは難しいと証明されている。このことは、クラスターclusterにおいて特に真実であり、全てのプロセッサからの効率的なコミュニケーションメカニズムを有することが望ましい。プロセッサが、プライマリーシステムのCPUであるか、アドインカードのコプロセッサコアであるかにかかわらずである。共通で、規格ベースのプログラミングモデルは、アプリケーションの開発とメインテナンスを簡素化するだけでなく、システムを使用するためのより大きな適応性を与えてシステムのパフォーマンスの全ての利点を得ることができる。クラスターは、一般的に、お互いに密接に動作するようにリンク又は相互接続されたコンピューターシステムのグループを参照するものである。それらは、多くの観点で一つのコンピューターを形成するようにリンク等されている。クラスターは、一般的に、単独のコンピューターによって提供されるものよりも大幅に改善されたパフォーマンス及び又は可用性を提供する。クラスターは、また、典型的には、同等な速度と可用性のある単独のコンピューターよりも、コスト効率が良い。大規模なクラスターシステムの構築に対する重要な見地は、相互接続である。相互接続は、システムの全てを一緒に接続するファブリックfabricを含んでよい。システムをファブリックに対してインターフェイスするホストアダプターも同様である。クラスターは、インフィニバンド仕様又はRDMAコンソーシアム仕様と調和した相互接続を利用してよい。インフィニバンドは、本来高性能コンピューターにおいて使用されたスイッチファブリックコミュニケーションリンクswitchedfabriccommunicationlinkであり、スケーラビリティと同様に、サービス品質とフェイルオーバー機能を提供する。インフィニバンド相互接続は、一般的に、より小さなレイテンシーlatency、より高いバンド幅、および、改善された信頼性を提供する。インフィニバンドといったRDMAアーキテクチャーは、メッセージ受渡しオペレーティングシステムのレイテンシーを削減し、かつ、バンド幅を増加させることによって、高パフォーマンスコンピューティングHPCクラスターアプリケーションのパフォーマンス改善において、非常に成功してきた。RDMAアーキテクチャーは、カーネルバイパスkernel-bypass、ダイレクトデータ配置を通じて、ネットワークインターフェイスをアプリケーションに対して大変近くに移動することによってパフォーマンスを改善し、かつ、アプリケーションの要求に合せるようにI/Oオペレーティングシステムをより広くコントロールすることができる。RDMAアーキテクチャーは、ハードウェアにおいて、プロセス分離、保護、および、アドレス変換をすることができる。このアーキテクチャーは、ホストとコプロセッサアプリケーションが分離されたアドレスドメインにおいて実行されるコプロセッサコア環境に対して相性がいい。しかしながら、従来技術においては、取り付けられたプロセッサつまり、プロセッサアドインカードに対してRDMAの利益は利用可能ではなかった。本発明の実施例は、RDMAアーキテクチャーの利益を取り付けられたプロセッサに対して直接的に提供し、図1に示すようなソリューションに対する必要性を取り除く。図1では、取り付けられたプロセッサに係る内外のコミュニケーションは、ホストメモリーの中への追加のデータコピーを招くことを要し、実質的に、メッセージレイテンシーと達成可能なバンド幅の両方に影響を与えている。図2は、本発明の一つの実施例に従ったシステムのブロックダイヤグラムである。システム200は、システムCPU210、システムメモリー220、プラットフォームコントローラーハブPCH230、周辺機器240、および、RDMAデバイス250を含んでいる。この実施例において、周辺機器240は、プロセッサアドインカードであり、プロセッサ241とメモリー242を含んでいる。周辺機器240とRDMAデバイス250は、ピアpeerデバイスとして参照されてよい。周辺機器240は、RDMAデバイス250の中に保管されているデータにアクセスをリクエストし得る。周辺機器が、PCIeリンクを介してPCH230と通信可能に接続されているものと示されている一方で、RDMAデバイスは、PCIeルートポート231を介してPCH130に対して動作可能に接続されているものと示されている。この実施例において、周辺機器240は、PCHを含んでおらず、従って、ホストチャンネルアダプター/ネットワークインターフェイスコントローラーHCA/NICカードをRDMAデバイス250に専念させる能力を有していないしかしながら、PCH又はオンボードのRDMAデバイスを伴う内部PCIeバスを含んでいる周辺機器も、また、以下に説明される本発明の実施例を利用し得ることが理解されるべきである。PCIe相互接続は、単独では、ピアデバイスが、別のピアデバイスのアドレス空間の中に保管されているデータにアクセスするようにはできない。本発明の実施例は、システム200、PCH230、および、周辺機器240に含まれているロジック及び又はモジュールについて説明する。周辺機器が、RDMAデバイス250の中に含まれているデータに対して直接的にアクセスできるようにするものである。つまり、システムメモリー220は、図1のシステム100といった従来技術のソリューションにおいて必要とされたようには必要とされない。リクエストされたデータをホストメモリーの中に受け取るための、ホストメモリーに対する必要性を取り除くことによって、本発明の実施例は、著しく、メッセージレイテンシーを減少させ、達成可能なバンド幅を増加させる。図3は、本発明の一つの実施例に従ったシステムコンポーネントのブロックダイヤグラムである。この実施例において、PCH310、周辺機器320、および、RDMA330は、システムバス390ここにおいては、代替的にイントラノードintra-nodeバスとして参照されるを介してお互いに通信可能に接続されている。周辺機器320は、図2に係る機器240と類似のものであり、RDMAデバイス330を専念させる能力を有していない。この実施例において、周辺機器320のメモリー321はリクエストキューqueue322を含んでいる。リクエストキューは、RMDAデバイス330のメモリー331に向けて指示されたリクエストを保管している。周辺機器のCPU323は、リクエストキューがメモリー331へのアクセスに対する未解決のリクエストを有していることを、RDMAデバイス330に通知する。一つの実施例において、RDMAデバイス330は、キュー322の中に未解決のリクエストがいくらかでもある場合に通知される。他の実施例において、RDMAデバイス330は、キュー322の中の未解決のリクエストの数量が閾値を超えた場合に通知される。CPU323は、PCH310の中に含まれる仮想アドレス311に対して書き込むことによって、未解決のリクエストについてRDMAデバイス350に通知する。仮想アドレスは、RDMAデバイスのメモリー331に対してマップされたメモリーである。未解決のリクエストは、実行されるべきオペレーションを記述することができる。つまり、send、receive、write、read、atomiccompare/exchange、atomicfetch/add、等である。このように、本発明の実施例は、周辺機器320からホストシステムのPCH310へのプロキシーproxyリクエストに対して記述されてよい。図4は、本発明の一つの実施例に従ったプロセスのフローチャートである。ここにおいて説明されるように、フローチャートは、種々のプロセス動作のシーケンスに係る実施例を提供する。所定のシーケンス又は順序において示されてはいるが、別に指定がなければ、動作の順序は変更することができる。従って、図示された実施例は、単なる例示として理解されるべきであり、図示されたプロセスは、異なる順序で実行することができ、いくつかの動作は並行に実行され得る。加えて、一つまたはそれ以上の動作は、本発明に種々の実施例において除外することができる。従って、全ての動作が、それぞれの実施において必要とされるわけではない。他のプロセスフローも可能である。プロセス400は、プロセッサコアとメモリーを有する周辺機器による、RDMAデバイスのメモリーへのアクセスに対するリクエストを受け取るオペレーションを含んでいる、410。そのリクエストは、周辺機器のメモリーにおけるキューの中に保管されてよい。いくつかの実施例において、周辺機器は複数のプロセッサコアを含んでおり、それぞれのプロセッサコアに対して分離されたキューを維持している。周辺機器は、PCHの中に含まれている仮想アドレスに対してデータを送付することによって、キューの中のアクセスリクエストメッセージをRDMAデバイスに通知する、420。その仮想アドレスは、PCHの中に含まれており、RDMAデバイスのメモリーにマップされている。PCHは、RDMAデバイスにマップされた仮想アドレスを利用する、430。そして、RDMAデバイスのメモリーに対してRDMAアクセスリクエストメッセージを伝送する、440。そのRDMAアクセスリクエストメッセージは、周辺機器の中にキューされたアクセスリクエストメッセージに基づくものである。RDMAデバイスは、RDMAアクセスリクエストメッセージの受け取りに応じて、周辺機器からのリクエストを完了する、450。いくつかの実施例において、RDMAデバイスは、PCHの中に含まれ、かつ、周辺機器のメモリーにマップされている仮想アドレスに対して完了メッセージを送付する。その仮想アドレスは、完了メッセージを保管するための完了キューを表してよい。例えば、RDMAアクセスリクエストメッセージがRDMA読み出しリクエストを有する場合、周辺機器によってリクエストされたデータを含んでいるデータメッセージが、PCHを介して周辺機器に対して送付される。RDMAアクセスリクエストメッセージがRDMA書き込みリクエストを有する場合、PCHは、書き込まれるべきデータを含んでいるデータメッセージをRDMAデバイスに対して伝送する。いくつかの実施例において、RDMA動作の完了は、RDMAデバイスによって完了メッセージがいつ送付されるかを決定するものではない。例えば、インフィニバンド仕様は、リクエストは、それらが投稿された順序で実行されることを要求する。先の全てのRDMA動作が完了するまで、周辺機器は完了メッセージを受け取らないことを意味するものである。図5は、本発明の一つの実施例に従ったプロセスのフローチャートである。プロセス500は、周辺機器プロセッサコアも含んでいるのメモリーへのアクセスに対するリクエストを受け取るオペレーションを含んでいる、510。そのリクエストは、RDMAデバイスのメモリーにおけるキューの中に保管されてよい。RDMAデバイスは、PCHの中に含まれている仮想アドレスに対してデータを送付することによって、キューの中のアクセスリクエストメッセージをホストシステムに通知する、520。その仮想アドレスは、周辺機器のメモリーにマップされている。PCHは、アクセスリクエストメッセージパラメーターとして、RDMAデバイスにマップされた仮想アドレスを利用する、530。そして、周辺機器のメモリーに対してアクセスリクエストメッセージを伝送する、540。そのアクセスリクエストメッセージは、RDMAデバイスの中にキューされたアクセスリクエストメッセージに基づいて、周辺機器に対して伝送される。周辺機器は、PCHからのアクセスリクエストメッセージの受け取りに応じて、RDMAデバイスからのリクエストを完了する。例えば、アクセスリクエストメッセージが読み出しリクエストを有する場合、RDMAデバイスによってリクエストされたデータを含んでいるデータメッセージが、PCHを介してRDMAデバイスに対して送付される。アクセスリクエストメッセージが書き込みリクエストを有する場合、RDMAデバイスは、PCHを介して、書き込まれるべきデータを含んでいるデータメッセージを周辺機器に対して伝送する。RDMAデバイスは、RDMA動作及び又はパラメーターのタイプに応じて、PCHの中に含まれ、かつ、周辺機器のメモリーにマップされている仮想アドレスに対して完了メッセージを送付する、550。その仮想アドレスは、完了メッセージを保管するための完了キューを表してよい。図6は、本発明の一つの実施例に従ったホストとプロセッサアドインカードモジュールのブロックダイヤグラムである。上述のように、本発明の実施例は、インフィニバンド仕様例えば、規格リリース1.0.a、2001年7月19日発行に準じた相互接続を利用してよい。インフィニバンドは、本来高性能コンピューターにおいて使用されるスイッチファブリックコミュニケーションリンクであり、スケーラビリティと同様に、サービス品質とフェイルオーバー機能を提供する。インフィニバンド相互接続は、一般的に、より小さなレイテンシー、より高いバンド幅、および、改善された信頼性を提供する。インフィニバンドは、コンピューターシステムのコンポーネントの中、および、コンピューターの中で情報を移動する方法を提供する。インフィニバンドは、コンピューターのCPUが、非常に高いパフォーマンスでI/Oデバイス及び他のCPUと直接的にコミュニケーションできるようにする。インフィニバンド技術は、あらゆるネットワークに係るデータセンターのバックエンドbackendを対象としている。ネットワークインフラストラクチャーのフロントエンド及びミドルエンドは、典型的には、従来のイーサネット登録商標Ethernet技術を含んでいる。別の言葉で言えば、インフィニバンド及びイーサネット技術は、両方とも同一のホストによって使用され得るものである。ホスト610と周辺機器カード630は、種々のインフィニバンドモジュール以下に説明されるを含むように示されており、PCIe相互接続660を介してRDMAデバイス650と通信可能に接続されている。以下に説明するように、RDMAデバイス650によって受け取られるRDMAメッセージは、RDMAコンソーシアム仕様例えば、RDMAプロトコル規格バージョン1.0、2002年10月21日発行に準じてよい。RDMAコンソーシアムのRDMAプロトコルは、TCP/IPプロトコルにおけるTCP層の上で規定されている。従って、RDMA動作は、プロトコルスタックのトップから送信器側のボトムまで進み、次に、プロトコルスタックを越えて受信器側のトップまで進む。本発明の実施例によって利用されるRDMAプロトコルは、基本のTCP/IP処理ハードウェアを構築することを含んでよい。パケットを受け取り、TCP/IPを停止し、TCP/IPを通してアプリケーションに対してパケットを処理し、そして、データ及びメモリーに書き込むためのアプリケーション層でのアドレスを抽出することである。RDMAプロトコルは、データ転送をより効率的にする特により大きなデータペイロードに対してことによって、パケットをメモリーにコピーすることを防ぐことができるそして、その後にデータペイロードをメモリーにコピーする。この実施例において、ホスト610上のモジュールと周辺機器630はお互いにコミュニケーションし、PCIe相互接続660をわたりRDMAデバイス650に対して直接的なアクセスを有している。モジュールは、RDMAデバイスのリソースを管理するためにPCIe相互接続660をわたりプロキシーオペレーションに対するスプリットドライバーsplit-deriverモデルを使用する。ホスト610は、インフィニバンドベースのソフトウェアコミュニケーションスタックを含むように図示されている。メッセージパッシングインターフェイスMPIアプリケーション611、RDMAAPIであるユーザーモードダイレクトアクセスプロバイダーライブラリーuDAPL612、IBバーブverbつまり、機能ライブラリー613、ベンダーライブラリー614、IBユーバーブuverb635、および、IBコア636を含んでいる。ホストと周辺機器は、さらに、以下に説明されるモジュールとして実行される本発明の実施例を利用する。ホスト610は、IBプロキシーデーモンdaemon618を含んでいる。IBプロキシーデーモンは、ホストユーザーモードのアプリケーションであり、基底にあるベンダードライバー617に対するコールcallのためにIBプロキシーサーバー619以下に説明されるに対してユーザーモードプロセスコンテクストcontextを提供する。ユーザーモードプロセスコンテクストは、ベンダードライバー617を変更することなくRDMAデバイス650のメモリーの仮想アドレスマッピングを実行するために使用され得る。ホスト610は、さらに、IBプロキシーサーバー619を含んでおり、IBプロキシーサーバーはホストカーネルモジュールを有している。この実施例において、そのIBプロキシーサーバーは、コミュニケーションと周辺機器630以下に説明されるのIBプロキシークライアント638のためのコマンドサービスを提供する。この実施例において、IBプロキシーサーバー619は、クライアント接続をリスンlistenし、RDMAデバイスの追加、除去、および、イベント通知メッセージをリレーする。IBプロキシーサーバー619は、さらに、IBプロキシークライアント638のためにIBコアレイヤー616に対するカーネルモードIBバーブコールを開始して、その結果を戻すことができる。周辺機器630は、IBプロキシークライアント638を含んでおり、IBプロキシークライアントはカーネルモジュールを有している。そのIBプロキシークライアントは、ホスト610上でカーネルモードIBバーブを実行するために、ベンダープロキシードライバー637以下に説明されるに対してプログラミングインターフェイスを提供する。インターフェイスは、さらに、コマンドのフォーマット及びコミュニケーションの実行に係る詳細を抽出し得る。IBプロキシークライアント638は、所定のデバイスの追加、除去、および、ベンダープロキシードライバー637へのイベント通知に対するコールバックcallbackを呼び出す。周辺機器630は、さらに、ベンダープロキシードライバー637を含んでおり、ベンダープロキシードライバーはカーネルモジュールを有している。所定のRDMAデバイスをサポートするために異なるベンダープロキシードライバーが使用されてよい。そのベンダープロキシードライバーそれぞれは、RDMAのデバイスの追加、除去、および、所定のPCIeドライバーからのイベント通知をIBプロキシークライアント638に登録し得る。ベンダープロキシードライバー637は、カーネルモードIBバーブコールを実行するために、IBプロキシークライアント638によって提供されるプログラミングインターフェイスを使用してよい。そのベンダープロキシードライバーは、さらに、ベンダーライブラリー634とホスト610上のベンダードライバー617との間で共有されるあらゆるプライベートデータの解釈及び変換を取り扱う。この実施例において、ホスト610と周辺機器630の両方は、シンメトリックコミュニケーションインターフェイスSCIFモジュール620と640を、それぞれに含んでいる。そのSCIFモジュールは、シングルプラットフォームの中でイントラノードintra-nodeコミュニケーションのためのメカニズムを提供する。SCIFは、ホスト610と周辺機器630との間で対称なAPIを提供する一方で、PCIeにわたるコミュニケーションおよび、関連する周辺機器ハードウェアのコントロールの詳細を抽出する。上述のモジュールに加えて、本発明の実施例は、IBコアレイヤー616におけるコールを利用して、ベンダーライブラリー614及び634とベンダードライバー617との間でプライベートデータを転送する。メモリーをRDMAデバイス650に対してマッピングすることも同様である。上記のバーブverbつまり、機能は、RDMAデバイス650に向けたPDMAオペレーションを実行する。バーブは、特権クラスと非特権クラスに分類されてよい。特権バーブは、典型的にRDMAハードウェアのリソースを割り当て、管理するために使用され、ベンダードライバー617によって実施される。周辺機器630上で稼働しているアプリケーションのために、これらの特権バーブが、ベンダープロキシーサーバー637を通じてホスト610上のベンダードライバー617に対してフォワードされる。一旦、ハードウェアが割り当てられ開始されると、非特権バーブは、カーネルをバイパスし、リソース割り当ての最中にアプリケーションアドレス空間の中にマップされたメモリーを使用して、ユーザーモードからハードウェアに対する直接的なアクセスを許可する。同様に、RDMAデバイスは、キューにアクセスすることができ、プロセスアドレス空間へ、または、プロセスアドレス空間から直接的にデータ転送を実行することができる。このように、本発明の実施例は、周辺機器630上のクライアントプロセスを、まるでホスト610上の別のユーザーモードプロセスであるかのようにする。従って、上記のモジュールにより、ホスト610は、RDMAデバイス650のメモリーにアクセスするための、周辺機器630のプロセッサコアからのアクセスリクエストメッセージに係る通知を受け取ることができる。その通知は、ホスト610及びRDMAデバイス650のメモリーにマップされたメモリー例えば、図3に示されるようにの中に含まれる仮想アドレスにおいて受け取られる。ホストデバイス610は、そのアクセスリクエストメッセージに基づいて、RDMAデバイスに対してRDMAアクセスリクエストを転送する。ここで、リクエストは仮想アドレスRDMAパラメーターを含んでいる。従って、データリクエストのタイプが何であれ、アクセスリクエストメッセージは、例えば、send、receive、write、read、atomiccompare/exchange、atomicfetch/add、等を含んでいる。データリクエストは、RDMAデバイス650に対して、周辺機器630からというよりむしろ、まるでホスト610上のユーザーモードから生じたものであるように見える。図7は、本発明の一つの実施例を利用するシステムのブロックダイヤグラムである。システム700は、サーバープラットフォームを記述しているが、例えば、以下のものに含まれてのよい。デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、ネットブック、ノートブックコンピューター、パーソナルデジタルアシスタントPDA、サーバー、ワークステーション、携帯電話、モバイルコンピューター機器、インターネット機器、MP3又はメディアプレーヤー、または、あらゆる他のタイプのコンピューターデバイス、である。システム700は、システムバス720を介して、データを交換するためのプロセッサ710、ユーザーインターフェイス760、システムメモリー730、周辺機器コントローラー740、および、ネットワークコネクター750を含んでいる。その周辺機器コントローラーは、周辺機器及びRDMAデバイスとコミュニケーション可能に接続され、上記の本発明の実施例のいずれかに従ってデバイ患者関連情報のI/Oリクエストを管理する。システム700は、さらに、システム700の種々のエレメントによって処理されるべき信号を送信及び受信するためのアンテナとRF回路770を含んでいる。上記のアンテナは、指向性アンテナ又は無指向性アンテナであってよい。ここにおいて使用されるように、無指向性アンテナという用語は、少なくとも一平面において実質的に均一なパターンを有するあらゆるアンテナを参照するものである。例えば、いくつかの実施例において、アンテナは、ダイポールdipoleアンテナ、または、四分の一波長quarterwaveアンテナといった、無指向性アンテナであってよい。例えば、いくつかの実施例において、アンテナは、パラボラアンテナ、パッチアンテナ、または、八木アンテナといった、指向性アンテナであってもよい。いくつかの実施例において、システム700は、複数の物理的なアンテナを含んでよい。ネットワークコネクター750から離れているように示されているが、他の実施例において、アンテナ及びRF回路770は、無線インターフェイスを含んでよいことが理解されるべきである。無線インターフェイスは、これらに限定されるわけではないが、IEEE802.11規格及び関連ファミリー規格、HomePlugAVHPAV、ウルトラワイドバンドUWB、Bluetooth登録商標、WiMax、または、無線通信プロトコルの他の形式に従って動作するものである。ここにおいて、プロセス、サーバー、または、ツールとして説明され、上記に参照された種々のコンポーネントは、説明された機能を実行するための手段であってよい。ここにおいて説明されたそれぞれのコンポーネントは、ソフトウェア又はハードウェア、または、これらの組み合わせを含んでいる。それぞれ及び全てのコンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、特定用途ハードウェア例えば、アプリケーション所定のハードウェア、ASIC、DSP、等、エンベッドコントローラー、ハードワイヤード回路、ハードウェアロジック、等として実施されてよい。ソフトウェアコンテンツ例えば、データ、インストラクション、コンフィグレーションは、固定で有形なコンピューター又はマシンで読取り可能な媒体を含む製品を介して提供されてよい。実行され得るインストラクションを表すコンテンツを提供するものである。コンテンツは、結果として、ここにおいて説明された種々の機能/動作のコンピューターによる実行を生じる。コンピューターで読取り可能な固定記録媒体は、コンピューター例えば、計算機器、電子システム、等によってアクセス可能な形式で情報を提供つまり、保管及び又は送信するあらゆるメカニズムを含んでいる。記録可能/記録不能媒体例えば、読み出し専用メモリーROM、ランダムアクセスメモリーRAM、磁気ディスク記録媒体、光記録媒体、フラッシュメモリーデバイス、等といったものである。コンテンツは、直接的に実行可能なオブジェクト又は実行可能形式ソースコード、または、異なるコードデルタ又はパッチコードであってよい。コンピューターで読取り可能な固定記録媒体は、また、ストレージ又はデータベースを含んでよく、そこからコンテンツをダウンロードすることができる。コンピューターで読取り可能な媒体は、また、販売時又は引き渡し時に、媒体上にコンテンツが保管されているデバイス又はプロダクトを含んでよい。従って、コンテンツが保管されたデバイスを引き渡すこと、または、コミュニケーション媒体にわたるダウンロードのためにコンテンツを提供することは、ここにおいて説明されたようなコンテンツを伴う製品を提供することとして理解されてよい。