(57)【要約】本明細書に記載の諸実施形態は、ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクスを拡張してローカル記憶システムにおける実装を可能とすることと、ローカル・データ記憶を初期化するための管理インタフェースを提供することに関する。コンピュータ・システムがＲＤＭＡセマンティクスを拡張して、ＲＤＭＡを用いたローカル記憶へのアクセスを提供する。ここで、ＲＤＭＡセマンティクスの拡張には、ＲＤＭＡバーブ・インタフェースのＲＤＭＡバーブをローカル・データ記憶にマップすること、および、ＲＤＭＡ順序セマンティクスを変更して順不同処理および／または順不同完了を可能とすることが含まれる。コンピュータ・システムはまた、拡張ＲＤＭＡセマンティクスを用いてローカル・データ記憶の様々な部分にアクセスする。
2013524342.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリとを備えるコンピュータ・システムで、ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクスを拡張してローカル記憶システムにおける実装を可能とするコンピュータ実装方法あって、
１つまたは複数のＲＤＭＡセマンティクスを拡張してＲＤＭＡを用いてローカル記憶アクセスを提供する動作であって、前記ＲＤＭＡセマンティクスを拡張することが、
ＲＤＭＡバーブ・インタフェースの１つまたは複数のＲＤＭＡバーブをローカル・データ記憶にマップする動作と、
１つまたは複数のＲＤＭＡ順序セマンティクスを変更して、順不同処理および／または順不同完了のうち少なくとも１つを可能とする動作と、
を含む動作と、
前記ローカル・データ記憶の１つまたは複数の部分に、拡張した前記ＲＤＭＡセマンティクスを用いてアクセスする動作と
を含むことを特徴とする方法。
【請求項２】
前記マップする動作が、ローカル・データ記憶がＲＤＭＡによりエンドポイントとして認識されるように、前記ローカル・データ記憶を名付けることを含むことを特徴とする請求項１に記載の方法。
【請求項３】
順不同処理および順不同完了を可能としつつ、ＲＤＭＡの既存のフェンシング機能を保持することを特徴とする請求項１に記載の方法。
【請求項４】
拡張した前記ＲＤＭＡセマンティクスが、ファイル・システムとデータベースのうち少なくとも１つを含む記憶管理層で実装されることを特徴とする請求項１に記載の方法。
【請求項５】
拡張した前記ＲＤＭＡセマンティクスが、各動作が完了した時点を報告する少なくとも１つのセマンティクスを含むことを特徴とする請求項１に記載の方法。
【請求項６】
拡張した前記ＲＤＭＡセマンティクスを用いて前記アプリケーションと前記ローカル・データ記憶の間の接続を確立するソフトウェア・アプリケーションの動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記ソフトウェア・アプリケーションが、確立した前記接続を用いて前記ローカル・データ記憶に格納したアプリケーション・データの少なくとも一部にアクセスすることを特徴とする請求項６に記載の方法。
【請求項８】
プロセッサが何ら関わることなく、前記接続を確立した後に前記ソフトウェア・アプリケーションと前記ローカル・データ記憶の間でデータが転送されることを特徴とする請求項６に記載の方法。
【請求項９】
保留のデータ転送をフラッシュし、少なくとも１つのデータ操作の完了を保証する、１つまたは複数のバリア動作を処理する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記ローカル・データ記憶がメモリ・アレイ・ベースのターゲット装置であることを特徴とする請求項１に記載の方法。
【請求項１１】
前記ローカル・データ記憶がフラッシュ・ベースの記憶装置であることを特徴とする請求項１に記載の方法。
【請求項１２】
データの１つまたは複数の部分が前記ローカル・データ記憶にキャッシュされることを特徴とする請求項１に記載の方法。
【請求項１３】
拡張した前記ＲＤＭＡセマンティクスが、前記ローカル・データ記憶にリモート・アクセスを提供するように構成されたことを特徴とする請求項１に記載の方法。
【請求項１４】
ＲＤＭＡにより提供された１つまたは複数のネットワーク保証が、前記ローカル・データ記憶で使用するためにユーザ指定の程度まで選択的に緩和されることを特徴とする請求項１に記載の方法。
【請求項１５】
ローカル・データ記憶を初期化するための管理インタフェースを提供する方法を実装するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、コンピューティング・システムの１つまたは複数のプロセッサにより実行されたときに前記コンピューティング・システムに方法を実行させるコンピュータ実行可能命令を格納した１つまたは複数のコンピュータ読取可能記憶媒体を備え、前記方法が、
ローカル永続データ記憶を初期化するように構成された管理インタフェースをインスタンス化する動作と、
前記ローカル永続データ記憶を初期化するときに適用すべき１つまたは複数の設定を示す入力を受け取る動作であって、前記設定のうち少なくとも１つが、どのように前記ローカル永続データ記憶を分割すべきかを示す、動作と、
前記ローカル永続データ記憶を、前記管理インタフェースを用いて各々にアクセス可能な１つまたは複数のパーティションに分割する動作と、
分割した前記ローカル永続データ記憶を、前記管理インタフェースを用いてローカルＲＤＭＡエンドポイントとして初期化する動作と、
を含むことを特徴とするコンピュータ・プログラム製品。
【請求項１６】
前記管理インタフェースがサードパーティ製の管理インタフェースを含むことを特徴とする請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記管理インタフェースにより、ユーザが、前記ローカル永続データ記憶をそれらに分割すべき幾つかのパーティションを構成することができることを特徴とする請求項１５に記載のコンピュータ・プログラム製品。
【請求項１８】
前記管理インタフェースにより、ユーザが、パーティションごとにユーザ・アクセス設定を構成することができることを特徴とする請求項１５に記載のコンピュータ・プログラム製品。
【請求項１９】
前記管理インタフェースにより、ユーザが、パーティションごとにメモリ・オフセットを構成することができることを特徴とする請求項１５に記載のコンピュータ・プログラム製品。
【請求項２０】
コンピューティング・システムであって、
１つまたは複数のプロセッサと、
システム・メモリと、
ローカル・データ記憶と、
前記１つまたは複数のプロセッサにより実行されたときに前記コンピューティング・システムに、ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクスを拡張して前記ローカル・データ記憶における実装を可能とする方法を実行させるコンピュータ実行可能命令を格納した１つまたは複数のコンピュータ読取可能記憶媒体であって、前記方法が、
１つまたは複数のＲＤＭＡセマンティクスを拡張してＲＤＭＡを用いたローカル記憶アクセスを提供する動作であって、前記ＲＤＭＡセマンティクスを拡張することが、
ＲＤＭＡネットワークＡＰＩセマンティクス・インタフェースの１つまたは複数のＲＤＭＡネットワークＡＰＩセマンティクスを前記ローカル・データ記憶にマップする動作と、
１つまたは複数のＲＤＭＡ順序セマンティクスを変更して、順不同処理および順不同完了のうち少なくとも１つを可能とする動作と、
を含む動作と、
リモート・コンピューティング・システムから、前記ローカル・データ記憶の１つまたは複数の部分に、拡張した前記ＲＤＭＡネットワークＡＰＩセマンティクスを用いてアクセスする動作と、
ローカル・コンピューティング・システムから、前記ローカル・データ記憶の１つまたは複数の部分に、同じ拡張した前記ＲＤＭＡネットワークＡＰＩセマンティクスを用いてアクセスする動作と、
を含む、１つまたは複数のコンピュータ読取可能記憶媒体と
を備えたことを特徴とするコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＤＭＡセマンティクスの高速記憶装置へのマッピングに関する。
【背景技術】
【０００２】
コンピュータは、職場、自宅、モバイル装置、および他の多くの場所において高度に融合されてきている。コンピュータは大量のデータを迅速かつ効率的に処理することができる。コンピュータ・システムで実行するように設計されたソフトウェア・アプリケーションにより、ユーザは多種多様な機能を実施することができる。当該機能には、ビジネス・アプリケーション、学校の宿題、娯楽、等が含まれる。ソフトウェア・アプリケーションはしばしば、ドキュメントを下書きするためのワード・プロセッサ・アプリケーション、または電子メールを送信し、受信し、編集するための電子メール・プログラムのような具体的な作業を実施するように設計されている。
【発明の概要】
【０００３】
幾つかのケースでは、コンピュータ・システムは異種のソフトウェア・アプリケーションを用いて互いに通信する。しかし、かかるアプリケーション間通信では一般に、プロセッサが、互いの送信した出力や互いが受信した入力を処理する必要がある。このように作業負荷が増大することによって、特に無数の入力や出力が異なるソフトウェア・アプリケーション間で送信されている場合には、プロセッサに過大なオーバヘッドがかかるおそれがある。
【０００４】
このようなプロセッサの関与を回避するため、アプリケーション間（またはアプリケーションとリモート・データ記憶との間）の通信を可能としつつ、ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）を実装することができる。ＲＤＭＡにより、アプリケーションからの読書き要求をアプリケーションからネットワーク記憶装置または記憶サーバへ直接流すことができる。この読書き要求を２つのコンピュータの間で満足し、転送することができ、何れのシステムのプロセッサも関与する必要はない。
【０００５】
本明細書に記載の諸実施形態は、ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクスを拡張してローカルの記憶システムにおける実装を可能とすることと、ローカル・データ記憶を初期化するための管理インタフェースを提供することに関する。１実施形態では、コンピュータ・システムがＲＤＭＡセマンティクスを拡張して、ＲＤＭＡを用いたローカル記憶へのアクセスを提供する。ここで、ＲＤＭＡセマンティクスの拡張には、ＲＤＭＡバーブ（ＲＤＭＡ  ｖｅｒｂ）インタフェースのＲＤＭＡバーブをローカル・データ記憶にマップすること、および、ＲＤＭＡ順序セマンティクスを変更して順不同処理および／または順不同完了を可能とすることが含まれる。コンピュータ・システムはまた、拡張ＲＤＭＡセマンティクスを用いてローカル・データ記憶の様々な部分にアクセスする。
【０００６】
別の実施形態では、コンピュータ・システムは、ローカル永続データ記憶を初期化するように構成した管理インタフェースを初期化する。コンピュータ・システムは、ローカル永続データ記憶を初期化するときに適用すべき様々な設定を特定する入力を受け取る。ここで、当該設定のうち少なくとも１つが、どのようにローカル永続データ記憶を分割すべきかを特定する。コンピュータ・システムは、ローカル永続データ記憶を、管理インタフェースを用いて各々アクセス可能なパーティションに分割する。コンピュータ・システムはまた、分割したローカル永続データ記憶を、管理インタフェースを用いてローカルＲＤＭＡエンドポイントとして初期化する。
【０００７】
本要約は、選択した概念を簡潔な形で導入するために与えたものである。その概念は、下記の発明を実施するための形態においてさらに説明する。本要約は、特許請求の範囲の主題の主要な特徴または本質的な特徴を特定しようとするものではなく、特許請求の範囲の主題の範囲の決定を支援するものとして使用しようとするものでもない。
【０００８】
さらなる特徴および利点は、下記の発明を実施するための形態で説明され、発明を実施するための形態から部分的に明らかになり、または、本明細書の教示事項を実施することにより習得することができる。本発明の特徴および利点を、添付の特許請求の範囲で特に指摘した手段および組合せにより実現し取得することができる。本発明の特徴は、下記の発明を実施するための形態および添付の特許請求の範囲からより完全に明らかになろう。または、本発明の特徴を、以降で説明する発明を実施することにより習得することができる。
【０００９】
本発明の諸実施形態の上述および他の利点および特徴をさらに明らかにするために、本発明の諸実施形態のより具体的な説明を、添付の図面を参照して行う。これらの図面は本発明の典型的な諸実施形態を示すにすぎず、したがって、その範囲を限定するものと考えるべきではないことは理解されよう。本発明を、添付の図面を用いてさらに具体的かつ詳細に説明する。
【図面の簡単な説明】
【００１０】
【図１】ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクスを拡張してローカル記憶システムにおける実装を可能とすることを含めて本発明の諸実施形態を実施できる、コンピュータ・アーキテクチャの図である。
【図２】ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクスを拡張してローカル記憶システムにおける実装を可能とするための例示的な方法の流れ図である。
【図３】ローカル・データ記憶を初期化するための管理インタフェースを提供する例示的な方法の流れ図である。
【図４】管理インタフェースを用いてユーザがデータ記憶と対話する実施形態の図である。
【発明を実施するための形態】
【００１１】
本明細書に記載の諸実施形態は、ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクスを拡張してローカル記憶システムにおける実装を可能とすることと、ローカル・データ記憶を初期化するための管理インタフェースを提供することに関する。１実施形態では、コンピュータ・システムがＲＤＭＡセマンティクスを拡張して、ＲＤＭＡを用いたローカル記憶へのアクセスを提供する。ここで、ＲＤＭＡセマンティクスの拡張には、ＲＤＭＡバーブ（ＲＤＭＡ  ｖｅｒｂ）インタフェースのＲＤＭＡバーブをローカル・データ記憶にマップすること、および、ＲＤＭＡ順序セマンティクスを変更して順不同処理（アウトオブオーダー処理）および／または順不同完了を可能とすることが含まれる。コンピュータ・システムはまた、拡張ＲＤＭＡセマンティクスを用いてローカル・データ記憶の様々な部分にアクセスする。
【００１２】
別の実施形態では、コンピュータ・システムは、ローカル永続データ記憶を初期化するように構成した管理インタフェースをインスタンス化する。コンピュータ・システムは、ローカル永続データ記憶を初期化するときに適用すべき様々な設定を特定する入力を受け取る。ここで、当該設定のうち少なくとも１つが、どのようにローカル永続データ記憶を分割すべきかを特定する。コンピュータ・システムは、ローカル永続データ記憶を、管理インタフェースを用いて各々にアクセス可能なパーティションに分割する。コンピュータ・システムはまた、分割したローカル永続データ記憶を、管理インタフェースを用いてローカルＲＤＭＡエンドポイントとして初期化する。
【００１３】
以下の議論では、実施できる幾つかの方法と方法の動作に言及する。方法の動作を特定の順序で論ずるか、または、特定の順序で実施される流れ図として示すが、動作は実施されている当該動作以前に完了した別の動作に依存するので、どの特定の順序も特に断らない限り必ずしも必要でないし、要求もされないことに留意されたい。
【００１４】
本発明の諸実施形態は、以下でより詳細に論ずるように、例えば１つまたは複数のプロセッサおよびシステム・メモリのようなコンピュータ・ハードウェアを含む特殊目的または汎用目的のコンピュータを備えるかまたは利用してもよい。本発明の範囲内の諸実施形態はまた、コンピュータ実行可能命令および／またはデータ構造を運搬または格納するための物理的な他のコンピュータ読取可能媒体を備える。かかるコンピュータ読取可能媒体は、汎用目的または特殊目的のコンピュータ・システムがアクセス可能な任意の利用可能な媒体であることができる。コンピュータ実行可能命令を格納するコンピュータ読取可能媒体はコンピュータ記憶媒体である。コンピュータ実行可能命令を運搬するコンピュータ読取可能媒体は伝送媒体である。したがって、限定ではなく例として、本発明の諸実施形態が、少なくとも２つの多種多様なコンピュータ読取可能媒体、即ち、コンピュータ記憶媒体および伝送媒体を備えることができる。
【００１５】
コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶、磁気ディスク記憶もしくは他の磁気記憶装置、または所望のプログラム・コード手段をコンピュータ実行可能命令またはデータ構造の形で格納するために使用でき汎用目的または特殊目的のコンピュータによりアクセス可能な他の任意の媒体が含まれる。
【００１６】
「ネットワーク」は、電子データをコンピュータ・システムおよび／もしくはモジュールならびに／または電子装置の間で搬送可能とする１つまたは複数のデータ接続として定義される。情報がネットワークまたは別の通信接続（結線、無線、または結線もしくは無線の組合せ）を介してコンピュータに転送または提供されると、当該コンピュータはまさに当該接続を伝送媒体とみる。伝送媒体は、所望のプログラム・コード手段をコンピュータ実行可能命令またはデータ構造の形で運ぶために使用でき、汎用目的または特殊目的のコンピュータによりアクセス可能な、ネットワークおよび／またはデータ接続を備えることができる。上記の組合せもコンピュータ読取可能媒体の範囲内に含まれるべきである。
【００１７】
さらに、様々なコンピュータ・システムのコンポーネントに至る際、コンピュータ実行命令またはデータ構造の形のプログラム・コード手段を伝送媒体からコンピュータ記憶媒体へ（またはその逆へ）自動的に送信することができる。例えば、ネットワークまたはデータ接続を介して受信したコンピュータ実行可能命令またはデータ構造をネットワーク・インタフェース・モジュール（例えば、「ＮＩＣ」）内部のＲＡＭにバッファし、次いで、最終的にコンピュータ・システムのＲＡＭおよび／またはコンピュータ・システムの不揮発度の低いコンピュータ記憶媒体に転送することができる。したがって、コンピュータ記憶媒体を、伝送媒体を追加的に（または主に）利用するコンピュータ・システムのコンポーネントに含めることができることは理解されよう。
【００１８】
コンピュータ実行可能命令は、例えば、汎用目的のコンピュータ、特殊目的のコンピュータ、または特殊目的の処理装置に特定の機能または機能群を実施させる命令およびデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間形式の命令、またはソース・コードであってもよい。本発明を構造的特徴および／または方法論的動作に固有な言葉で説明したが、添付の特許請求の範囲で定義した本発明は必ずしも上述の特徴または動作に限定されないことは理解されよう。寧ろ、上述の特徴および動作は特許請求の範囲を実装する例示的な形態として開示されている。
【００１９】
本発明を多種のコンピュータ・システム構成のネットワーク・コンピューティング環境で実施できることは当業者には理解されよう。当該コンピュータ・システム構成には、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージ・プロセッサ、ハンドヘルド装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラム可能な消費家電、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、スイッチ、等が含まれる。本発明を分散システム環境で実施してもよい。当該分散システム環境では、ローカルおよびリモートのコンピュータ・システムが、ネットワークを介して（結線データ接続、無線データ接続の何れかにより、または、結線データ接続と無線データ接続の組合せにより）接続され、両方ともタスクを実施する。分散システム環境では、プログラム・モジュールをローカルのメモリ記憶装置とリモートのメモリ記憶装置の両方に配置してもよい。
【００２０】
図１は、本発明の原理を使用できるコンピュータ・アーキテクチャ１００を示す。コンピュータ・アーキテクチャ１００は管理インタフェース１１０を備える。管理インタフェース１１０は、ユーザがローカル・データ記憶１４０と対話できるかまたはローカル・データ記憶１４０を使用できるようにする、任意の種類のソフトウェア・インタフェースであってもよい。ローカル・データ記憶１４０（または単に「データ記憶」）は任意の種類のデータ記憶システムであってもよい。当該データ記憶システムには、磁気ドライブまたは光ドライブ、ドライブ集合、データベース、記憶領域ネットワークまたは他の記憶システムが含まれる。ユーザ１０５はデータ記憶と対話したいかもしれない。かかる対話には、データを格納することまたは格納したデータを修正することを含めてもよい。ユーザはデータ要求１０６を管理インタフェース１１０に送信してもよい。当該管理インタフェース１１０は次いで１つまたは複数のその内部モジュールを用いて当該要求を処理する。
【００２１】
例えば、インタフェース１１０は、ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクス拡張モジュールを用いてＲＤＭＡセマンティクス１１６を拡張し、これらのセマンティクスを用いてデータ記憶１４０のデータにアクセスできるようにする。ＲＤＭＡセマンティクスが、ある装置またはプログラムがＲＤＭＡを用いて別の装置またはプログラムと会話できるようにするコマンド、クエリ、バーブまたは他のセマンティクスを含んでもよい。幾つかのケースでは、マッピング・モジュール１２０を使用してＲＤＭＡバーブ・インタフェースの様々なＲＤＭＡバーブをローカル・データ記憶にマップしてもよい。セマンティクス変更モジュール１２５を用いて様々なＲＤＭＡ順序セマンティクスを変更し、順不同処理および／または順不同完了の何れかまたはその両方を可能としてもよい。かかるマッピングおよび変更（ＲＤＭＡ拡張）により、ユーザまたはソフトウェア・アプリケーションが、拡張ＲＤＭＡセマンティクスを用いてローカル・データ記憶１４０にアクセスできるようにしてもよい。これらの概念を、図２の方法２００に関して以下でさらに詳細に説明する。
【００２２】
上述のシステムおよびアーキテクチャを考慮すると、開示した主題に従って実装できる方法は図２および図３の流れ図を参照すればより良く理解されよう。説明を簡単にするため、当該方法を一連のブロックとして図示し説明する。しかし、幾つかのブロックを本明細書で図示し説明したものと異なる順序でおよび／または他のブロックと並列に実施してもよいので、特許請求の範囲の主題は当該ブロックの順序によっては限定されないことは理解されよう。さらに、図示した全てのブロックが以降説明する方法を実装する必要はない。
【００２３】
図２は、ＲＤＭＡ（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）セマンティクスを拡張してローカル記憶システムにおける実装を可能とするための方法２００の流れ図を示す。方法２００を、環境１００のコンポーネントとデータを頻繁に参照して説明する。
【００２４】
方法２００は、１つまたは複数のＲＤＭＡセマンティクスを拡張してＲＤＭＡを用いたローカル記憶アクセスを提供する動作（動作２１０）を含む。例えば、ＲＤＭＡセマンティクス拡張モジュール１１５が、ＲＤＭＡセマンティクス１１６を拡張してＲＤＭＡを用いたローカル・データ記憶１４０へのアクセスを提供してもよい。ＲＤＭＡセマンティクスを、ＲＤＭＡをローカル記憶と関連して使用できるようにする追加のコマンドまたは他のプロパティを追加することによって、拡張してもよい。幾つかのケースでは、拡張ＲＤＭＡセマンティクスが、各動作が完了した時点を報告する少なくとも１つのセマンティクスを含んでもよい。したがって、例えば、読取動作または書込動作が完了したとき、当該セマンティクスにより当該読取動作または書込動作が完了したことが報告される。他の多くのかかるセマンティクスを、単独で、または上述のセマンティクスと関連して使用してもよい。
【００２５】
上述のように、ローカル・データ記憶１４０が様々な種類のデータ記憶ソリューションを含んでもよい。幾つかのケースでは、ローカル・データ記憶１４０は、メモリ・アレイ・ベースのターゲット装置（ｔａｒｇｅｔ  ｄｅｖｉｃｅ）である。他のケースでは、ローカル・データ記憶は何らかの種類のフラッシュ・ベースの記憶装置である。ローカル・データ記憶を、構成可能な期間だけ様々なデータ部分をキャッシュするように構成してもよい。幾つかのケースでは、拡張したＲＤＭＡセマンティクスは、ローカル・データ記憶へのリモート・アクセスを提供するように構成される。したがって、ユーザ１０５が、モジュール１１５により拡張された拡張ＲＤＭＡセマンティクス１１６を用いてローカル・データ記憶１４０にリモートにアクセスできてもよい。
【００２６】
幾つかのケースでは、上述のように、拡張ＲＤＭＡセマンティクスが、ネットワークを介したＲＤＭＡデータ・アクセスに用いられるＲＤＭＡネットワークＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）セマンティクス（またはＲＤＭＡバーブ）を含んでもよい。ＲＤＭＡネットワークＡＰＩを拡張し使用して、ローカル・データ記憶に格納されたデータ、ならびに、リモート・データ記憶に格納されたデータにアクセスすることができる。したがって、同一の拡張ＲＤＭＡネットワークＡＰＩを用いて、ローカル・データ記憶とリモート・データ記憶からローカル・データとリモート・データの両方にアクセスすることができる。別の言い方をすると、リモート・データ記憶に格納されたリモート・データに、ローカル・データ記憶に格納されたローカル・データにアクセスするために用いられる同一の拡張ＲＤＭＡセマンティクスを用いてアクセスすることができる。このように、１つの拡張ＲＤＭＡのＡＰＩを用いてローカル・データ記憶とリモート・データ記憶の両方にアクセスすることができる。
【００２７】
方法２００は、ＲＤＭＡバーブ・インタフェースの１つまたは複数のＲＤＭＡバーブをローカル・データ記憶にマップする動作（動作２２０）を含む。例えば、マッピング・モジュール１２０がＲＤＭＡバーブ・インタフェースの１つまたは複数のＲＤＭＡバーブをローカル・データ記憶１４０にマップしてもよい。ＲＤＭＡバーブをローカル・データ記憶にマップして、ユーザまたはソフトウェア・アプリケーション（例えば、それぞれ１０５または１０７）がＲＤＭＡバーブを用いてデータ記憶のデータにアクセスできるようにしてもよい。当該マッピングがまた、ローカル・データ記憶がＲＤＭＡによりエンドポイントとして認識されるようにローカル・データ記憶を名付けることを含んでもよい。したがって、ローカル・データ記憶がエンドポイントとして認識されるときは、ユーザまたは他の様々なソフトウェア・アプリケーションは、典型的なＲＤＭＡエンドポイントとしてデータ記憶にアクセスしデータ記憶を使用することができる。
【００２８】
方法２００は、１つまたは複数のＲＤＭＡ順序セマンティクスを変更して、順不同処理および順不同完了のうち少なくとも１つを可能とする動作（動作２３０）を含む。例えば、セマンティクス変更モジュール１２５が、ＲＤＭＡセマンティクス１１６を変更して順不同処理および／または順不同完了を可能としてもよい。順不同処理により、管理インタフェース１１０は要求（例えば、ユーザ・データ要求１０６およびアプリケーション・データ要求１０８）を受信したときに当該要求をローカル・データ記憶１４０に送信することができ、そうすると、ローカル・データ記憶が当該要求に順不同で応答することができる。当該要求に順番に応答する必要はないので、データ要求に応答する際の柔軟性が高くなる。順不同完了によってもまた、各動作が順不同で完了し（完了を知らせる）ことができる点で、柔軟性が高くなる。
【００２９】
幾つかのケースでは、ユーザまたはソフトウェア・アプリケーションが、読取り、書込み、または他の動作が完了したことを保証したい（または保証する必要がある）かもしれない。幾つかのケースでは、ＲＤＭＡを用いると、保留の要求をフラッシュして動作（例えば、読取動作）を実施する必要があるかもしれない。かかる動作は、バリア動作と呼ばれることもある。このように、バリア動作は、保留のデータ転送をフラッシュして動作が完了したことを保証することにより、所与のデータ転送が行われたことを保証する。したがって、バリア動作を使用して、アイテムをキャンセルせずに当該アイテムを迅速に完了することができる。
【００３０】
幾つかの実施形態では、順不同処理および順不同完了を依然として可能としつつ、ＲＤＭＡの既存のフェンシング機能を維持する。例えば、フェンス動作（バリア動作の完了部分）のサポートを依然として維持しつつ、送信待ち行列を順不同で処理することができる。フェンス動作では１つまたは複数の先行イベントが発生したことを検証する一方、バリア動作では所与のデータ転送が行われたことを保証する。したがって、ユーザはそれが完了する前の全ての動作に依存するものを送信待ち行列に挿入することができ、フェンシング動作が、それより前の動作が完了したことを保証する。
【００３１】
追加または代替として、バリア動作を処理して保留のデータ転送をフラッシュし、少なくとも１つのデータ操作の完了を保証してもよい。さらに、ローカル・データ記憶で使用するために、ＲＤＭＡが提供するネットワーク保証をユーザが指定する程度まで選択的に緩和してもよい。これらの保証を緩和することにより、これらの保証が必ずしも必要でないローカル記憶の実装形態をより効率的に実装することができる。これらの保証を緩和することで、データ転送を並列に実施し完了することもできる。したがって、データ記憶１４０に格納されたデータへのより高速なデータ・アクセスを実現することができる。
【００３２】
方法２００は、拡張ＲＤＭＡセマンティクスを用いてローカル・データ記憶の１つまたは複数の部分にアクセスする動作（動作２４０）を含む。例えば、管理インタフェース１１０が、拡張ＲＤＭＡセマンティクスを用いてローカル・データ記憶１４０にアクセスしてもよい。したがって、ＲＤＭＡセマンティクス拡張が実装されると、ユーザ１０５および／またはアプリケーション１０７はＲＤＭＡを用いてローカル・データ記憶１４０にアクセスすることができる。幾つかのケースでは、拡張ｋＤＭＡセマンティクスを、ファイル・システムおよび／またはデータベースを含む記憶管理層で実装してもよい。
【００３３】
幾つかの実施形態では、ソフトウェア・アプリケーション１０７が、拡張ＲＤＭＡセマンティクスを用いてアプリケーションとローカル・データ記憶１４０の間の接続を確立してもよい。ソフトウェア・アプリケーションは次いで、確立した接続を用いてローカル・データ記憶に格納されたアプリケーション・データの少なくとも一部にアクセスしてもよい。プロセッサが何ら関わることなく、接続が確立された後にデータをソフトウェア・アプリケーションとローカル・データ記憶の間で転送することができる。したがって、確立された接続により、アプリケーション１０７とローカル・データ記憶１４０を往復するデータ転送が可能となる。アプリケーションが実行されているコンピュータ・システムの中央演算装置が何ら関わることなく、このデータ転送を行ってもよい。このように、プロセッサが関わることなく、データをアプリケーション・メモリからデータ記憶へ直接転送することができる（その逆も可能である）。
【００３４】
図３は、ローカル・データ記憶を初期化するための管理インタフェースを提供する方法３００の流れ図を示す。方法３００を、図１の環境１００と図４の環境４００のコンポーネントとデータを頻繁に参照して説明する。
【００３５】
方法３００は、ローカル永続データ記憶を初期化するように構成された管理インタフェースを初期化する動作（動作３１０）を含む。例えば、コンピュータ・システムが、ローカル永続データ記憶４４０を初期化するように構成された管理インタフェース４１０をインスタンス化してもよい。当該管理インタフェースは、データ記憶４４０へのアクセスを可能とする任意の種類のソフトウェア・アプリケーションであってもよい。幾つかのケースでは、当該管理インタフェースは、データ記憶プロバイダ以外の者によって提供されたサードパーティ製の管理インタフェースであってもよい。
【００３６】
方法３００は、ローカル永続データ記憶を初期化するときに適用すべき１つまたは複数の設定を示す入力を受信する動作（動作３２０）を含み、当該設定のうち少なくとも１つは、ローカル永続データ記憶がどのように分割されるかを特定する。例えば、管理インタフェース４１０が、データ記憶初期化設定１３０／４３０を含むユーザ入力４０６をユーザ４０５から受け取ってもよい。これらの設定は、データ記憶４４０を初期化するときに適用される。例えば、パーティション設定４３１が、どれだけ多くのパーティションにデータ記憶４４０を分割すべきか、各パーティションがどれだけの大きさであるべきか、パーティションごとにどのようにメモリ・オフセット４４２を構成すべきか、ならびに他の設定を特定してもよい。幾つかの実施形態では、ユーザ４０５がデータ記憶初期化設定４３０の一部または全部を制御してもよい。管理インタフェース４１０により、ユーザがパーティションごとにユーザ・アクセス設定４３２を構成できてもよい。このように、ユーザは、他のパーティションに完全なアクセスを与えつつ、特定の（安全な）パーティションンへのアクセスを制限することができる。
【００３７】
方法３００は、管理インタフェースを用いて各々にアクセス可能な１つまたは複数のパーティションにローカル永続データ記憶を分割する動作（動作３３０）を含む。例えば、管理インタフェース４１０がローカル永続データ記憶４４０を、インタフェース４１０を用いてアクセス可能なパーティションに分割（またはローカル永続データ記憶４４０上で分割を開始）してもよい。アクセス可能性設定４３２を分割と関連して適用して、新たに生成したパーティションへのアクセスが当該アクセス可能性設定に従って制限されるようにしてもよい。
【００３８】
方法３００は、管理インタフェースを用いて、分割したローカル永続データ記憶をローカルＲＤＭＡエンドポイントとして初期化する動作（動作３４０）を含む。例えば、管理インタフェース４１０が、分割したローカル永続データ記憶４４０をローカルＲＤＭＡエンドポイントとして初期化してもよい。データ記憶がＲＤＭＡエンドポイントとして初期化された場合、ユーザはデータ記憶内のデータに、ＲＤＭＡにより管理インタフェースを介してアクセスすることができる。かかるＲＤＭＡエンドポイントのアクセスにより、アプリケーションは、プロセッサが関わることなく、データをアプリケーションのメモリからデータ記憶の１つまたは複数のパーティションに直接転送することができる。さらに、上述のように、少なくとも幾つかの実施形態では、ＲＤＭＡがローカル記憶で使用されるときに従来式のＲＤＭＡネットワーク保証を緩和することができるので、データ転送と他の動作を並列に実施し完了することができる。
【００３９】
したがって、ＲＤＭＡセマンティクスを拡張して、拡張ＲＤＭＡセマンティクスを用いたローカル記憶システム内のデータ・アクセスとデータ記憶を可能とする方法、システム、およびコンピュータ・プログラム製品が提供される。さらに、ユーザまたはソフトウェア・アプリケーションがローカル・データ記憶を初期化できる管理インタフェースを提供することができる。データ記憶を、ユーザが設定した初期化設定に従って、カスタマイズされた形で初期化することができる。
【００４０】
本発明を、その趣旨または本質的な特徴から逸脱しない他の具体的な形で具体化してもよい。説明した諸実施形態は全ての点で例示的であるにすぎず限定的ではないと考えるべきである。したがって、本発明の範囲は、以上の説明ではなく添付の特許請求の範囲により示される。特許請求の範囲の均等物の意味および範囲に入る全ての変更が、特許請求の範囲に包含される。
【図１】
2013524342.tif 000003
【図２】
2013524342.tif 000004
【図３】
2013524342.tif 000005
【図４】
2013524342.tif 000006
【国際調査報告】
2013524342.tif 000007
2013524342.tif 000008
2013524342.tif 000009