(57)【要約】  第１のコンピューティングデバイス内のローカルメモリデバイスから第２のコンピューティングデバイス内の外部メモリデバイスにデータを送信する方法が、本出願に記載されている。１つの例では、この方法は、外部メモリデバイスのデータを記憶するようにローカルメモリデバイスを構成することと、外部メモリデバイスからのデータの要求を検出することとを含む。この方法は、要求されたデータに対応するメモリアドレスを外部メモリアドレスからローカルメモリアドレスに変換することも含む。加えて、この方法は、ローカルメモリアドレスに基づいて、要求されたデータを取り出すことと、要求されたデータを第２のコンピューティングデバイスに送信することとを含む。【選択図】図１
2016522915.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピューティングデバイス内のローカルメモリデバイスから第２のコンピューティングデバイス内の外部メモリデバイスにデータを送信する方法であって、
前記外部メモリデバイスのデータを記憶するように前記ローカルメモリデバイスを構成するステップと、
前記外部メモリデバイスからのデータの要求を検出するステップと、
該要求されたデータに対応するメモリアドレスを外部メモリアドレスからローカルメモリアドレスに変換するステップと、
前記ローカルメモリアドレスに基づいて、前記要求されたデータを取り出すステップと、
前記要求されたデータを前記第２のコンピューティングデバイスに送信するステップと、
を含む、方法。
【請求項２】
前記外部メモリデバイスのデータを記憶するように前記ローカルメモリデバイスを構成するステップは、前記外部メモリデバイスのデータ記憶用に前記ローカルメモリデバイスの一部分を割り当てるステップを含む、請求項１に記載の方法。
【請求項３】
前記外部メモリデバイスからのデータの要求を検出するステップは、構成表を検索して、前記要求されたデータが前記ローカルメモリデバイスに存在するのか又は前記外部メモリデバイスに存在するのかを判断するステップを含む、請求項１に記載の方法。
【請求項４】
前記要求されたデータは、ローカルメモリアドレス空間におけるメモリアドレスと、外部メモリアドレス空間における別個のメモリアドレスとを有する、請求項１に記載の方法。
【請求項５】
前記構成表は、外部メモリアドレス空間からのメモリアドレスのリストと、ローカルメモリアドレス空間からのメモリアドレスのリストとを含む、請求項３に記載の方法。
【請求項６】
前記構成表は、少なくとも２つのコンピューティングデバイスに対応する少なくとも２つの外部メモリアドレス空間からのメモリアドレスのリストを含む、請求項５に記載の方法。
【請求項７】
外部メモリアドレス空間は、離散したメモリアドレスの範囲を含み、各離散したメモリアドレスは、コンピューティングデバイスに記憶されたデータに対応する、請求項１に記載の方法。
【請求項８】
データを外部メモリデバイスから取り出すシステムであって、
メモリアドレスを外部メモリアドレス空間からローカルメモリアドレス空間に変換するデータ変換モジュールと、
データを記憶するローカルメモリデバイスと、
プロセッサであって、
前記ローカルメモリデバイスにおいてデータの要求を検出し、
該要求されたデータが前記外部メモリデバイスに存在すると判断し、
前記データの要求を前記外部メモリデバイスに送信し、
前記要求されたデータを前記外部メモリデバイスから受信し、
前記要求されたデータに対応するメモリアドレスを前記外部メモリアドレス空間から前記ローカルメモリアドレス空間に変換し、
前記要求されたデータを該変換されたメモリアドレスとともに要求元に返す、
プロセッサと、
を備える、システム。
【請求項９】
前記要求元は、アプリケーション、オペレーティングシステム、及びハードウェア構成要素のうちの１つを含む、請求項８に記載のシステム。
【請求項１０】
前記データ変換モジュールは、構成表を備え、該構成表は、前記外部メモリアドレス空間からのメモリアドレスのリストと、前記ローカルメモリアドレス空間からのメモリアドレスのリストとを含む、請求項８に記載のシステム。
【請求項１１】
前記構成表は、少なくとも２つのコンピューティングデバイスに対応する少なくとも２つの外部メモリアドレス空間からのメモリアドレスのリストを含む、請求項１０に記載のシステム。
【請求項１２】
複数の命令を含む非一時的コンピュータ可読媒体であって、該複数の命令はコンピューティングデバイス上で実行されることに応答して、該コンピューティングデバイスに、
ローカルメモリデバイスにおいてデータの要求を検出させ、
該要求されたデータが外部メモリデバイスに存在すると判断させ、
前記データの要求を前記外部メモリデバイスに送信させ、
前記要求されたデータを前記外部メモリデバイスから受信させ、
前記要求されたデータに対応するメモリアドレスを外部メモリアドレス空間からローカルメモリアドレス空間に変換させ、
前記要求されたデータを該変換されたメモリアドレスとともに要求元に返させる、
非一時的コンピュータ可読媒体。
【請求項１３】
前記要求元は、アプリケーション、オペレーティングシステム、及びハードウェア構成要素のうちの１つを含む、請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
コンピューティングデバイス上で実行されることに応答して、該コンピューティングデバイスに構成表を生成させる複数の命令を含み、該構成表は、前記外部メモリアドレス空間からのメモリアドレスのリストと、前記ローカルメモリアドレス空間からのメモリアドレスのリストとを含む、請求項１２に記載のコンピュータ可読媒体。
【請求項１５】
前記要求されたデータは、前記ローカルメモリアドレス空間におけるメモリアドレスと、前記外部メモリアドレス空間における別個のメモリアドレスとを有する、請求項１２に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
現代のコンピューティングシステムは、リソース、とりわけプロセッサ実行時間及びメモリ消費等を異なる量用いる場合がある広範囲のソフトウェアアプリケーションを実行することができる。例えば、幾つかのソフトウェアアプリケーションは、複雑な演算を実行する場合があり、その結果、かなりの量のプロセッサ実行時間が用いられる。他の例では、幾つかのソフトウェアアプリケーションは、メモリ集約的である場合があり、このため、それらのソフトウェアアプリケーションの実行中に結果を記憶するのに大量のメモリを用いる場合がある。幾つかの実施形態では、ソフトウェアアプリケーションは、複数のコンピューティングデバイス間でデータを共有することができる。
【０００２】
以下の詳細な説明では、図面を参照して幾つかの例を説明する。
【図面の簡単な説明】
【０００３】
【図１】ローカルメモリデバイスと外部メモリデバイスとの間でデータを共有することができる一例示のコンピューティングシステムのブロック図である。
【図２】ローカルメモリデバイスと外部メモリデバイスとの間でデータを共有する方法の一例を示すプロセスフロー図である。
【図３】ローカルメモリデバイスのメモリアドレス空間と外部メモリデバイスのメモリアドレス空間との間を変換するのに用いることができる構成表の一例を示す図である。
【図４】データを外部メモリデバイスに要求する方法の一例を示すプロセスフロー図である。
【図５】ローカルメモリデバイスと外部メモリデバイスとの間でデータを共有することができる有形の非一時的コンピュータ可読媒体の一例を示すブロック図である。
【発明を実施するための形態】
【０００４】
本明細書において説明する主題の実施形態によれば、コンピューティングシステムは、ローカルメモリデバイスと外部メモリデバイスとの間で２つの別々のメモリ空間を用いてデータを共有することができる。幾つかの実施形態では、ローカルメモリデバイスは、第１のコンピューティングシステムに存在する一方、外部メモリデバイスは、第２のコンピューティングシステムに存在する。これらのローカルメモリデバイス及び外部メモリデバイスはともに、メモリコントローラを通じて、メモリアドレス空間を用いて、プロセッサからアクセス可能なデータを記憶することができる。本明細書でいうメモリアドレス空間は、任意の適した範囲の離散したメモリアドレスを含み、各離散したメモリアドレスは、任意の適したコンピューティングデバイスに記憶されるデータに対応することができる。幾つかの例では、離散したメモリアドレスは、とりわけ、ハードドライブ、ソリッドステートドライブ、ネットワークホスト、周辺記憶デバイスのセクタ、又はＤＲＡＭメモリ、ＰＣＭメモリ、ＳＴＴ＿ＭＲＡＭメモリ、若しくはＲｅＲＡＭメモリにおけるキャッシュラインに対応することができる。幾つかの実施形態では、コンピューティングシステムは、ローカルメモリデバイスに対応するローカルメモリアドレス空間を外部メモリデバイスに対応する外部メモリアドレス空間に変換することによって、外部メモリデバイスに記憶されたデータを取り出すことができる。
【０００５】
図１は、ローカルメモリデバイスと外部メモリデバイスとの間でデータを共有することができるコンピューティングシステム１００の一例のブロック図である。コンピューティングシステム１００は、例えば、特に、サーバコンピュータ、移動電話、ラップトップコンピュータ、デスクトップコンピュータ、又はタブレットコンピュータを含むことができる。コンピューティングシステム１００は、記憶された命令を実行するように構成されたプロセッサ１０２を備えることができる。プロセッサ１０２は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、又は任意の数の他の適切な構成とすることができる。
【０００６】
プロセッサ１０２は、コンピューティングシステム１００を１つ又は複数のＩ／Ｏデバイス１０８に接続するように構成された入力／出力（Ｉ／Ｏ）デバイスインタフェース１０６に、システムバス１０４（例えば、特に、ＡＭＢＡ（商標）、ＰＣＩ（商標）、ＰＣＩ  Ｅｘｐｒｅｓｓ（商標）、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（商標）、シリアルＡＴＡ）を通じて接続することができる。Ｉ／Ｏデバイス１０８は、例えば、キーボード及びポインティングデバイスを含むことができ、このポインティングデバイスは、特に、タッチパッド又はタッチスクリーンを含むことができる。Ｉ／Ｏデバイス１０８は、コンピューティングシステム１００の組み込み構成要素とすることもできるし、コンピューティングシステム１００に外部接続されたデバイスとすることもできる。
【０００７】
プロセッサ１０２は、コンピューティングシステム１００をディスプレイデバイス１１２に接続するように構成されたディスプレイデバイスインタフェース１１０に、システムバス１０４を通じてリンクすることもできる。ディスプレイデバイス１１２は、コンピューティングシステム１００の組み込み構成要素である表示画面を備えることができる。ディスプレイデバイス１１２は、特に、コンピューティングシステム１００に外部接続されたコンピュータモニタ、テレビ、又はプロジェクタを含むこともできる。加えて、プロセッサ１０２は、システムバス１０４を通じてネットワークインタフェースカード（ＮＩＣ）１１４にリンクすることもできる。ＮＩＣ１１４は、システムバス１０４を通じてコンピューティングシステム１００をネットワーク（図示せず）に接続するように構成することができる。このネットワーク（図示せず）は、特に、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、又はインターネットとすることができる。
【０００８】
プロセッサ１０２は、システムバス１０４を通じてメモリデバイス１１６にリンクすることもできる。幾つかの実施形態では、メモリデバイス１１６は、ランダムアクセスメモリ（例えば、特に、ＳＲＡＭ、ＤＲＡＭ、ｅＤＲＡＭ、ＥＤＯ  ＲＡＭ、ＤＤＲ  ＲＡＭ、ＲＲＡＭ（商標）、ＰＲＡＭ）、読み出し専用メモリ（例えば、特に、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ）、不揮発性メモリ（ＰＣＭ、ＳＴＴ＿ＭＲＡＭ、ＲｅＲＡＭ、メモリスタ）、又は他の任意の適したメモリシステムを含むことができる。幾つかの例では、メモリデバイス１１６は、任意の適した数のデータ値にそれぞれ対応する任意の適した数のメモリアドレスを備えることができる。幾つかの実施形態では、メモリデバイス１１６と関連付けられたメモリアドレスは、ローカルメモリアドレス空間に対応する。例えば、ローカルメモリアドレス空間は、メモリデバイス１１６内の記憶データに対応する任意の適した数の曖昧でないメモリアドレスを含むことができる。
【０００９】
幾つかの実施形態では、メモリデバイス１１６は、メモリコントローラ１１８を通じてプロセッサ１０２によってアクセスすることができる。メモリコントローラ１１８は、プロセッサ１０２がデータをメモリデバイス１１６から読み出すとともにデータをメモリデバイス１１６に書き込むことを可能にするロジックを備えることができる。
【００１０】
プロセッサは、システムバス１０４を通じてデータ変換モジュール１２０にもリンクすることができる。幾つかの実施形態では、データ変換モジュール１２０は、メモリコントローラ１１８内に統合することができる。幾つかの実施形態では、データ変換モジュール１２０は、第２のメモリコントローラ１２５及びシステム接続１２６（とりわけ、例えば、イーサネット、ＰＣＩ（商標）、ＰＣＩ  Ｅｘｐｒｅｓｓ（商標）、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（商標）、シリアルＡＴＡ、メッセージパッシングインタフェース）を通じた第２のコンピューティングデバイス１２４内の外部メモリデバイス１２２からのデータの要求を検出することができる。外部メモリデバイス１２２は、ランダムアクセスメモリ（とりわけ、例えば、ＳＲＡＭ、ＤＲＡＭ、ｅＤＲＡＭ、ＥＤＯ  ＲＡＭ、ＤＤＲ  ＲＡＭ、ＲＲＡＭ（商標）、ＰＲＡＭ）、読み出し専用メモリ（とりわけ、例えば、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ）、不揮発性メモリ、又は他の任意の適したメモリシステムを含むことができる。幾つかの実施形態では、外部メモリデバイス１２２は、第２のメモリコントローラ１２５を備えることができる。幾つかの実施形態では、メモリデバイス１１６及び外部メモリデバイス１２２等の各メモリデバイスは、固有のメモリアドレス空間を用いてデータを記憶することができる。例えば、外部メモリデバイス１２２は、記憶データを外部メモリアドレス空間内のメモリアドレスと関連付けることによって、この記憶データにアクセスすることができる。同様に、メモリデバイス１１６は、記憶データをローカルメモリアドレス空間内のメモリアドレスと関連付けることによって、この記憶データにアクセスすることができる。
【００１１】
幾つかの実施形態では、第２のコンピューティングデバイス１２４は、データを外部メモリデバイス１２２に記憶することができる第２のデータ変換モジュール１２８も備えることができる。定期的に、第２のデータ変換モジュール１２８は、コンピューティングデバイス１００内のデータ変換モジュール１２０によって要求されたデータを外部メモリデバイス１２２から取り出すことができる。第２のデータ変換モジュール１２８は、外部メモリデバイス１２２から取り出された、要求されたデータをコンピューティングシステム１００内のデータ変換モジュール１２０に送信することもできる。幾つかの実施形態では、データ変換モジュール１２０は、要求されたデータと関連付けられたメモリアドレスを外部メモリアドレス空間からローカルメモリアドレス空間に変換することができる。データ変換モジュール１２０は、その後、ローカルメモリアドレス空間と関連付けられたメモリアドレスを用いて、要求されたデータを、要求側の任意のオペレーティングシステム、アプリケーション、又はハードウェア構成要素に提供することができる。
【００１２】
図１のブロック図は、コンピューティングシステム１００が図１に示す構成要素の全てを備えることを示すことを意図したものでないことが理解されるべきである。それとは逆に、コンピューティングシステム１００は、これよりも少ない構成要素又は図１に示していない追加の構成要素（例えば、追加のメモリデバイス、ビデオカード、追加のネットワークインタフェース等）を備えることができる。さらに、データ変換モジュール１２０の機能のいずれも、プロセッサ１０２等の任意の適したハードウェア構成要素において部分的に又は全面的に実施することができる。例えば、この機能は、特に、特定用途向け集積回路を用いて実施することもできるし、プロセッサ１０２において実施されるロジックにおいて実施することもできるし、メモリデバイス１１６において実施することもできるし、メモリコントローラにおいて実施することもできるし、周辺デバイス上のコプロセッサにおいて実施することもできる。
【００１３】
図２は、ローカルメモリデバイスと外部メモリデバイスとの間でデータを共有する方法の一例を示すプロセスフロー図である。この方法２００は、図１のコンピューティングシステム１００等の任意の適したコンピューティングデバイスを用いて実施することができる。
【００１４】
ブロック２０２において、第１のコンピューティングデバイスのデータ変換モジュール１２０は、外部メモリデバイスのデータを記憶するようにローカルメモリデバイスを構成することができる。幾つかの実施形態では、構成は、ローカルメモリデバイスの任意の適した部分を、外部メモリデバイスのデータを記憶するように割り当てることを含むことができる。例えば、データ変換モジュール１２０は、動的メモリ割り当て又は静的メモリ割り当て等の任意の適した割り当て技法を用いて、ローカルメモリデバイスの一部分を、外部記憶デバイスのデータを記憶するように割り当てることができる。幾つかの例では、ローカルメモリデバイスを有するコンピューティングデバイス内のプロセッサは、リモートノード又は第２のコンピューティングシステムに割り当てられたメモリが存在することを検出することができない。幾つかの例では、データ変換モジュール１２０は、ブートプロセス等のコンピューティングデバイスの初期化中に、ローカルメモリデバイスにおけるメモリ空間の割り当てを管理することができる。幾つかの例では、データ変換モジュール１２０は、ローカルメモリデバイスにおけるメモリ空間の割り当てを動的に管理することもできる。例えば、データ変換モジュール１２０は、ソフトウェアアプリケーションの終了に応答して、外部データ記憶用にローカルメモリデバイスに異なる量のメモリを再割り当てすることができる。
【００１５】
ブロック２０４において、データ変換モジュール１２０は、外部データ変換モジュールからのデータの要求を検出することができる。幾つかの実施形態では、この外部データ変換モジュールからのデータの要求は、データ変換モジュール１２０を通じてローカルメモリデバイスに送信することができる。例えば、データ変換モジュール１２０は、任意の適したシステム相互接続、とりわけ、バス、イーサネット、インフィニバンド、又はＰＣＩｅ等に接続することができる。第２のコンピューティングシステム内の外部データ変換モジュールが、ローカルメモリデバイスからデータを取り出すとき、この外部データ変換モジュールは、システム相互接続を通じてデータの要求を第１のコンピューティングデバイスのデータ変換モジュール１２０に送信することができる。
【００１６】
ブロック２０６において、データ変換モジュール１２０は、要求されたデータに対応するメモリアドレスを外部メモリアドレス空間からローカルメモリアドレス空間に変換することができる。幾つかの実施形態では、データ変換モジュール１２０は、ローカルメモリアドレス空間におけるメモリアドレスのリストと、外部メモリアドレス空間における対応するメモリアドレスのリストとを含む構成表を保持することができる。この構成表によって、データ変換モジュール１２０は、メモリアドレスを第１のメモリアドレス空間から第２のメモリアドレス空間に変換することが可能になる。幾つかの実施形態では、構成表は、各コンピューティングシステム内のメモリコントローラに記憶される。構成表は、定期的に更新することができ、とりわけ、他のシナリオの中でもコンピューティングシステムの初期化中又はアプリケーションの終了後等に更新することができる。構成表は、図３に関して以下でより詳細に説明される。
【００１７】
ブロック２０８において、データ変換モジュール１２０は、ローカルメモリアドレス空間からのローカルメモリアドレスに基づいて、要求されたデータを取り出すことができる。幾つかの実施形態では、データ変換モジュール１２０は、構成表からのローカルメモリアドレスを用いて、外部メモリデバイスから要求されたデータを取り出すことができる。ブロック２１０において、データ変換モジュール１２０は、取り出されたデータを第２のコンピューティングシステム内の外部データ変換モジュールに送信することができる。幾つかの実施形態では、データ変換モジュール１２０は、任意の適した通信プロトコル、とりわけＴＣＰ／ＩＰ又はメッセージパッシングインタフェース等を用いて、取り出されたデータを外部メモリデバイスに送信することができる。図２のプロセスフロー図は、特定のアプリケーションに応じて、方法２００内に任意の数の追加のステップを含めることができる。
【００１８】
図３は、ローカルメモリデバイスのメモリアドレス空間と外部メモリデバイスのメモリアドレス空間との間の変換に用いることができる構成表の一例である。上記で論述したように、構成表３００は、任意の適したコンピューティングシステム、とりわけ図１のコンピューティングシステム１００等においてデータ変換モジュール１２０とともに実装することができる。
【００１９】
構成表３００は、任意の適した数の列３０２及び３０４並びに行３０６及び３０８を含むことができる。幾つかの実施形態では、列３０２及び３０４は、同じデータ値に対応する別々のメモリアドレス空間内のメモリアドレス範囲を含むことができる。例えば、１つの列３０２又は３０４は、ローカルメモリアドレス空間又は外部メモリアドレス空間内の任意の数のメモリアドレス範囲を含むことができる。構成表３００からの行３０６又は３０８は、或るデータ値に対応する各メモリアドレス空間からのメモリアドレス範囲を含むことができる。例えば、構成表３００は、任意の数のコンピューティングデバイスからのデータブロックに対応するメモリアドレス範囲を含むことができる。
【００２０】
幾つかの実施形態では、構成表３００は、２つの列３０２及び３０４を含むことができ、各列３０２又は３０４は、コンピューティングデバイスの特定のメモリアドレス空間のメモリアドレス範囲を含む。例えば、構成表３００の行３０６又は３０８からの各メモリアドレス範囲は、同じデータブロックに対応する。この例示の構成表３００では、メモリアドレス範囲０ｘ０００１：００６４  ３１０及び０ｘ０１２Ｄ：０１９０  ３１４は、ローカルメモリアドレス空間に対応するデータ値のメモリアドレス範囲とすることができる。メモリアドレス範囲０ｘ０１Ｆ５：０２５８  ３１２は、外部メモリアドレス空間内のデータ値に対応するメモリアドレス範囲とすることができる。幾つかの例では、各データ値は、１つのローカルメモリアドレス及び複数の外部メモリアドレスに対応することができる。
【００２１】
図４は、データを外部メモリデバイスに要求する一例示の方法を示すプロセスフロー図である。方法４００は、図１のコンピューティングシステム１００等の任意の適したコンピューティングシステムにおいて実施することができる。
【００２２】
ブロック４０２において、データ変換モジュール１２０は、割り当て要求を生成することができる。本明細書でいう割り当て要求は、第１のメモリデバイス用のメモリを割り当てるように第２のコンピューティングシステムに命令することができる。例えば、割り当て要求は、第２のコンピューティングデバイス上に記憶することができる、第１のコンピューティングデバイスからの任意の適した量のデータを示すことができる。幾つかの実施形態では、第２のコンピューティングデバイスは、任意の適した技法を用いて、第２のコンピューティングデバイス内のメモリデバイスにおいてデータを割り当てることができる。
【００２３】
ブロック４０４において、データ変換モジュール１２０は、データの要求を検出することができる。幾つかの実施形態では、データの要求は、とりわけオペレーティングシステム、ソフトウェアアプリケーション、又はハードウェア構成要素によって生成することができる。ブロック４０６において、データ変換モジュール１２０は、要求されたデータがローカルメモリデバイスに存在するのか又は外部メモリデバイスに存在するのかを判断することができる。例えば、データ変換モジュール１２０は、要求されたデータが、ローカルメモリデバイスに対応するメモリアドレスを有するのか又は外部メモリデバイスに対応するメモリアドレスを有するのかを検出することができる。幾つかの実施形態では、データ変換モジュール１２０は、要求されたデータに対応するメモリアドレスをローカルメモリアドレス空間から外部メモリアドレス空間に変換することができる。要求されたデータが外部メモリデバイスに存在する場合、プロセスフローは、ブロック４０８に続く。要求されたデータがローカルメモリデバイスに存在する場合、プロセスフローは、ブロック４１０に続く。
【００２４】
ブロック４０８において、データ変換モジュール１２０は、外部メモリデバイスを備える第２のコンピューティングシステムにデータの要求を送信する。上記で論述したように、外部メモリデバイスは、データを第２のコンピューティングデバイスにローカルに記憶し、第１のコンピューティングデバイスにとっては外部にデータを記憶する。幾つかの実施形態では、データの要求は、外部メモリアドレス空間に対応する任意の適した数のメモリアドレスを含む。
【００２５】
ブロック４１２において、データ変換モジュール１２０は、要求されたデータを第２のコンピューティングシステム内の外部メモリデバイスから受信する。幾つかの実施形態では、データ変換モジュール１２０は、データの要求に応答して、任意の適した数のデータ値を受信する。幾つかの例では、受信されたデータは、外部メモリアドレス空間に対応するメモリアドレスを有することができる。
【００２６】
ブロック４１４において、データ変換モジュール１２０は、外部メモリアドレスをローカルメモリアドレスに変換することができる。例えば、データ変換モジュール１２０は、構成表を用いて、外部メモリアドレス空間からのメモリアドレスをローカルメモリアドレス空間からのメモリアドレスに変換することができる。幾つかの例では、データ変換モジュール１２０は、メモリアドレスを外部メモリアドレス空間からローカルメモリアドレス空間に変換することによって、ブロック４０６においてメモリアドレスの変換を逆にすることができる。
【００２７】
ブロック４１６において、データ変換モジュール１２０は、ローカルメモリアドレス空間からのメモリアドレスに基づいて、要求されたデータを返すことができる。データ変換モジュール１２０は、要求されたデータを、任意の適した要求元、とりわけオペレーティングシステム、アプリケーション、又はハードウェア構成要素等に返すことができる。プロセスフローは、ブロック４１８において終了する。
【００２８】
ブロック４０６において、要求されたデータがローカルメモリデバイスに存在する場合、プロセスフローはブロック４１０に続く。ブロック４１０において、データ変換モジュール１２０は、ローカルメモリアドレス空間を用いて、要求されたデータをローカルメモリデバイスから取り出す。プロセスフローは、ブロック４１８において終了する。
【００２９】
図４のプロセスフロー図は、方法４００の動作がいずれかの特定の順序で実行されることも、方法４００の動作の全てがあらゆる場合に含まれることも示すように意図されていない。さらに、特定のアプリケーションに応じて、任意の数の追加のステップを方法４００内に含めることができる。
【００３０】
図５は、リフレクティブメモリを有するコンピューティングデバイスにおいてコヒーレンシを実施することができる有形の非一時的コンピュータ可読媒体５００を示すブロック図である。有形の非一時的コンピュータ可読媒体５００は、プロセッサ５０２がコンピュータバス５０４を介してアクセスすることができる。さらに、有形の非一時的コンピュータ可読媒体５００は、本方法のステップを実行するようにプロセッサ５０２に指示するコンピュータ実行可能命令を含むことができる。
【００３１】
本明細書において論述した様々なソフトウェア構成要素は、図５に示すような有形の非一時的コンピュータ可読媒体５００上に記憶することができる。例えば、データ変換モジュール５０６は、メモリアドレスをローカルメモリアドレス空間から外部メモリアドレス空間に変換し、外部メモリアドレスを用いて、外部メモリデバイスに記憶されたデータを要求することができる。特定のアプリケーションに応じて、図５に示していない任意の数の追加のソフトウェア構成要素を有形の非一時的コンピュータ可読媒体５００内に含めることができることが理解されるべきである。
【００３２】
本例は、様々な変更及び代替の形態を受け入れることができ、例示として示されてきたにすぎない。さらに、本技法は、本明細書に開示した特定の例に限定されることを意図していないことが理解されるべきである。実際は、添付の特許請求の範囲の範囲が、開示された主題が関係する当業者に明らかである全ての代替形態、変更形態、及び均等形態を含むものとみなされる。
【図１】
2016522915.tif 000003
【図２】
2016522915.tif 000004
【図３】
2016522915.tif 000005
【図４】
2016522915.tif 000006
【図５】
2016522915.tif 000007
【国際調査報告】
2016522915.tif 000008
2016522915.tif 000009
2016522915.tif 000010