(57)【要約】      （修正有）【課題】エッジコンピューティングにおいて、エッジでのサービス実行をクラウドにルーティングすることによりレイテンシが発生する。【解決手段】エッジネットワークにおいてデータの重複排除を提供するための技術は、データセットの書き込み要求を取得する回路を有するコンピュータデバイスを含む。回路はまた、近似関数をデータセットに適用して近似データセットを生成する。加えて、回路は、近似データセットが共有メモリ内に既に存在するかどうかを判断し、近似データセットが共有メモリ内に既に存在するという判断に応答して、ローカルメモリアドレスと、近似データセットが既に存在する共有メモリ内の位置との間の関連付けを変換テーブルに書き込む。加えて、回路は、共有メモリ内の位置に関連付けられる参照カウントを増加させる。【選択図】図４
2020166838.tif 000002
【特許請求の範囲】
【請求項１】
データセットを書き込む要求を取得し、
前記データセットに近似関数を適用して近似データセットを生成し、
前記近似データセットが共有メモリ内に既に存在するかどうかを判断し、
前記近似データセットが前記共有メモリ内に既に存在するという判断に応答して、ローカルメモリアドレスと、前記近似データセットが既に存在する前記共有メモリ内の位置との間の関連付けを変換テーブル内に書き込み、
前記共有メモリ内の前記位置に関連付けられる参照カウントを増加させる、
回路を備える、コンピュータデバイス。
【請求項２】
前記要求を取得することは、ネットワークのエッジに位置するコンピュータデバイスから前記要求を受け取ることを含む、
請求項１に記載のコンピュータデバイス。
【請求項３】
前記回路は更に、前記近似データセットが前記共有メモリ内にまだ存在しないという判断に応答して、前記近似データセットを前記共有メモリに書き込む、
請求項１に記載のコンピュータデバイス。
【請求項４】
前記近似関数を適用することは、一組の利用可能な近似関数から前記近似関数を選択することを含む、
請求項１に記載のコンピュータデバイス。
【請求項５】
前記近似関数を選択することは、書き込まれる前記データセットのタイプに基づいて前記近似関数を選択することを含む、
請求項４に記載のコンピュータデバイス。
【請求項６】
前記近似関数を選択することは、画像データを圧縮する近似関数を選択することを含む、
請求項５に記載のコンピュータデバイス。
【請求項７】
前記近似関数を選択することは、音声データを圧縮する近似関数を選択することを含む、
請求項５に記載のコンピュータデバイス。
【請求項８】
前記近似関数を選択することは、１つ以上の値を所定の精度に丸める近似関数を選択することを含む、
請求項４に記載のコンピュータデバイス。
【請求項９】
前記近似関数を選択することは、前記データセットのサブセットを編集することを含む、
請求項４に記載のコンピュータデバイス。
【請求項１０】
前記近似関数を選択することは、値を最も近い既知の値に調整する近似関数を選択することを含む、
請求項４に記載のコンピュータデバイス。
【請求項１１】
前記近似関数を選択することは、色を所定のカラーパレット内の基準色に調整する近似関数を選択することを含む、
請求項１０に記載のコンピュータデバイス。
【請求項１２】
前記近似データセットが共有メモリ内に既に存在するかどうかを判断することは、前記近似データセットについて前記共有メモリ内のハッシュテーブルを検索することを含む、
請求項１に記載のコンピュータデバイス。
【請求項１３】
デバイスによって、データセットを書き込む要求を取得するステップと、
前記デバイスによって、前記データセットに近似関数を適用して近似データセットを生成するステップと、
前記デバイスによって、前記近似データセットが共有メモリ内に既に存在するかどうかを判断するステップと、
前記デバイスによって、前記近似データセットが前記共有メモリ内に既に存在するという判断に応答して、ローカルメモリアドレスと、前記近似データセットが既に存在する前記共有メモリ内の位置との間の関連付けを変換テーブル内に書き込むステップと、
前記デバイスによって、前記共有メモリ内の前記位置に関連付けられる参照カウントを増加させるステップと、
を含む、方法。
【請求項１４】
前記要求を取得するステップは、ネットワークのエッジに位置するコンピュータデバイスから前記要求を受け取るステップを含む、
請求項１３に記載の方法。
【請求項１５】
前記近似データセットが前記共有メモリ内にまだ存在しないという判断に応答して、前記デバイスによって、前記近似データセットを前記共有メモリに書き込むステップ、
を更に含む、請求項１３に記載の方法。
【請求項１６】
前記近似関数を適用するステップは、一組の利用可能な近似関数から前記近似関数を選択するステップを含む、
請求項１３に記載の方法。
【請求項１７】
前記近似関数を選択するステップは、書き込まれる前記データセットのタイプに基づいて前記近似関数を選択するステップを含む、
請求項１６に記載の方法。
【請求項１８】
前記近似関数を選択するステップは、画像データを圧縮する近似関数を選択するステップを含む、
請求項１７に記載の方法。
【請求項１９】
前記近似関数を選択するステップは、音声データを圧縮する近似関数を選択するステップを含む、
請求項１７に記載の方法。
【請求項２０】
前記近似関数を選択するステップは、１つ以上の値を所定の精度に丸める近似関数を選択するステップを含む、
請求項１６に記載の方法。
【請求項２１】
前記近似関数を選択するステップは、前記データセットのサブセットを編集するステップを含む、
請求項１６に記載の方法。
【請求項２２】
前記近似関数を選択するステップは、値を最も近い既知の値に調整する近似関数を選択するステップを含む、
請求項１６に記載の方法。
【請求項２３】
前記近似関数を選択するステップは、色を所定のカラーパレット内の基準色に調整する近似関数を選択するステップを含む、
請求項２２に記載の方法。
【請求項２４】
実行されていることに応答して、コンピュータデバイスに請求項１３乃至２３のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項２５】
請求項２４に記載のコンピュータプログラムを記憶した１つ以上の機械読取可能な記憶媒体。
【請求項２６】
請求項１３乃至２３のいずれか一項に記載の方法を実施するための手段を含む、コンピュータデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューティングにおける新たなパラダイムは、エッジコンピューティングである。エッジコンピューティングでは、ネットワークのエッジに（例えば道路脇に沿って）配置されたクライアントコンピュータデバイス（例えば車両内のコンピュータデバイス等）が、そのエッジに配置された（例えば小セル、基地局等のようにエッジ位置で利用可能な）メモリ及び／又はコンピューティングリソースを利用して、要求がネットワークのコア（例えば中央オフィス）にあるクラウドデータセンタにルーティングされた場合に可能となるよりも、より低レイテンシのサービスを提供する。動作において、エッジリソースは、様々なクライアントコンピュータデバイスから、センサデータ（例えば画像データ、オーディオデータ、温度データ等）のような大量のデータを受け取ることがあり、メモリを実行して演算を計算するために大量のリソースが利用可能なクラウドデータセンタに対して、エッジ位置におけるリソースは比較的限られている。したがって、エッジリソースがそれらのメモリ容量を使い果たす可能性があり、潜在的にはパフォーマンスの低下（例えばデータがより遅く、より高い容量のストレージリソースにページインされ、ページアウトされるので）につながる可能性があり、クライアントコンピュータデバイスからより遠くに配置されるクラウドデータセンタではなく、エッジにおいてサービスを実行することから得られた可能性のある任意のレイテンシの利益の低下をもたらす可能性がある。
【図面の簡単な説明】
【０００２】
本明細書で説明される概念は、添付の図面において、限定ではなく例として示されている。説明の簡潔性及び明確性のために、図面に示されている要素は、必ずしも縮尺通りに描かれていない。適切と考えられる場合、参照ラベルは、対応する要素又は類似の要素を示すために図面の中で繰り返される。
【０００３】
【図１】エッジリソースにおけるデータの重複排除を提供するためのシステムの少なくとも１つの実施形態の簡略化された図である。
【０００４】
【図２】図１のシステムに含まれるサーバコンピュータデバイスの少なくとも１つの実施形態の簡略化されたブロック図である。
【０００５】
【図３】図１のサーバコンピュータデバイスによって実行され得るデータセットを書き込む方法の少なくとも１つの実施形態の簡略化されたブロック図である。
【図４】図１のサーバコンピュータデバイスによって実行され得るデータセットを書き込む方法の少なくとも１つの実施形態の簡略化されたブロック図である。
【図５】図１のサーバコンピュータデバイスによって実行され得る、データセットを書き込む方法の少なくとも１つの実施形態の簡略化されたブロック図である。
【０００６】
【図６】図１のサーバコンピュータデバイスによって実行され得る、データセットを読み出す方法の少なくとも１つの実施形態の簡略化されたブロック図である。
【０００７】
【図７】図１のシステムで利用され得る、フォグ及びモバイルエッジコンピューティング（ＭＥＣ）ネットワークトポロジの簡略化されたブロック図である。
【発明を実施するための形態】
【０００８】
本開示の概念は、種々の修正及び代替形態の影響を受けやすいが、その特定の実施形態が、図面において例示として図示され、本明細書において詳細に説明される。しかしながら、本開示の概念を、開示された特定の形態に限定する意図はなく、反対に、本開示及び添付の特許請求の範囲と整合性のあるすべての修正、均等物及び代替物を網羅するよう意図していることを理解されたい。
【０００９】
明細書における「一実施形態」、「実施形態」、「例示的実施形態」等への言及は、説明される実施形態が、特定の特徴、構造又は特性を含むことがあるが、すべての実施形態が、その特定の特徴、構造又は特性を含んでもよく、あるいは必ずしも含んでいなくてもよいことを示す。さらに、このようなフレーズは、必ずしも同じの実施形態を指すものではない。さらに、特定の特徴、構造又は特性がある実施形態に関連して記載されているとき、明示的に説明されているか否かにかかわらず、他の実施形態に関連して、そのような特徴、構造又は特性を得ることができることは当業者の知識内であると言える。加えて、「Ａ、Ｂ及びＣの少なくとも１つ」の形のリストに含まれる項目は、（Ａ）；（Ｂ）；（Ｃ）；（Ａ及びＢ）；（Ａ及びＣ）；（Ｂ及びＣ）又は（Ａ、Ｂ及びＣ）を意味すると解釈されるべきである。同様に、「Ａ、Ｂ又はＣの少なくとも１つ」の形で列挙される項目は、（Ａ）；（Ｂ）；（Ｃ）；（Ａ及びＢ）；（Ａ及びＣ）；（Ｂ及びＣ）又は（Ａ、Ｂ及びＣ）を意味し得る。
【００１０】
開示される実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組合せで実装されてよい。また、開示される実施形態は、一時的又は非一時的な機械読取可能（例えばコンピュータ読取可能）記憶媒体によって搬送されるか又はその上に記憶される命令として実装されてもよく、１つ以上のプロセッサによって読み取られて実行されてよい。さらに、開示される実施形態は、宛先デバイス上で実行するための命令を準備するために予備処理動作を必要とし得る一組の予備命令として最初に符号化（例えば機械読取可能な記憶媒体上に符号化）されてよい。予備処理は、命令をデバイス上に存在するデータと組み合わせること、命令を異なるフォーマットに変換すること、圧縮、圧縮解除、暗号化及び／又は復号を実行すること、命令の異なるセクションを含む複数のファイルを組み合わせること、命令を、ライブラリ、オペレーティングシステム等のようなデバイス上に存在する他のコードと統合すること又は同様の演算を含んでよい。予備処理は、ソースコンピューティングデバイス（例えば命令を送信するデバイス）、宛先コンピュータデバイス（例えば命令を実行するデバイス）又は中間デバイスによって実行されてよい。機械読取可能な記憶媒体は、機械により読取可能な形態で情報を格納又は伝送するための任意のストレージデバイス、機構又は他の物理的構造（例えば揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス）として具現化されてよい。
【００１１】
図面において、いくつかの構造的又は方法的特徴は、特定の配置及び／又は順序で示されることがある。しかしながら、そのような特定の配置及び／又は順序は必要とされなくてもよいことが理解されるべきである。むしろ、いくつかの実施形態では、そのような特徴は、例示的な図に示されているものとは異なる方法及び／又は順序で構成されてもよい。加えて、特定の図に構造的又は方法的特徴を含めることは、そのような特徴がすべての実施形態で必要とされることを暗示するようには意図されておらず、いくつかの実施形態では、そのような特徴が含まれなくてもよく、他の特徴と組み合わされてもよい。
【００１２】
次に、図１を参照すると、エッジリソースにおけるデータの重複排除（deduplication）を提供するためのシステム１００は、エッジゲートウェイデバイス１２０と通信するクライアントコンピュータデバイス１１０を含む。エッジゲートウェイデバイス１２０は、クライアントコンピュータデバイス１１０と、１つ以上のサービスプロバイダ（セルラネットワークオペレータ等）によって所有及び／又は操作され得る１つ以上のエッジリソース１３０（例えばサーバコンピュータデバイス１４０、１４２）又はクラウド内に位置する他のコンピュータ装置との間でデータを通信することができる任意のデバイスとして具現化されてよい。エッジゲートウェイデバイス１２０及びエッジリソース１３０は、例示的な実施形態では、クラウドのエッジに沿った（例えばエッジネットワーク内の）１つ以上の位置（例えば小セル、基地局内等）に配置される。
【００１３】
エッジネットワークは、無線アクセスネットワーク（ＲＡＮ）対応型のエンドポイントデバイス（例えばモバイルコンピューティングデバイス、ＩｏＴ（Internet  of  Things）デバイス、スマートデバイス等）に近接して配置される、エッジコンピューティング及び／又はストレージリソースを提供する任意のタイプのネットワークとして具現化されてよい。言い換えると、エッジネットワークは、キャリアネットワーク（例えばＧＳＭ（登録商標）（Global  System  for  Mobile  Communications）ネットワーク、ＬＴＥ（Long-Term  Evolution）ネットワーク、５Ｇネットワーク等）を含むサービスプロバイダコアネットワークへの入口点として機能し、同時に記憶及び／又は計算能力も提供する、エンドポイントデバイスと従来のモバイルネットワークアクセスポイントとの間の「エッジ」に配置される。したがって、エッジネットワークは、エンタープライズアプリケーション（例えばリモートクラウド、データセンタ等に収容される）及び／又は他のネットワークベースのサービスへの無線アクセスインタフェースを提供することができ、また、ストレージ／コンピュータリソースをエンドポイントデバイスにより近くに持ってくることができる。一部の計算／処理をエッジネットワークで実行することができるので、低減されたレイテンシ、帯域幅等といった効率性（すなわち、リモートクラウド、データセンタ等で実行されているそのような計算／処理に対して）を実現することができる。エッジネットワークの意図された目的／能力に応じて、エッジネットワークは、１つ以上のエッジコンピューティングデバイスを含んでもよい。１つ以上のエッジコンピューティングデバイスは、１つ以上のゲートウェイ、サーバ、モバイルエッジコンピューティング（ＭＥＣ）機器等を含んでもよい。いくつかの実施形態では、エッジネットワークは、フォグネットワーク（例えばフォグノード１９０）の一部を形成するか又は他の方法でフォグネットワークへの入口点を提供してよいことを理解されたい。フォグネットワークは、コアデータセンタ１９２（例えばエッジリソース１３０よりも更に離れていてシステム１００の階層のより高いレベルにあり、かつ、１つ以上のサービス（例えば１つ以上のクライアントの代わりのプロセス）を実行することができる複数のコンピュータデバイスを含む、データセンタ）と、エンドポイントデバイス（例えばクライアントコンピュータデバイス１１０）との間のいずれかの場所にコンピューティング、ストレージ、制御及びネットワーキングのリソース及びサービスを分散する、システムレベルの水平アーキテクチャとして具現化されてよい。
【００１４】
本明細書でより詳細に説明されるように、例示的な実施形態では、複数のサーバコンピュータデバイス１４０、１４２を含むことができるエッジリソース１３０は、クライアントコンピュータデバイスに関連付けられる（例えばそれによって提供される、それによってアクセスされる等）データ（例えばクライアントコンピュータデバイス１１０によって実行されるアプリケーション１１２によって生成又は利用されるデータ）の重複排除を選択的に実行する。サーバコンピュータデバイス１４０は、１つ以上の物理コンピュータデバイス又は仮想化システム（例えば基礎となるハードウェアリソースが、仮想化環境内で実行しているソフトウェアには物理的なハードウェアとして見えるが、抽象化層によってソフトウェアから分離される、仮想マシン又は仮想コンテナのような仮想化環境内で実行される、１つ以上の機能（functions））として具現化され得る。サーバコンピュータデバイス１４０は重複排除論理ユニット１６０を含む。重複排除論理ユニット１６０は、所与のデータセットが、共有メモリ１５２、１７２（例えばサーバコンピュータデバイス１４０に対し及びサーバコンピュータデバイス１４２のような１つ以上のエッジリソースに対してアクセス可能なメモリ）内に既に存在する別のデータセットと同等であるかどうかを選択的に判断し、もしそうであれば、共有メモリ１５２、１７２内の新たな位置に重複コピーを書き込むのではなく、変換テーブル（例えばシステムメモリアドレスのようなローカルメモリアドレスを、共有メモリ内のアドレスに関連付けるデータセット）内に、共有メモリ１５２、１７２内の既存のデータセットの位置への参照（例えばポインタ）を格納するように構成される、任意のデバイス又は回路（例えばプロセッサ、コプロセッサ、再構成可能な回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）又はそれらの仮想化バージョン等）として具現化されてよい。その際、重複排除論理ユニット１６０は近似関数１６４を適用してよい。近似関数は、例えばデータセット内のデータ値の精度を低下させること、所定の値のセットに一致させるように１つ以上の値を調整すること（例えば色を所定のカラーパレットに変換すること）等によって、データセットを近似データセット（例えば元のデータセットとは異なるが同等であるように扱われるデータセット）に変換するように、データセットに対して作用する任意の関数として具現化されてよい。したがって、互いにわずかにだけ変化する（例えば０．１度だけ変化する温度読み取り値のように、データの他のインスタンスの所定の数値距離内にある）データのインスタンスについては、データの各インスタンスは、重複排除の目的のために、正確に同じものとして扱われ、それにより、メモリ（例えば共有メモリ１５２、１７２）に保持されるべきデータの固有のインスタンスの数を低減させる。例示的な実施形態では、共有メモリ１５２はハッシュテーブル１５４を含む。ハッシュテーブル１５４は、一意のデータセットを参照カウント（例えばその一意のデータセットを参照する（例えば変換テーブル１６２内の）ポインタの数を示す数値）に関連付ける任意のデータ構造として具現化されてよい。さらに、例示的な実施形態では、システム１００は、１つのハッシュテーブル１５４への更新が他のハッシュテーブル（例えばハッシュテーブル１７４）に伝搬され得る分散ハッシュテーブル（例えば共有メモリ１５２、１７２の複数のセットにわたって広がる）を利用する。加えて、本明細書でより詳細に説明されるように、重複排除論理ユニット１６０は、（例えばデータの優先度、タイプ又は重要度に基づいて）いくつかのタイプのデータについては重複排除を適用しないことを決定し、代わりに、共有メモリ１５２よりも下位の異なるタイプ（例えばより早い、より低容量）であり得るローカルメモリ１５８にデータを保持させることがある。例示的な実施形態では、重複排除論理ユニット１６０は、重複排除されたデータへのより効率的なアクセスを可能にする（例えば通信回路１５０によって受け取られたデータアクセス要求について、共有メモリ１５２に対するより直接的な経路を提供する）ために、汎用プロセッサ１５６ではなく通信回路１５０に含まれる。サーバコンピュータデバイス１４２は、例示的な実施形態では、サーバコンピュータデバイス１４０のものと同様に、重複排除論理ユニット１８０、変換テーブル１８２、近似関数１８４、プロセッサ１７６、ローカルメモリ１７８及び共有メモリ１７２を含む。いくつかの実施形態では、エッジゲートウェイデバイス１２０は、重複排除論理ユニット１６０と同様に、重複排除論理ユニット１８６を含んでもよく、サーバコンピュータデバイス１４０、１４２によって実行されるものとして本明細書に記載される重複排除機能の１つ以上を実行してよい。
【００１５】
次に、図２を参照すると、例示的なサーバコンピュータデバイス１４０は、計算エンジン（本明細書では「計算エンジン回路」とも呼ばれる）２１０、入力／出力（Ｉ／Ｏ）サブシステム２１４、通信回路１５０及び１つ以上のデータストレージデバイス２１８を含む。本明細書で説明されるように、サーバコンピュータデバイス１４０は、１つ以上のアクセラレータデバイス２２０も含んでよい。当然、他の実施形態では、クライアントコンピュータデバイス１１０は、コンピュータに一般的に見られるような他の又は追加の構成要素（例えばディスプレイ、周辺装置等）を含んでもよい。加えて、いくつかの実施形態において、例示的な構成要素の１つ以上は、別の構成要素に組み込まれてもよく又は他の方法で別の構成要素の一部を形成してもよい。計算エンジン２１０は、以下で説明される様々な計算機能を実行することができる任意のタイプのデバイス又はデバイスの集合として具現化されてもよい。いくつかの実施形態において、計算エンジン２１０は、集積回路、埋め込みシステム、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、システムオンチップ（ＳＯＣ）又は他の統合システム又はデバイスのような単一デバイスとして具現化されてもよい。例示的な実施形態では、計算エンジン２１０は、プロセッサ１５６及びメモリ２１２（例えば図１のメモリ１５２、１５８と同様）を含むか又はそれらとして具現化される。プロセッサ１５６は、本明細書で説明される機能を実行する（例えばアプリケーション１１２を実行する）ことができる任意のタイプのプロセッサとして具現化されてよい。例えばプロセッサ１５６は、マルチコアプロセッサ、マイクロコントローラ又は他のプロセッサ又は処理／制御回路として具現化されてよい。いくつかの実施形態において、プロセッサ１５６は、ＦＰＧＡ、特定用途向け集積回路（ＡＳＩＣ）、再構成可能なハードウェア又はハードウェア回路又は本明細書で説明される機能の実行を容易にするための他の特別なハードウェアとして具現化されてもよく、それらを含んでもよく、あるいはそれらに結合されてもよい。
【００１６】
メインメモリ２１２は、本明細書で説明される機能を実行することができる任意のタイプの揮発性（例えば動的ランダムアクセスメモリ（ＤＲＡＭ）等）又は不揮発性メモリ又はデータストレージとして具現化されてよい。揮発性メモリは、記憶媒体によって記憶されているデータの状態を維持するために電力を必要とする記憶媒体であってもよい。揮発性メモリの非限定的な例は、動的ランダムアクセスメモリ（ＤＲＡＭ）又は静的ランダムアクセスメモリ（ＳＲＡＭ）のような種々のタイプのランダムアクセスメモリ（ＲＡＭ）を含んでよい。メモリモジュールにおいて使用され得るＤＲＡＭの１つの特定のタイプは、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）である。特定の実施形態において、メモリ構成要素のＤＲＡＭは、ＪＥＤＥＣによって公表されている規格、例えばＤＤＲ  ＳＤＲＡＭ用のＪＥＳＤ７９Ｆ、ＤＤＲ２  ＳＤＲＡＭ用のＪＥＳＤ７９−２Ｆ、ＤＤＲ３  ＳＤＲＡＭ用のＪＥＳＤ７９−３Ｆ、ＤＤＲ４  ＳＤＲＡＭ用のＪＥＳＤ７９−４Ａ、低電力ＤＤＲ（ＬＰＤＤＲ）用のＪＥＳＤ２０９、ＬＰＤＤＲ２用のＪＥＳＤ２０９−２、ＬＰＤＤＲ３用のＪＥＳＤ２０９−３、ＬＰＤＤＲ４用のＪＥＳＤ２０９−４に準拠することができる。そのような規格（及び類似の規格）は、ＤＤＲベースの規格と呼ばれることがあり、そのような規格を実装するストレージデバイスの通信インタフェースは、ＤＤＲベースのインタフェースと呼ばれることがある。
【００１７】
一実施形態において、メモリデバイスは、ＮＡＮＤ又はＮＯＲ技術に基づくようなブロックアドレス指定可能メモリデバイスである。メモリデバイスはまた、三次元クロスポイントメモリデバイス（例えばＩｎｔｅｌ  ３Ｄ  ＸＰｏｉｎｔ（登録商標）メモリ）又は他のバイトアドレス指定可能なライトインプレース（write-in-place）不揮発性メモリデバイスを含んでもよい。一実施形態では、メモリデバイスは、カルコゲナイドガラス、マルチ閾値レベル（multi-threshold  level）のＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、単一又はマルチレベルの相変化メモリ（ＰＣＭ）、抵抗性メモリ、ナノワイヤメモリ、強誘電体トランジスタのランダムアクセスメモリ（ＦｅＴＲＡＭ）、反強誘電体メモリ、メモリスタ技術を組み込んだ磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）メモリ、金属酸化物ベース、酸素空孔ベース及び導電ブリッジランダムアクセスメモリ（ＣＢ−ＲＡＭ）又はあるいはスピン移動トルク（ＳＴＴ）−ＭＲＡＭを含む抵抗性メモリ、スピントロニック磁気接合メモリ（spintronic  magnetic  junction  memory）ベースのデバイス、磁気トンネル接合（ＭＴＪ）ベースのデバイス、ＤＷ（Domain  Wall）及びＳＯＴ（Spin  Orbit  Transfer）ベースのデバイス、サイリスタベースのメモリデバイス、あるいは上記又は他のメモリの任意の組合せを使用するメモリデバイスであり得るか、これらを含んでもよい。メモリデバイスは、ダイ自体を指してもよく、かつ／又はパッケージ化されたメモリ製品を指してよい。
【００１８】
いくつかの実施形態では、３Ｄクロスポイントメモリ（例えばインテル３Ｄ  ＸＰｏｉｎｔ（登録商標）メモリ）は、トランジスタレス（transistor-less）スタック可能クロスポイントアーキテクチャを有してよい。このアーキテクチャでは、メモリセルは、ワードラインとビットラインとの交点に位置し、個々にアドレス指定可能であり、ビットストレージは、バルク抵抗における変化に基づく。一部の実施形態では、メインメモリ２１２のすべて又は一部がプロセッサ１５６に統合されてもよい。例示的な実施形態では、メモリ２１２は、あるタイプ（例えばＤＲＡＭ）であり得るローカルメモリ１５８と、別のタイプ（例えばクロスポイントアーキテクチャを有するメモリ）であり得る共有メモリ１５２とを含む。メインメモリ２１２は、１つ以上のアプリケーション（アプリケーション１１２）、アプリケーションによって操作されるデータ、ライブラリ及びドライバのように、動作中に使用される様々なソフトウェア及びデータを格納してよい。
【００１９】
計算エンジン２１０は、Ｉ／Ｏサブシステム２１４を介してサーバコンピュータデバイス１４０の他の構成要素と通信可能に結合される。Ｉ／Ｏサブシステム２１４は、計算エンジン２１０と（例えばプロセッサ１５６及び／又はメインメモリ２１２と）及びサーバコンピュータデバイス１４０の他の構成要素との入出力動作を容易にするための回路及び／又は構成要素として具現化され得る。例えばＩ／Ｏサブシステム２１４は、メモリコントローラハブ、入力／出力制御ハブ、統合センサハブ、ファームウェアデバイス、通信リンク（例えばポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等）及び／又は入出力動作を容易にするための他の構成要素及びサブシステムとして具現化されるか、そうでなければこれらを含んでもよい。いくつかの実施形態において、Ｉ／Ｏサブシステム２１４は、システムオンチップ（ＳｏＣ）の一部を形成してよく、プロセッサ１５６、メインメモリ２１２及びサーバコンピュータデバイス１４０の他の構成要素のうちの１つ以上とともに、計算エンジン２１０に組み込まれてもよい。
【００２０】
通信回路１５０は、サーバコンピュータデバイス１４０と別のコンピュータデバイス（例えばエッジゲートウェイデバイス１２０、クライアントコンピュータデバイス１１０、サーバコンピュータデバイス１４２等）との間のネットワークを介した通信を可能にすることができる任意の通信回路、デバイス又はそれらの集合として具現化されてよい。通信回路１５０は、任意の１つ以上の通信技術（例えば有線又は無線通信）及び関連するプロトコル（例えばセルラネットワーキングプロトコル、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸ、Ｅｔｈｅｒｎｅｔ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等）を使用して、そのような通信を行うように構成されてもよい。
【００２１】
例示的な通信回路１５０は、ホストファブリックインタフェース（ＨＦＩ）とも呼ばれることがあるネットワークインタフェースコントローラ（ＮＩＣ）２１６を含む。ＮＩＣ２１６は、１つ以上のアドインボード、ドーターカード、ネットワークインタフェースカード、コントローラチップ、チップセットとして、あるいはサーバコンピュータデバイス１４０によって別のコンピュータデバイス（例えばエッジゲートウェイデバイス１２０、クライアントコンピュータデバイス１１０、サーバコンピュータデバイス１４２等）に接続するために使用され得る他のデバイスとして具現化されてよい。いくつかの実施形態では、ＮＩＣ２１６は、１つ以上のプロセッサを含むシステムオンチップ（ＳｏＣ）の一部として具現化されてもよく、あるいは１つ以上のプロセッサも含むマルチチップ・パッケージ上に含まれてもよい。いくつかの実施形態において、ＮＩＣ２１６は、ローカルプロセッサ（図示せず）及び／又はローカルメモリ（図示せず）を含んでもよく、これらは両方ともＮＩＣ２１６に対してローカルである。そのような実施形態では、ＮＩＣ２１６のローカルプロセッサは、本明細書で説明される計算エンジン２１０の機能の１つ以上を実行する能力を有してよい。追加又は代替的に、そのような実施形態において、ＮＩＣ２１６のローカルメモリは、基板レベル、ソケットレベル、チップレベル及び／又は他のレベルでサーバコンピュータデバイス１４０の１つ以上の構成要素に統合されてよい。例示的な実施形態では、ＮＩＣ２１６は、図１を参照して上述した重複排除論理ユニット１６０を含む。
【００２２】
１つ以上の例示的なデータストレージデバイス２１８は、例えばメモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ又は他のデータストレージデバイスのような、データの短期間又は長期間の記憶のために構成される任意のタイプのデバイスとして具現化されてよい。各データストレージデバイス２１８は、データストレージデバイス２１８のためのデータ及びファームウェアコードを格納するシステム区画を含んでよい。各データストレージデバイス２１８はまた、オペレーティングシステムのためのデータファイル及び実行可能プログラムを格納する１つ以上のオペレーティングシステム区画も含んでよい。
【００２３】
各アクセラレータデバイス２２０は、プロセッサ１５６が同じ演算を実行するよりも早く、一組の演算を実行するように構成される、任意のデバイス又は回路として具現化されてよい。アクセラレータデバイス２２０は、１つ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含んでもよく、それらの各々が、所定の構成（例えばビットストリーム）に従って一組の演算を実行するように構成されることができる論理ゲートのセット（例えばマトリックス）として具現化されてもよい。アクセラレータデバイス２２０は、追加又は代替的に、人工知能関連演算（例えばマトリックス乗算、ベクトル演算、機械学習トレーニング演算、機械学習推論演算等）を実行するように構成される任意のデバイス又は回路（例えばプログラマブル論理チップ、プロセッサ等）として具現化され得る、人工知能アクセラレータを含んでもよい。追加又は代替的に、アクセラレータデバイス２２０は、暗号化演算（例えばデータ暗号化、データ復号、識別情報認証等）に関連する演算を実行するように構成される、任意のデバイス又は回路（例えばプログラマブル論理チップ、プロセッサ等）として具現化され得る暗号アクセラレータを含んでもよい。追加又は代替的に、アクセラレータデバイス２２０は、１つ以上の特定用途向け集積回路（ＡＳＩＣ）等の他のタイプのデバイスを含んでもよい。
【００２４】
サーバコンピュータデバイス１４２、エッジゲートウェイデバイス１２０、フォグノード１９０、コアデータセンタ１９２及びクライアントコンピュータデバイス１１０は、サーバコンピュータデバイス１４０を参照して図２で説明したものと同様の構成要素を有してよい。サーバコンピュータデバイス１４０のこれらの構成要素の説明は、サーバコンピュータデバイス１４２、エッジゲートウェイデバイス１２０、フォグノード１９０、コアデータセンタ１９２及びクライアントコンピュータデバイス１１０の構成要素の説明に等しく適用可能である。上述のように、いくつかの実施形態では、エッジゲートウェイデバイス１２０は、本明細書で説明される重複排除機能の１つ以上を実行してよく、そのようにして、重複排除論理ユニット１６０と同様に、重複排除論理ユニット１８６を含んでもよい。さらに、サーバコンピュータデバイス１４２、エッジゲートウェイデバイス１２０、フォグノード１９０、コアデータセンタ１９２及びクライアントコンピュータデバイス１１０のいずれかは、サーバコンピュータデバイス１４０に関して上述されておらず、説明の明確性のために本明細書では説明されていない、コンピュータデバイスで一般的に見られる他の構成要素、サブ構成要素及びデバイスを含んでもよいことが理解されるべきである。さらに、コンピュータデバイスの１つ以上の構成要素は、任意の距離にわたって分散されてもよく、必ずしも同じ物理的ユニット内に収容されるわけではないことを理解されたい。
【００２５】
クライアントコンピュータデバイス１１０、エッジゲートウェイデバイス１２０、サーバコンピュータデバイス１４０、１４２、フォグノード１９０及びコアデータセンタ１９２は、例示的にネットワークを介して通信される。ネットワークは、任意のタイプの有線又は無線通信ネットワーク、あるいはそれらのハイブリッド又は組合せとして具現化されてよく、グローバルネットワーク（例えばインターネット）、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）、エッジネットワーク、フォグネットワーク、セルラネットワーク（例えばＧＳＭ（登録商標）（Global  System  for  Mobile  Communications）、３Ｇ、ＬＴＥ（Long  Term  Evolution）、ＷｉＭＡＸ（Worldwide  Interoperability  for  Microwave  Access）等）無線アクセスネットワーク（ＲＡＮ）、デジタル加入者回線（ＤＳＬ）ネットワーク、ケーブルネットワーク（例えば同軸ネットワーク、ファイバネットワーク等）又はそれらの任意の組合せを含む。
【００２６】
次に、図３を参照すると、サーバコンピュータデバイス１４０は、動作中に、データセットを書き込み、重複排除を選択的に利用してメモリリソース（例えば共有メモリ１５２、１７２の容量）を節約するための方法３００を実行することができる。方法３００はブロック３０２で開始し、サーバコンピュータデバイス１４０が、データセットの書き込み要求を取得する。その際に、ブロック３０４に示されるように、サーバコンピュータデバイス１４０は、エッジにあるクライアントコンピュータデバイスから（例えばクライアントコンピュータデバイス１１０から）要求を受け取ることができる。続いて、ブロック３０６において、サーバコンピュータデバイス１４０は、重複排除をデータセットに適用すべきかどうかを判断する。その際に、サーバコンピュータデバイス１４０は、ブロック３０８に示されるように、書き込み要求のパラメータから、重複排除を適用するかどうかを判断することができる。例えば書き込み要求は、データセットに対して重複排除を適用する命令を示すフラグ又は他のデータ（例えばデータの優先度を示す数値）を含んでもよい。追加的又は代替的に、サーバコンピュータデバイス１４０は、ブロック３１０に示されるように、データセット内のデータのタイプに基づいて重複排除を適用するかどうかを判断することができる。例えばサーバコンピュータデバイス１４０は、ブロック３１２に示されるように、データがセンサデータ（例えば温度データ）である場合、あるいはブロック３１４に示されるように、データがエンターテイメントコンテンツ（例えばビデオゲームにおけるキャラクタのグラフィクスファイル等）である場合に、重複排除を適用すると判断してよい。いくつかの実施形態において、サーバコンピュータデバイス１４０は、ブロック３１６に示されるように、書き込み要求のソース（例えばデータセットのソース）の識別情報（identity）に応じて、重複排除を適用するかどうかを判断することができる。例えばサーバコンピュータデバイス１４０は、特定のソース（例えば特定のインターネットプロトコル（ＩＰ）アドレス）からのデータセットは、そのソースからのデータセットが典型的に低優先度であるか及び／又は非常に冗長であるので、重複排除すべきであると示すルールを（例えば構成ファイルから）参照することができる。いくつかの実施形態において、重複排除を適用するかどうかの決定は、別のエッジ位置（例えば基地局）にあるような、別のエッジゲートウェイデバイス（図示せず）から受け取ったデータに基づいてもよい。例えばクライアントコンピュータデバイス１１０は、エッジゲートウェイデバイス１２０の間（例えば基地局のようなエッジ位置の間）でローミングするモバイルエンティティであってもよい。後続のエッジ位置（例えば後続の基地局）にあるエッジゲートウェイデバイスが、クライアントコンピュータデバイス１１０が後続のエッジ位置に完全に接続されており、もはや以前のエッジ位置には接続されていないと判断したとき、後続のエッジゲートウェイデバイスは、重複排除を適用するようにエッジゲートウェイデバイス１２０に通知を送信することができる。さらに、いくつかの実施形態では、クライアントコンピュータ���バイス１１０は、後続のエッジ位置を予測し（例えばクライアントコンピュータデバイス１１０の移動の位置及び方向に基づいて）、その後続のエッジ位置において重複排除を実行する必要があることを示す通知を後続のエッジ位置に（例えばエッジゲートウェイデバイスに）に送信してもよい。データ（例えば通知）は、エッジ位置の間で、図１のフォグノード１９０に共通のバックホールネットワークを介して通信されてよい。
【００２７】
ブロック３１８において、サーバコンピュータデバイス１４０は、（例えばブロック３０６で決定されるように）重複排除が適用されるべきかどうかに応じて、その後の動作方針を決定する。サーバコンピュータデバイス１４０が重複排除を適用しないと決定した場合、方法３００はブロック３２０に進み、ここで、サーバコンピュータデバイス１４０はローカルメモリに（例えばローカルメモリ１５８に）データセットを書き込む。続いて、方法３００はブロック３２２に進み、ここで、サーバコンピュータデバイス１４０は、成功した書き込み動作を示すデータを提供することができる。例えばブロック３２４に示されるように、サーバコンピュータデバイス１４０は、要求側のデバイス（例えばクライアントコンピュータデバイス１１０のように、書き込み要求を最初に生成したデバイス）に、データセットに関連付けられるキーを提供（例えば送信）してよい。キーは、格納されたデータセットを一意に識別する（例えばクライアントコンピュータデバイス１１０が将来そのデータセットを要求することを可能にする）ために使用可能な任意のデータとして具現化され得る。その後、例示的な実施形態では、方法３００は、ブロック３０２にループバックして、潜在的に別の書き込み要求を受け取る。ブロック３１８を再び参照すると、反対に、サーバコンピュータデバイス１４０が重複排除を適用すると判断した場合、方法３００は図４のブロック３２６に進み、ここで、例示的な実施形態では、サーバコンピュータデバイス１４０は近似関数をデータセットに適用する。上述したように、近似関数は、例えばデータセット内のデータ値の精度を低下させること、１つ以上の値を所定の値に調整すること（例えば色を所定のカラーパレットに変換すること）等によって、データセットを近似データセット（例えば元のデータセットとは異なるが、元のデータセットと同等として扱われるデータセット）に変換するようにデータセットに対して作用する、任意の関数として具現化され得る。
【００２８】
次に、図４を参照すると、近似関数をデータセットに適用する際に、サーバコンピュータデバイス１４０は、ブロック３２８に示されるように、利用可能な近似関数（例えば重複排除論理ユニット１６０において定義された（例えば登録された）複数の近似関数）のセットから近似関数を選択してよい。サーバコンピュータデバイス１４０は、ブロック３３０に示すように、書き込まれるデータセットのタイプに基づいて近似関数を選択してよい。例えばブロック３３２に示されるように、データセットが画像データである場合、サーバコンピュータデバイス１４０は、画像データを圧縮する近似関数を選択してよい。別の例として、ブロック３３４に示されるように、サーバコンピュータデバイス１４０は、（例えばデータセットが音声データである場合）音声データを圧縮する近似関数を選択してよい。ブロック３３６に示されるように、サーバコンピュータデバイス１４０は、所定の精度を得るために１つ以上の値を丸める（例えば１０進数を整数に丸める）近似関数を選択してよい。同様に、ブロック３３８に示されるように、サーバコンピュータデバイス１４０は、（例えば所定の周波数帯外の周波数を表すデータを除去すること、メタデータを除去すること等によって）データセットのサブセットを編集（redact）（例えば除去）する近似関数を選択してもよい。ブロック３４０に示されるように、サーバコンピュータデバイス１４０は、データセット内に存在する値を最も近い既知の（例えば所定の）値に調整する近似関数を選択してもよい。例えばブロック３４２に示されるように、サーバコンピュータデバイス１４０は、データセット内で表現される色を、所定のカラーパレット内の類似の色（例えば基準色（reference  color）の所定の数値距離内の）に調整する（例えば青緑色を表すピクセル値を青色に変換することによって）近似関数を選択してよい。いくつかの実施形態において、サーバコンピュータデバイス１４０は、データ満了を含む近似関数を選択してもよい。例えば満了条件が満たされたと近似関数が判断するまでデータが保持される、生存時間又は時間／日付閾値をカウントすることができる。いくつかの実施形態において、データ満了近似関数は別の近似関数（例えば上述の近似関数）と組み合わされて複合近似関数を形成してもよい。ブロック３４４に示されるように、サーバコンピュータデバイス１４０は、近似関数をデータセットに対して実行して、近似データセット（例えば出力データセット）を生成する。
【００２９】
続いて、ブロック３４６において、サーバコンピュータデバイス１４０は、近似データセットが共有メモリ１５２、１７２内に既に存在するかどうかを判断する。そうする際に、サーバコンピュータデバイス１４０は、ブロック３４８に示されるように、近似データセットについて、共有メモリ内のハッシュテーブル（例えば共有メモリ１５２、１７２のハッシュテーブル１５４、１７４）を検索してよい。さらに、ブロック３５０に示されるように、サーバコンピュータデバイス１４０は、近似データセット内の１つ以上の値に応じて決定される、ハッシュテーブル内の１つ以上の位置を検索してよい。すなわち、近似データセットのコンテンツの一部は、少なくとも部分的に、近似データセットの存在についてチェックされるべきハッシュテーブル１５４、１７４内の位置（例えばアドレス）を定義又は決定してよい。ブロック３５２において、サーバコンピュータデバイス１４０は、近似データセットが共有メモリ１５２、１７２内に既に存在していると判断されたかどうかに基づいて、その後の動作方針を決定する。そうでなければ、方法３００は図５のブロック３５４に進み、ここでサーバコンピュータデバイス１４０は、近似データセットを共有メモリ（例えば共有メモリ１５２又は共有メモリ１７２）に書き込む。
【００３０】
次に、図５を参照すると、近似データセットを共有メモリに書き込む際に、サーバコンピュータデバイス１４０は、例示の実施形態では、ブロック３５６に示されるように、共有メモリのハッシュテーブル（例えば共有メモリ１５２のハッシュテーブル１５４）内の位置に近似データセットを書き込む。その後又は（例えばブロック３４６において）サーバコンピュータデバイス１４０が、近似データセットが既に共有メモリ内にあったと判断した場合、方法３００はブロック３５８に進み、ここで、サーバコンピュータデバイス１４０は、ローカルメモリアドレスと、近似データセットが書き込まれているハッシュテーブル内の位置との間の関連付け（association）を変換テーブル（例えば変換テーブル１６２）に書き込む。言い換えると、サーバコンピュータデバイス１４０は、ローカルメモリ１５８の特定のメモリアドレスへのアクセスを、近似データセットが位置する共有メモリ（例えば共有メモリ１５２又は共有メモリ１７２）内のアドレス（例えば位置）にリダイレクトするリダイレクト情報を書き込む。
【００３１】
加えて、ブロック３６０において、サーバコンピュータデバイス１４０は、近似データセットに関連付けられる、共有メモリ内の位置の参照カウント（reference  count）を増加させる。例えば近似データセットが共有メモリ内にまだ存在していなかった場合、サーバコンピュータデバイス１４０は、あるローカルメモリアドレスが、近似データセットが格納されている共有メモリ内の位置にリダイレクトされることを示すように、参照カウントをゼロから１に増加させる。さもなければ（例えば近似データセットが共有メモリ内に既に存在していた場合）、サーバコンピュータデバイス１４０は、別のローカルメモリアドレスが近似データセットに関連付けられる位置にリダイレクトすることを示すように、参照カウントを（例えば１から２へ）増加させる。（例えば対応するローカルメモリアドレスを指定する削除要求に基づいて）近似データセットが削除されるべきとき、参照カウントがデクリメントされ、基礎となる近似データセットは、参照カウントが１からゼロに減少し、近似データセットがアーカイブ目的のために保護されていると指定されていない場合にのみ削除されることを理解されたい。ブロック３６２において、サーバコンピュータデバイス１４０は、１つ以上の他のコンピュータデバイス（例えばサーバコンピュータデバイス１４２）に、ハッシュテーブルへの更新（例えば近似データセットが書き込まれたことを示す情報及び／又は近似データセットに関連付けられる参照カウントへの更新）を提供することができる。続いて、方法３００は、図３のブロック３０２にループバックし、ここで、サーバコンピュータデバイス１４０は、別の書き込み要求を取得してよい。
【００３２】
次に、図６を参照すると、サーバコンピュータデバイス１４０は、動作中に、本明細書で説明される重複排除を考慮に入れて、データセットを読み取るための方法６００を実行してよい。方法６００は、ブロック６０２から始まり、サーバコンピュータデバイス１４０は、データセットの読み出し要求（例えばクライアントコンピュータデバイス１１０からの要求）を受け取る。続いて、ブロック６０４において、サーバコンピュータデバイス１４０は、読み出し要求からローカルメモリアドレスを決定する。その際、ブロック６０６に示されるように、サーバコンピュータデバイス１４０は、要求に含まれるキーからローカルメモリアドレスを決定してよい。キーは、読み取られるべきデータセットを識別する任意のもの（例えばローカルメモリアドレス自体、キー及び関連するローカルメモリアドレスのテーブルにおいて、ローカルメモリアドレスに関連付けられる一意の識別子等）として具現化されてよい。続いて、ブロック６０８に示されるように、サーバコンピュータデバイス１４０は、変換テーブル（例えば変換テーブル１６２）から、要求されたデータセットがローカルメモリ１５８内に存在するか又は共有メモリ１５２、１７２内に存在するかを判断する。その際、ブロック６１０に示されるように、サーバコンピュータデバイス１４０は、ローカルアドレスが共有メモリ１５２、１７２のハッシュテーブル１５４、１７４内の位置に関連付けて変換テーブル１６２に格納されていない（例えば存在しない）場合、要求されたデータセットは共有メモリ１５２、１７２内にない（例えば要求されたデータセットはローカルメモリ１５８内にある）と判断する。
【００３３】
ブロック６１２において、サーバコンピュータデバイス１４０は、要求されたデータセットが共有メモリ１５２、１７２内にあると決定されたかどうかに基づいて、その後の動作方針を決定する。要求されたデータセットが共有メモリ１５２、１７２内にない場合、方法６００はブロック６１４に進み、ここでサーバコンピュータデバイス１４０は、要求されたデータセットを、ローカルメモリ１５８から（例えばブロック６０４からのローカルメモリアドレスを使用して）読み出す。そうでない場合、サーバコンピュータデバイス１４０は、ブロック６１６に示されるように、要求されたデータセットを、変換テーブル１６２に示される位置（例えばブロック６０８、６１０を参照して上述したローカルメモリアドレスに関連付けられる位置）から読み出す。データセットが（例えばローカルメモリ１５８から又は共有メモリ１５２、１７２から）読み出されると、方法６００は、ブロック６１８に進み、ここでサーバコンピュータデバイス１４０は、要求に応答して、要求されたデータセット（例えばクライアントコンピュータデバイス１１０又は読み出し要求を生成した他のデバイスに）を提供する。例えばサーバコンピュータデバイス１４０は、要求されたデータセットを、エッジゲートウェイデバイス１２０を介してクライアントコンピュータデバイス１１０に送信してもよい。続いて、方法６００は、ブロック６０２にループバックして別の読み取り要求を待つ。
【００３４】
図７を簡単に参照すると、ＭＥＣ及びフォグネットワークトポロジ７００が図示されている。ネットワークトポロジ７００は、エンドポイント（エンドポイント／モノ（things）ネットワーク層７５０にある）、ゲートウェイ（ゲートウェイ層７４０にある）、アクセス又はエッジコンピューティングノード（例えば近隣ノード層７３０にある）、コアネットワーク又はルータ（例えば地域又は中央オフィス層７２０にある）、そしてグローバル層７１０にあるインターネット／クラウドサーバを含む。（例えばゲートウェイ層７４０で確立される）フォグネットワークは、（例えばフォグノードについての）ニアユーザ・エッジデバイスの密集した地理的分布を表してよい。そのようなエッジデバイスは、とりわけ、（例えばクラウドデータセンタにデータを記憶する必要性を回避する）記憶能力、（例えばインターネットバックボーン上でルーティングされるのではなく）通信能力、制御能力、構成能力、（ＬＴＥコアネットワーク内のもののようにネットワークゲートウェイによって主に制御されるのではなく）測定及び管理能力を備えてよい。このコンテキストにおいて、図７は、（それらの位置、接続及び処理能力等に基づいて）異なる層に分類される多数のＭＥＣ及びフォグノードを統合する一般的なアーキテクチャを図示する。しかしながら、そのようなフォグノードは、エッジ演算処理ノードによって置き換えられてもよく又は増強されてもよいことが理解されるであろう。
【００３５】
フォグノードは、トポロジ及びそれらが位置する層に応じて分類されてよい。対照的に、ＭＥＣ標準の観点から、各フォグノードは、モバイルエッジ（ＭＥ）ホスト又はＭＥアプリ及び軽量ＭＥプラットフォームをホストする単純なエンティティとして考慮され得る。一例では、ＭＥＣ又はフォグノードは、ＭＥプラットフォームをホストしているデバイス（ＭＥホスト）に接続されているか又はそのデバイス上で実行するアプリケーションインスタンスとして定義されてよい。このように、アプリケーションはＭＥＣサービスを消費し、システム内のＭＥホストに関連付けられてよい。ノードは、マイグレーションされ、異なるＭＥホストに関連付けられ、あるいは他の（ローカル又はリモートの）ＭＥプラットフォームからのＭＥＣサービスを消費することがある。
【００３６】
エッジを使用することとは対照的に、上述のように、従来のアプリケーションは、情報を交換して調整するために、リモートクラウドのデータストレージ及び処理に依存することがある。クラウドデータ配置は、長期のデータ収集及び格納を可能にするが、非常に時間的に変化するデータには最適ではなく、レイテンシの課題に対処しようとする試み（例えば子供が道路に飛び出したときに車を止めること）に失敗する可能性がある。上述のようなエッジリソースの使用は、低レイテンシ方式でサービス（例えば機能の実行）を提供することを可能にし、いくつかの実施形態では、最小のオーバーヘッドを提供する既存のＭＥＣサービスにおける特徴を利用することができる。
【００３７】
上述のＭＥＣの実装に加えて、前述のシステム及び方法は、個々のデバイスの名前は実装毎に異なってよいが、デバイスが図１を参照して説明したものと同様の方法で配置されて相互運用される、任意の環境（例えばスマートファクトリ、スマートシティ、スマートビルディング等）において実装されてもよいことを認識されたい。例えばスマートファクトリにおいて、上記のシステム及び方法は、特に、動作がリアルタイム又はほぼリアルタイムで実施される場合（例えば低レイテンシが重要である場合）において、１つ以上の製造動作が実施される精度、効率及び／又は安全性を改善することができる。スマートシティにおいては、上記のシステム及び方法は、トラフィック制御システム、環境モニタリングシステム及び／又は他の自動化又は半自動化システムの動作における精度、効率及び／又は安全性を改善することができる。同様に、スマートビルディングにおいて、上記開示は、センサに依拠して、収集情報（例えば脅威検出及び避難管理システム、ビデオモニタリングシステム、エレベータ制御システム等）を収集し、それらに対する作用を行う、任意のシステムの動作を改善するために適用され得る。
【００３８】
実施例
本明細書で開示される技術の例示的な例が、以下に提供される。技術の実施形態は、以下に記載される実施例のいずれか１つ以上及びそのいずれかの組合せを含んでよい。
【００３９】
実施例１は、データセットを書き込む要求を取得し、データセットに近似関数を適用して近似データセットを生成し、近似データセットが共有メモリ内に既に存在するかどうかを判断し、近似データセットが共有メモリ内に既に存在するという判断に応答して、ローカルメモリアドレスと、近似データセットが既に存在する共有メモリ内の位置との間の関連付けを変換テーブル内に書き込み、共有メモリ内の位置に関連付けられる参照カウントを増加させる、回路を備える、コンピュータデバイス。
【００４０】
実施例２は、実施例１の主題を含み、要求を取得することは、ネットワークのエッジに位置するコンピュータデバイスから要求を受け取ることを含む。
【００４１】
実施例３は、実施例１及び２のいずれかの主題を含み、回路は更に、近似データセットが共有メモリ内にまだ存在しないという判断に応答して、近似データセットを共有メモリに書き込む。
【００４２】
実施例４は、実施例１〜３のいずれかの主題を含み、近似関数を適用することは、一組の利用可能な近似関数から近似関数を選択することを含む。
【００４３】
実施例５は、実施例１〜４のいずれかの主題を含み、近似関数を選択することは、書き込まれるデータセットのタイプに基づいて近似関数を選択することを含む。
【００４４】
実施例６は、実施例１〜５のいずれかの主題を含み、近似関数を選択することは、画像データを圧縮する近似関数を選択することを含む。
【００４５】
実施例７は、実施例１〜６のいずれかの主題を含み、近似関数を選択することは、音声データを圧縮する近似関数を選択することを含む。
【００４６】
実施例８は、実施例１〜７のいずれかの主題を含み、近似関数を選択することは、１つ以上の値を所定の精度に丸める近似関数を選択することを含む。
【００４７】
実施例９は、実施例１〜８のいずれかの主題を含み、近似関数を選択することは、データセットのサブセットを編集することを含む。
【００４８】
実施例１０は、実施例１〜９のいずれかの主題を含み、近似関数を選択することは、値を最も近い既知の値に調整する近似関数を選択することを含む。
【００４９】
実施例１１は、実施例１〜１０のいずれかの主題を含み、近似関数を選択することは、色を所定のカラーパレット内の基準色に調整する近似関数を選択することを含む。
【００５０】
実施例１２は、実施例１〜１１のいずれかの主題を含み、近似データセットが共有メモリ内に既に存在するかどうかを判断することは、近似データセットについて共有メモリ内のハッシュテーブルを検索することを含む。
【００５１】
実施例１３は、実施例１〜１２のいずれかの主題を含み、回路は更に、重複排除を適用するかどうかを判断し、近似関数を適用することは、重複排除を適用するという判断に応答して近似関数を適用することを含む。
【００５２】
実施例１４は、実施例１〜１３のいずれかの主題を含み、重複排除を適用するかどうかを判断することは、データセットのタイプから重複排除を適用するかどうかを判断することを含む。
【００５３】
実施例１５は、実施例１〜１４のいずれかの主題を含み、重複排除を適用するかどうかを判断することは、データセットのソースの識別情報から重複排除を適用するかどうかを判断することを含む。
【００５４】
実施例１６は、デバイスによって、データセットを書き込む要求を取得するステップと、デバイスによって、データセットに近似関数を適用して近似データセットを生成するステップと、デバイスによって、近似データセットが共有メモリ内に既に存在するかどうかを判断するステップと、デバイスによって、近似データセットが共有メモリ内に既に存在するという判断に応答して、ローカルメモリアドレスと、近似データセットが既に存在する共有メモリ内の位置との間の関連付けを変換テーブル内に書き込むステップと、デバイスによって、共有メモリ内の位置に関連付けられる参照カウントを増加させるステップと、を含む方法を含む。
【００５５】
実施例１７は、実施例１６の主題を含み、要求を取得するステップは、ネットワークのエッジに位置するコンピュータデバイスから要求を受け取るステップを含む。
【００５６】
実施例１８は、実施例１６及び１７のいずれかの主題を含み、近似データセットが共有メモリ内にまだ存在しないという判断に応答して、デバイスによって、近似データセットを共有メモリに書き込むステップを更に含む。
【００５７】
実施例１９は、実行されたことに応答して、コンピュータデバイスに、データセットを書き込む要求を取得するステップと、データセットに近似関数を適用して近似データセットを生成するステップと、近似データセットが共有メモリ内に既に存在するかどうかを判断するステップと、近似データセットが共有メモリ内に既に存在するという判断に応答して、ローカルメモリアドレスと、近似データセットが既に存在する共有メモリ内の位置との間の関連付けを変換テーブル内に書き込むステップと、共有メモリ内の位置に関連付けられる参照カウントを増加させるステップと、を含む動作を実行させる、複数の命令をその上に記憶した１つ以上の機械読取可能な記憶媒体を含む。
【００５８】
実施例２０は、実施例１９の主題を含み、複数の命令は更に、コンピュータデバイスに上記動作を仮想化環境で実行させる。
【００５９】
実施例２１は、実行のために準備された後に、準備された命令を実行するデバイスに、データセットに近似関数を適用して近似データセットを生成させ、近似データセットが共有メモリ内に既に存在するかどうかを判断させ、近似データセットが共有メモリ内に既に存在するという判断に応答して、ローカルメモリアドレスと、近似データセットが既に存在する共有メモリ内の位置との間の関連付けを変換テーブル内に書き込ませ、共有メモリ内の位置に関連付けられる参照カウントを増加させる、複数の命令をその上に記憶された１つ以上の機械読取可能な記憶媒体を含む。
【図１】
2020166838.tif 000003
【図２】
2020166838.tif 000004
【図３】
2020166838.tif 000005
【図４】
2020166838.tif 000006
【図５】
2020166838.tif 000007
【図６】
2020166838.tif 000008
【図７】
2020166838.tif 000009
【外国語明細書】
2020166838000001.pdf