(57)【要約】【課題】畳み込みニューラル・ネットワークの完全なカーネルを近似できる融合されたカーネルの生成を容易にする手法を提供する。【解決手段】１つの例では、コンピュータ実装方法が、第１のサンプル行列のサンプルの第１のパターンおよび第２のサンプル行列のサンプルの第２のパターンを決定することを含む。第１のサンプル行列はスパース・カーネルを代表することができ、第２のサンプル行列は補完カーネルを代表することができる。第１のパターンおよび第２のパターンは、互いに補完することができる。コンピュータ実装方法は、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて、融合されたカーネルを生成することと、融合されたカーネルをトレーニングすることとも含む。【選択図】図３
2021507345.tif 000002
【特許請求の範囲】
【請求項１】
畳み込みニューラル・ネットワークためのシステムであって、前記システムが、
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサとを備えており、前記コンピュータ実行可能コンポーネントが、
スパース・カーネルの第１のパターンおよび補完カーネルの第２のパターンを決定するパターン・コンポーネントであって、前記第１のパターンが、前記スパース・カーネルの第１のサンプル行列内の有効なサンプルの位置を表し、前記第２のパターンが、前記第１のパターンを補完する前記補完カーネルの第２のサンプル行列内の有効なサンプルの位置を表す、前記パターン・コンポーネントと、
融合方法に従って結合された前記スパース・カーネルの特徴および前記補完カーネルの特徴の結合に基づいて、畳み込みニューラル・ネットワークの完全なカーネルの近似を表す融合されたカーネルを生成する融合コンポーネントと、
前記融合されたカーネルをトレーニングするトレーニング・コンポーネントとを備えている、システム。
【請求項２】
前記融合方法が、前記第１のパターンのスキップされるサンプルを前記第２のパターンの有効なサンプルに置き換える空間結合演算を使用して、前記スパース・カーネルの前記特徴および前記補完カーネルの前記特徴を結合する、請求項１に記載のシステム。
【請求項３】
前記融合方法が、演算子に従って、前記スパース・カーネルおよび前記補完カーネルのペアワイズ連結に基づいて、前記スパース・カーネルおよび前記補完カーネルを結合する、請求項１に記載のシステム。
【請求項４】
前記演算子が加算演算子である、請求項３に記載のシステム。
【請求項５】
前記演算子が逆演算子である、請求項３に記載のシステム。
【請求項６】
前記融合方法が、チャネルの次元における１×１チャネル行列の適用に基づいて、前記スパース・カーネル、前記補完カーネル、および前記融合されたカーネルの特徴を結合することを含むチャネルワイズ融合手順を含んでいる、請求項１ないし５のいずれかに記載のシステム。
【請求項７】
前記補完カーネルが、前記第１のサンプル行列内の少なくとも１つのスキップされるサンプルの位置に対応する前記第２のサンプル行列内の位置で少なくとも１つの有効なサンプルを含んでいる、請求項１ないし６のいずれかに記載のシステム。
【請求項８】
前記補完カーネルが、前記第１のサンプル行列内のスキップされるサンプルを含んでいる位置に対応する前記第２のサンプル行列内のすべての位置で有効なサンプルを含んでいる、請求項１ないし７のいずれかに記載のシステム。
【請求項９】
トレーニング済みの畳み込みニューラル・ネットワークの元の学習された完全なカーネルに割り当てられたパラメータ加重の調査に基づいて、前記パターン・コンポーネントが前記第１のパターンを決定する、請求項１ないし８のいずれかに記載のシステム。
【請求項１０】
前記スパース・カーネルの前記第１のサンプル行列が３×３行列であり、前記第１のパターンが「＋」形状を有しており、前記補完カーネルの前記第２のサンプル行列が３×３行列であり、前記第２のパターンが「ｘ」形状を有している、請求項１ないし９のいずれかに記載のシステム。
【請求項１１】
複数の種類の前記スパース・カーネル、複数の種類の前記補完カーネル、複数のスパース・カーネル、複数の補完カーネル、ペアワイズ・カーネル融合の演算子、またはチャネルワイズ融合が使用されるべきかどうかを示すインジケータのうちの少なくとも１つを含んでいる構成データを受信する受信コンポーネントをさらに備えている、請求項１ないし１０のいずれかに記載のシステム。
【請求項１２】
畳み込みニューラル・ネットワークのためのコンピュータ実装方法であって、前記方法が、
プロセッサに動作可能なように結合されたデバイスによって、スパース・カーネルの第１のパターンおよび補完カーネルの第２のパターンを決定することであって、前記第１のパターンが、前記スパース・カーネルの第１のサンプル行列内の有効なサンプルの位置を表し、前記第２のパターンが、前記第１のパターンを補完する前記補完カーネルの第２のサンプル行列内の有効なサンプルの位置を表す、前記決定することと、
融合方法に従って結合された前記スパース・カーネルの特徴および前記補完カーネルの特徴の結合に応答して、前記デバイスによって、畳み込みニューラル・ネットワークの完全なカーネルの近似を表す融合されたカーネルを生成することと、
前記デバイスによって、前記融合されたカーネルをトレーニングすることとを含んでいる、コンピュータ実装方法。
【請求項１３】
前記融合方法が、前記第１のパターンのスキップされるサンプルを前記第２のパターンの有効なサンプルに置き換える空間結合演算を使用して、前記スパース・カーネルの前記特徴および前記補完カーネルの前記特徴を結合する、請求項１２に記載のコンピュータ実装方法。
【請求項１４】
前記融合方法が、演算子に従って、前記スパース・カーネルおよび前記補完カーネルのペアワイズ連結に基づいて、前記スパース・カーネルおよび前記補完カーネルを結合する、請求項１２または１３に記載のコンピュータ実装方法。
【請求項１５】
前記演算子が加算演算子である、請求項１４に記載のコンピュータ実装方法。
【請求項１６】
前記演算子が逆演算子である、請求項１４に記載のコンピュータ実装方法。
【請求項１７】
前記融合方法が、チャネルの次元における１×１チャネル行列の適用に基づいて、前記スパース・カーネル、前記補完カーネル、および前記融合されたカーネルの特徴を結合することを含むチャネルワイズ融合手順を含んでいる、請求項１２ないし１６のいずれかに記載のコンピュータ実装方法。
【請求項１８】
前記補完カーネルが、前記第１のサンプル行列内の少なくとも１つのスキップされるサンプルの位置に対応する前記第２のサンプル行列内の位置で少なくとも１つの有効なサンプルを含んでいる、請求項１２ないし１７のいずれかに記載のコンピュータ実装方法。
【請求項１９】
前記補完カーネルが、前記第１のサンプル行列内のスキップされるサンプルを含んでいる位置に対応する前記第２のサンプル行列内のすべての位置で有効なサンプルを含んでいる、請求項１２ないし１８のいずれかに記載のコンピュータ実装方法。
【請求項２０】
トレーニング済みの畳み込みニューラル・ネットワークの元の学習された完全なカーネルに割り当てられたパラメータ加重の調査に基づいて、前記パターン・コンポーネントが前記第１のパターンを決定する、請求項１２ないし１９のいずれかに記載のコンピュータ実装方法。
【請求項２１】
前記スパース・カーネルの前記第１のサンプル行列が３×３行列であり、前記第１のパターンが「＋」形状を有しており、前記補完カーネルの前記第２のサンプル行列が３×３行列であり、前記第２のパターンが「ｘ」形状を有している、請求項１２ないし２０のいずれかに記載のコンピュータ実装方法。
【請求項２２】
複数の種類の前記スパース・カーネル、複数の種類の前記補完カーネル、複数のスパース・カーネル、複数の補完カーネル、ペアワイズ・カーネル融合の演算子、またはチャネルワイズ融合が使用されるべきかどうかを示すインジケータのうちの少なくとも１つを含んでいる構成データを受信することをさらに含んでいる、請求項１２ないし２１のいずれかに記載のコンピュータ実装方法。
【請求項２３】
前記デバイスによって、複数の種類の前記スパース・カーネル、複数の種類の前記補完カーネル、複数のスパース・カーネル、複数の補完カーネル、ペアワイズ・カーネル融合の演算子の識別、またはチャネルワイズ融合が使用されるべきかどうかを示すインジケータを含んでいる構成データを受信することをさらに含んでいる、請求項１２ないし２２のいずれかに記載のコンピュータ実装方法。
【請求項２４】
前記融合されたカーネルを前記生成することが、演算子に従って、前記スパース・カーネルおよび前記補完カーネルのペアワイズ連結に基づいて、前記スパース・カーネルおよび前記補完カーネルを結合することを含んでいる、請求項１２ないし２３のいずれかに記載のコンピュータ実装方法。
【請求項２５】
前記融合されたカーネルを前記生成することが、チャネルの次元における１×１チャネル行列の適用に基づいて、前記スパース・カーネル、前記補完カーネル、および前記融合されたカーネルの特徴を結合することを含むチャネルワイズ融合手順を含んでいる、請求項１２ないし２４のいずれかに記載のコンピュータ実装方法。
【請求項２６】
畳み込みニューラル・ネットワークのためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
処理回路によって読み取り可能な、請求項１２ないし２５のいずれかに記載の方法を実行するために前記処理回路によって実行されるための命令を格納しているコンピュータ可読記憶媒体を備えている、コンピュータ・プログラム製品。
【請求項２７】
コンピュータ可読媒体に格納された、デジタル・コンピュータの前記内部メモリに読み込み可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行された場合に請求項１２ないし２５のいずれかに記載の前記方法を実行するためのソフトウェア・コード部分を含んでいる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、スパース・カーネルおよび畳み込みニューラル・ネットワーク（ＣＮＮ：convolutional neural networks）を融合することに関連している。
【背景技術】
【０００２】
ＣＮＮは、深層フィードフォワード人工ニューラル・ネットワークを利用できる機械学習の種類を表すことができる。ＣＮＮは、画像およびビデオの認識、レコメンダ・システム、自然言語処理などの領域において、大きな成功を示した。通常、ＣＮＮアーキテクチャは、クラス・スコアを保持しながら、微分可能関数を介して入力ボリュームを出力ボリュームに変換する個別の積み重なった層によって形成される。ＣＮＮは、通常、一般的に使用される複数の個別の種類の層を含む。例えば、畳み込み層は、ＣＮＮの中心的構成要素であることができる。畳み込み層のパラメータは、通常、学習可能なフィルタのセット（本明細書では「カーネル」と呼ばれる）を含む。例えば、カーネルは行列によって表され得る。簡単にするために、特定の態様または手法を示すように、本書では３×３行列が採用されているが、開示される対象が、例えば５×５行列、７×７行列などの、実質的に任意の行列サイズを使用して採用され得るということが理解される。
【０００３】
特定のカーネルは、通常、小さい受容野を含んでいるが、入力ボリュームの全深さに広がることができる。ＣＮＮのフォワードパスの間に、カーネルのエントリと入力のエントリの間のドット積を計算し、カーネルの２次元活性化マップを生成して、入力ボリュームの幅および高さにわたって各カーネルが畳み込まれ得る。１つの結果として、ＣＮＮは、入力内のいずれかの空間位置で何らかの特定の種類の特徴が検出されたときに活性化するフィルタを学習できる。すべてのフィルタの活性化マップを深さの次元に沿って積み重ねることによって、畳み込み層の完全な出力ボリュームを形成できる。したがって、出力ボリューム内のすべてのエントリは、入力の小さい領域を調べ、同じ活性化マップ内のニューロンとパラメータを共有する、「ニューロン」の出力としても解釈され得る。畳み込みニューラル・ネットワークは、通常、計算負荷が非常に重く、モデル・サイズが大きい。精度を向上させるために、深層ＣＮＮは、多くの場合、著しく過度にパラメータ化され、例えば、多数の不必要なパラメータを使用して実装される。完全なカーネルに対する計算に関連する重い計算負荷および大きいモデル・サイズのため、完全なカーネルの近似が、完全なカーネルの代わりに使用された場合に、優位性をもたらすことがあるということが観察されてきた。完全なカーネルを近似するための、低ランク近似と呼ばれる１つの方法では、ランクの低い行列（例えば、３×１と１×３）が結合されて、完全な（例えば、３×３）カーネルの近似を表す。そのような手法は、計算負荷およびモデル・サイズを減らすことができるが、受容野を縮小し、モデルの可能な精度を低下させる傾向もある。完全なカーネルを近似するための別の方法は、スパース化されたカーネルを使用することである。スパース化されたカーネルは、何らかの戦略に基づいて空間的位置のうちの１つまたは複数でパラメータを省略またはスキップし、通常は、パラメータ加重が低いサンプル位置を省略する。そのような手法は、やはり、負荷およびモデル・サイズを減らすことと、例えば縮小された受容野に起因するモデルの精度の低下との間で、トレードオフをもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、当技術分野において、前述の問題に対処する必要がある。
【課題を解決するための手段】
【０００５】
第１の態様から見ると、本発明は、コンピュータ実行可能コンポーネントを格納するメモリと、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサとを備えている畳み込みニューラル・ネットワークのためのシステムを提供し、それらのコンピュータ実行可能コンポーネントは、スパース・カーネルの第１のパターンおよび補完カーネルの第２のパターンを決定するパターン・コンポーネントであって、第１のパターンがスパース・カーネルの第１のサンプル行列内の有効なサンプルの位置を表し、第２のパターンが第１のパターンを補完する補完カーネルの第２のサンプル行列内の有効なサンプルの位置を表す、パターン・コンポーネントと、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて、畳み込みニューラル・ネットワークの完全なカーネルの近似を表す融合されたカーネルを生成する融合コンポーネントと、融合されたカーネルをトレーニングするトレーニング・コンポーネントとを含む。
【０００６】
さらに別の態様から見ると、本発明は、畳み込みニューラル・ネットワークのためのコンピュータ実装方法を提供し、この方法は、プロセッサに動作可能なように結合されたデバイスによって、スパース・カーネルの第１のパターンおよび補完カーネルの第２のパターンを決定することであって、第１のパターンがスパース・カーネルの第１のサンプル行列内の有効なサンプルの位置を表し、第２のパターンが第１のパターンを補完する補完カーネルの第２のサンプル行列内の有効なサンプルの位置を表す、決定することと、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に応答して、デバイスによって、畳み込みニューラル・ネットワークの完全なカーネルの近似を表す融合されたカーネルを生成することと、デバイスによって、融合されたカーネルをトレーニングすることとを含む。
【０００７】
さらに別の態様から見ると、本発明は、プロセッサに動作可能なように結合されたデバイスによって、スパース・カーネルを代表する第１のサンプル行列のサンプルの第１のパターンを決定することと、デバイスによって、補完カーネルを代表する、第１のパターンを補完する第２のサンプル行列のサンプルの第２のパターンを決定することと、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて、デバイスによって、融合されたカーネルを生成することであって、融合されたカーネルが完全なカーネルの近似を表す、生成することと、デバイスによって、融合されたカーネルを含んでいる畳み込みニューラル・ネットワークをトレーニングすることとを含んでいるコンピュータ実装方法を提供する。
【０００８】
さらに別の態様から見ると、本発明は、畳み込みニューラル・ネットワークのためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能な、本発明のステップを実行するための方法を実行するためにこの処理回路によって実行される命令を格納している、コンピュータ可読記憶媒体を備えている。
【０００９】
さらに別の態様から見ると、本発明は、コンピュータ可読媒体に格納された、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、コンピュータ上で実行された場合に本発明のステップを実行するためのソフトウェア・コード部分を含んでいる。
【００１０】
以下に、本発明の１つまたは複数の実施形態の基本的理解を可能にするための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された１つまたは複数の実施形態では、並列深層学習用の処理コンポーネントの同期を容易にするデバイス、システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせが説明される。
【００１１】
本発明の実施形態によれば、システムは、コンピュータ実行可能コンポーネントを格納するメモリ、およびこのメモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備えることができる。これらのコンピュータ実行可能コンポーネントは、スパース・カーネルの第１のパターンおよび補完カーネルの第２のパターンを決定するパターン・コンポーネントを含むことができる。スパース・カーネルは、スキップされるサンプルおよび有効なサンプルから成る第１のサンプル行列を含むことができ、第１のパターンは、第１のサンプル行列内の有効なサンプルの位置を表すことができる。補完カーネルは、スキップされるサンプルおよび有効なサンプルから成る第２のサンプル行列を含むことができ、第２のパターンは、第１のパターンを補完する第２のサンプル行列内の有効なサンプルの位置を表すことができる。コンピュータ実行可能コンポーネントは、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて融合されたカーネルを生成できる、融合コンポーネントを含むことができる。融合されたカーネルは、畳み込みニューラル・ネットワークの完全なカーネルの近似を表すことができる。コンピュータ実行可能コンポーネントは、融合されたカーネルをトレーニングできるトレーニング・コンポーネントをさらに含むことができる。
【００１２】
一部の実施形態では、システムに関連して説明される要素が、コンピュータ実装方法、コンピュータ・プログラム製品、または別の形態などの、さまざまな形態で具現化され得る。
【００１３】
以下では、以下の図に示された好ましい実施形態を単に例として参照し、本発明が説明される。
【図面の簡単な説明】
【００１４】
【図１】本明細書に記載された１つまたは複数の実施形態に従って典型的なトレーニング済みのＣＮＮの加重の視覚化を示す図である。
【図２】本明細書に記載された１つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的システムのブロック図である。
【図３】本明細書に記載された１つまたは複数の実施形態に従って畳み込みニューラル・ネットワークのカーネルのさまざまな例示的な表現を示すブロック図である。
【図４】本明細書に記載された１つまたは複数の実施形態に従って第１の例示的な融合方法を示すブロック図である。
【図５】本明細書に記載された１つまたは複数の実施形態に従って第２の例示的な融合方法を示すブロック図である。
【図６】本明細書に記載された１つまたは複数の実施形態に従って例示的な融合方法をさらに詳細に示すブロック図である。
【図７】本明細書に記載された１つまたは複数の実施形態に従って、元の学習されたカーネルの例と、スパース・カーネル、補完カーネル、および融合されたカーネルのさまざまな例との例示的な加重の視覚化の比較を提供する図である。
【図８】本明細書に記載された１つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的システムのブロック図である。
【図９】本明細書に記載された１つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的コンピュータ実装方法のフロー図である。
【図１０】本明細書に記載された１つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似するための追加の態様または要素を提供できる、例示的な非限定的コンピュータ実装方法のフロー図である。
【図１１】本明細書に記載された１つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図である。
【発明を実施するための形態】
【００１５】
以下の詳細な説明は、例にすぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を制限するよう意図されていない。
【００１６】
本明細書においてさらに詳細に説明されるように、完全なカーネルを近似するための別の方法は、複数のスパース・カーネルを融合することである。さらに、これらのスパースベースのカーネルが、明らかになる利点を提供できる確定的空間パターンに基づいて、決定または選択され得る。説明するために、完全なカーネルを使用する完全にトレーニングされたＣＮＮについて考え、当技術分野には、そのようなＣＮＮの多数の例が存在する。図１は、典型的なトレーニング済みのＣＮＮの加重の視覚化を示す図１００を示している。それに関して、図１００は、カーネルの複数の行および列を示している。示されているように、カーネル１０２が列１の行１にある。カーネル１０２は３×３行列を代表しており、３×３行列の各要素は異なる空間的位置を表すことができる。これらの位置（例えば、サンプル）の各々に、関連付けられたパラメータ加重に基づいて陰影が付けられており、陰影が明るいほど、より重いパラメータ加重を表している。
【００１７】
観察として、この例示的な完全にトレーニングされたＣＮＮ層の多数のカーネルがスパース化されたカーネルの特徴（例えば、一部のサンプルではパラメータ加重が低く、他のサンプルではパラメータ加重が高い）を有しているということに注意する。別の観察として、カーネルのうちの多くのスパース性が、プラス記号（例えば、「＋」）パターンまたは「ｘ」パターンあるいはその両方などの、類似するパターンを有している。例えば、カーネル１０４を参照。
【００１８】
一部の実施形態では、開示される対象が、完全なカーネルを近似する近似されたカーネルを提供することができ、このことが、本明細書においてさらに詳細に説明される。そのような近似されたカーネルは、パラメータの数を減らすことができ、ＣＮＮの実行に関連して、計算リソース（例えば、演算、実行時メモリ、ディスク容量など）を減らすことができる。この近似されたカーネルは、複数の（例えば、２つ以上の）スパース・カーネル間の融合の結果であることができる。しかし、可変制約（例えば、パラメータ加重）に基づいてカーネルがスパース化される他の方法とは異なり、一部の実施形態では、１つまたは複数の定義されたパターン（例えば、「＋」形状、「ｘ」形状など）に基づいて、開示される対象のスパース・カーネルが確定的に選択され得る。スパース・カーネルを融合して完全なカーネルを近似することは、単にスパース・カーネルを利用して完全なカーネルを近似することを上回る大きな優位性を示すことができる。さらに、融合されるスパース・カーネルに関連付けられたパターンまたは形状を確定的に選択することによって、近似された（例えば、融合された）カーネルの受容野が、完全なカーネルの受容野を近似することができる。それに関して、互いに補完するパターンを有するように、融合されるスパース・カーネルを確定的に選択することができ、このことが下でさらに詳細に説明される。
【００１９】
再び図面を参照すると、図２は、本明細書に記載された１つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的システム２００のブロック図を示している。システム２００またはシステム２００のコンポーネントあるいはその両方は、抽象的ではない、人間による一連の精神的活動として実行され得ない本質的に高度に技術的な問題を解決するハードウェアまたはソフトウェアあるいはその両方を使用するために、採用され得る。実際、開示される対象の一部の実施形態は、生物学的プロセスをエミュレートするように深層学習技術を使用してプログラムされた非生物学的アーキテクチャ（例えば、コンピュータ・ハードウェア）を使用することを対象にする。定義によれば、人間によって実行される精神的活動は、例えばニューロンの生物学的プロセスを表すが、非生物学的構造要素によるニューロンのエミュレーションを表さない。ニューロンのエミュレーションは、ニューロン自体が採用されず（そうでなければ、エミュレートする必要がない）、他のアーキテクチャ（例えば、コンピュータ・ハードウェア）が使用されるか、または必然的に必要とされるか、あるいはその両方である場合にのみ、意味がある。さらに、実行されるプロセスの一部は、畳み込みニューラル・ネットワークに関連する定義されたタスクを実行するための特殊なコンピュータによって実行され得る。技術、コンピュータ・ネットワーク、インターネットなどにおける進歩を通じて生じる新しい問題を解決するために、一部の実施形態では、システム２００またはシステム２００のコンポーネントあるいはその両方、あるいは本明細書に記載された他のシステムが採用され得る。システム２００は、一部の実施形態では、例えば計算負荷の削減、モデル・サイズの縮小、必要な演算数の削減、モデルの精度の向上などの、畳み込みニューラル・ネットワークに対する技術的改良を提供できる。
【００２０】
システム２００は、プロセッサと、プロセッサによって実行された場合に動作の実行を容易にする実行可能な命令を格納するメモリとを備えることができる。前述のプロセッサおよびメモリ、ならびにその他の適切なコンピュータまたは計算に基づく要素の例は、図１１を参照して見つけることができ、本明細書で開示された図２またはその他の図に関連して示され、説明されているシステムまたはコンポーネントのうちの１つまたは複数を実装することに関連して、使用され得る。
【００２１】
この例では、システム２００は、パターン・コンポーネント２０２を含むことができる。パターン・コンポーネント２０２は、畳み込みニューラル・ネットワークのカーネル（例えば、フィルタ）に関連付けられたさまざまなパターンまたは形状あるいはその両方を決定または選択することができる。そのような決定が、参照番号２０４で示されている。パターンを前もって決定するか、もしくは知ることができるように、または畳み込みニューラル・ネットワークがトレーニングされる前にパターンを決定するか、もしくは知ることができるように、あるいはその両方が可能なように、パターンの決定または選択が確定的方法で実行され得るということが、理解される。例えば、パターン・コンポーネント２０２は、第１のパターン２０６および第２のパターン２０８を決定できる。第１のパターン２０６は、スパース・カーネル２１０に関連付けられたパターンまたは形状を表すことができ、一方、第２のパターン２０８は、第１のパターン２０６を補完できる補完カーネル２１２に関連付けられたパターンまたは形状を表すことができる。
【００２２】
一部の実施形態では、パターン・コンポーネント２０２は、入力されたか、または格納されたデータに基づいて、第１のパターン２０６または第２のパターン２０８あるいはその両方を決定または選択することができる。一部の実施形態では、これらのデータは、確定的パターン選択に関する専門知識、知識、またはポリシーを反映することができる。一部の実施形態では、これらのデータは、トレーニング済みの畳み込みニューラル・ネットワークの元の学習されたカーネルに割り当てられたパラメータ加重の調査に基づくことができる。例えば、パターン・コンポーネント２０２は、図１に関連して提供される例などの、トレーニング済みのネットワークのパラメータ加重を調べることに基づいて、またはその他のデータに基づいて、第１のパターン２０６を決定または選択することができる。一部の実施形態では、特定の確定的パターンを決定または選択するために使用されるそのようなデータは、構成データ（示されていないが、図８の構成データ８０４を参照）の一部として受信され得る。
【００２３】
引き続き図２を参照しながら、ここで図３も参照すると、ブロック図３００が示されている。ブロック図３００は、本明細書に記載された１つまたは複数の実施形態に従って、畳み込みニューラル・ネットワークのカーネルのさまざまな例示的な表現を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００２４】
例えば、例示的な完全なカーネル３０２が示されている。完全なカーネル３０２は、すべてのサンプルが有効なサンプルであるカーネルであることができる。この場合も、カーネルは３×３行列を代表しているが、その他の行列サイズが企図されるということが理解される。図に示されているように、３×３行列の９つの空間的位置は、すべて有効なサンプルを含んでいる（例えば、指定されたパラメータ加重を含んでいる、など）。したがって、陰影が付けられたサンプル領域によって、有効なサンプルが示されており、一方、陰影が付けられていない（例えば、白い）サンプル領域によって、スキップされるサンプル（例えば、パラメータを含んでいないサンプルなど）が示されている。この図では、パラメータ加重が示されておらず、サンプル領域の陰影が基になるパラメータ加重に対応している図１とは異なるということに注意する。
【００２５】
有効なサンプルに関連付けられた特定の確定的パターン（例えば、第１のパターン２０６または第２のパターン２０８）を含んでいるスパース・カーネル（例えば、スパース・カーネル２１０または補完カーネル２１２）の複数の例も示されている。言い換えると、スパース・カーネル２１０などの特定のスパース・カーネルは、スキップされるサンプルおよび有効なサンプルを含んでいる第１のサンプル行列（例えば、３×３）を含むことができる。第１のパターン２０６などのスパース・カーネル２１０に関連付けられた確定的パターンは、有効なサンプルの第１のサンプル行列内の位置を表すことができ、スキップされるサンプルの数に基づいて演算の数およびパラメータの数を減らすことができるということに、注意する。
【００２６】
補完カーネル２１２は、スパース・カーネルの種類を表すこともできる。すなわち、補完カーネル２１２は、スキップされるサンプルおよび有効なサンプルを含んでいる第２のサンプル行列を含むことができる。第２のパターン２０８は、第２のサンプル行列内の有効なサンプルの位置を表すことができる。一部の実施形態では、第２のパターン２０８は、第１のパターン２０６によって示された有効なサンプルを補完する有効なサンプルを表すことができる。例えば、スパース・カーネル３０４ａは「ｘ」形状を形成し、一方、スパース・カーネル３０４ｂは「＋」形状を形成する。スパース・カーネル３０４ａの有効なサンプルが、スパース・カーネル３０４ｂの有効なサンプルを補完するか、または代替として、スパース・カーネル３０４ｂのスキップされるサンプルと一致するため、スパース・カーネル３０４ｂがスパース・カーネル３０４ａの補完カーネル２１２であることができ、または逆に、スパース・カーネル３０４ａがスパース・カーネル３０４ｂの補完カーネル２１２であることができる。パターンは異なるが、同様の例が、スパース・カーネル３０６ａおよび３０６ｂに関して示されている。さらに、３×３行列に関連して多数のその他の例が提供されるが、網羅的ではなく、その他の行列サイズが他の例を実証するであろう。
【００２７】
一部の実施形態では、スパース・カーネル２１０の第１の行列内のスキップされるサンプルを含んでいる位置に対応する第２の行列内のすべての位置で、補完カーネル２１２（または複数のスパース・カーネルの組み合わせ）が有効なサンプルを含んでいる場合、補完カーネル２１２がスパース・カーネル２１０を「補完」すると言うことができる。一部の実施形態では、スパース・カーネル２１０の第１の行列内の少なくとも１つのスキップされるサンプルの位置に対応する第２の行列内で、補完カーネル２１２（または複数のスパース・カーネルの組み合わせ）が少なくとも１つの有効なサンプルを含んでいる場合、補完カーネル２１２がスパース・カーネル２１０を補完すると言うことができる。第１のパターン２０６および第２のパターン２０８を、互いに補完するように確定的に選択することによって、第１のパターン２０６の少なくとも一部のスキップされるサンプルを、第２のパターン２０８の有効なサンプルによって表すことができ、その結果、完全なカーネル３０２の受容野のより堅牢な近似を得ることができるということが、理解される。
【００２８】
一部の実施形態に関連して、これらおよびその他の利点を実施するために、スパース・カーネル２１０を補完カーネル２１２と結合または「融合」することができ、このことが、図２に戻ってさらに詳細に説明される。例えば、この例では、システム２００は、融合コンポーネント２１４を備えることができる。融合コンポーネント２１４は、スパース・カーネル２１０の特徴および補完カーネル２１２の特徴の結合に基づいて、融合されたカーネル２１８を生成するように構成され得る。図に示されているように、融合コンポーネント２１４は、融合方法２１６に基づいて融合されたカーネル２１８を構築または生成することができ、その例が、図４〜６に関連して説明される。
【００２９】
さらに、システム２００は、トレーニング動作２２２を実行して融合されたカーネル２１８をトレーニングするように構成され得る、トレーニング・コンポーネント２２０を備えることができる。例えば、トレーニング済みの融合されたカーネル２２４は、融合されたカーネル２１８に対するトレーニング動作２２２の適用に基づいて構築または生成され得る。一部の実施形態では、トレーニング済みの融合されたカーネル２２４は、最初からトレーニングされ得る。
【００３０】
ここで図４を参照すると、ブロック図４００が示されている。ブロック図４００は、本明細書に記載された１つまたは複数の実施形態に従って第１の例示的な融合方法を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。この例では、融合コンポーネント２１４は、スパース・カーネル２１０および補完カーネル２１２を入力として受信することができる。スパース・カーネル２１０および補完カーネル２１２が、一部の適切な手順に従ってスパース化され得るか、またはすべての位置で有効なサンプルを含んでいる完全なカーネルではなく、スキップされるサンプルも含んでいるか、あるいはその両方であるということが、理解される。有効なサンプルに関連付けられたパターンが、事前に決定されるか、または確定的に選択もしくは識別されるか、あるいはその両方が行われ得るということ、およびこれらのパターンが互いに補完することができるということが、さらに理解される。したがって、一例として、スパース・カーネル２１０は、「ｘ」形状のパターンを含んでいるスパース・カーネル３０４ａとして表すことができ、補完カーネル２１２は、「＋」形状のパターンを含んでいるスパース・カーネル３０４ｂとして表すことができ、スパース・カーネル３０４ｂはスパース・カーネル３０４ａの「ｘ」形状のパターンを完全に補完する。
【００３１】
一部の実施形態では、融合コンポーネント２１４は、第１のパターン２０６のスキップされるサンプルを第２のパターン２０８の有効なサンプルに置き換える空間結合演算（spatial-join operation）を使用して、スパース・カーネル２１０の特徴および補完カーネルの特徴を結合することができる。そのような結合が、融合方法２１６の一例を表す第１の例示的な融合方法４０２によって示されている。一部の実施形態では、融合方法２１６は、演算子４０４に従って、スパース・カーネルおよび補完カーネルのペアワイズ連結（pairwise concatenation）に基づいてスパース・カーネル２１０および補完カーネル２１２を結合することができる。一部の実施形態では、演算子４０４は、示されているように加算演算子であることができる。一部の実施形態では、演算子４０４は、追加または代替として、逆演算子（例えば、−１による乗算）であることができる。
【００３２】
参照番号４０６に示されているように、スパース・カーネル２１０および補完カーネル２１２の結合は、適切な連結に基づくことができ、正規化線形ユニット（ＲｅＬＵ：rectified linear unit）手順が採用され得る。このようにして、融合されたカーネル２１８を生成することができ、その例が参照番号４０８によって提供されている。融合されたカーネル２１８が完全なカーネルの近似になることができるということが、理解される。一部の実施形態では、融合されたカーネル２１８は、完全なカーネルより少ないパラメータを含むことができ、その結果、計算リソース要件を減らすことができ、ただし、完全なカーネルの受容野を非常に厳密に近似する受容野を含むことができる。
【００３３】
ここで図５を参照すると、ブロック図５００が示されている。ブロック図５００は、本明細書に記載された１つまたは複数の実施形態に従って第２の例示的な融合方法を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。この例では、融合コンポーネント２１４は、スパース・カーネル２１０および補完カーネル２１２を入力として受信することができる。それに応じて、融合コンポーネントは、第２の例示的な融合方法５０２を実行することができ、第２の例示的な融合方法５０２は、図４の第１の例示的な融合方法４０２に関連して実質的に詳述されたように、演算子４０４に従って、スパース・カーネルおよび補完カーネルのペアワイズ連結に基づいてスパース・カーネル２１０および補完カーネル２１２を結合することを含むことができる。追加的または代替的に、第２の例示的な融合方法５０２は、チャネルの次元における１×１チャネル行列の適用に基づいて、スパース・カーネル、補完カーネル、および融合されたカーネルの特徴を結合することを含んでいるチャネルワイズ融合手順（channel-wise fusion procedure）を含むことができ、この手順が参照番号５０４に示されている。このチャネルワイズ・カーネル融合（channel-wise kernel fusion）の結果として、融合されたカーネル２１８を生成することができる。
【００３４】
ここで図６を参照すると、ブロック図６００が示されている。ブロック図６００は、本明細書に記載された１つまたは複数の実施形態に従って、例示的な融合方法をさらに詳細に示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。一部の実施形態では、融合コンポーネント２１４は、１つまたは複数の演算子に従って、スパース・カーネルおよび補完カーネルのペアワイズ・カーネル融合手順（pairwise kernel fusion procedure）６０２に基づいてスパース・カーネル２１０および補完カーネル２１２を結合することができる。一部の実施形態では、ペアワイズ・カーネル融合手順６０２は、示されているように加算演算子を利用できる。一部の実施形態では、ペアワイズ・カーネル融合手順６０２は、追加または代替として、逆演算子（例えば、−１による乗算）を利用できる。一部の実施形態では、スパース・カーネル２１０および補完カーネル２１２は、ペアワイズ・カーネル融合手順６０２の間に、選択された演算子によって、または複数の演算子によって、結合され得る。一部の実施形態では、スパース・カーネル２１０および補完カーネル２１２の結合は、１つまたは複数のＲｅＬＵ手順を採用できる。
【００３５】
参照番号４０６に示された連結またはＲｅＬＵ手順あるいはその両方の後に、または一部の実施形態では、参照番号４０６の前に、図５の第２の例示的な融合方法５０２に従って詳述されたように、チャネルワイズ融合手順５０４に従って適切なデータが融合され得る。その結果が、融合されたカーネル２１８であることができる。
【００３６】
ここで図７を参照すると、図７００が示されている。図７００は、本明細書に記載された１つまたは複数の実施形態に従って、元の学習されたカーネルの例と、スパース・カーネル、補完カーネル、および融合されたカーネルのさまざまな例との例示的な加重の視覚化の比較を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。図７００は、加重の視覚化を示している。例えば、さまざまな例示的な３×３カーネルが示されており、図１と同様に、対応する位置のパラメータ加重に従って、個々のカーネルの空間的位置に陰影が付けられている。陰影のグラデーションが明るいほど、より大きいパラメータ加重を反映している。
【００３７】
参照番号７０２は、元の学習されたカーネルの加重の視覚化を表している。参照番号７０４および７０６は、互いに補完しているスパース・カーネルの加重の視覚化を表している。この例では、参照番号７０４によって示されたカーネルが、ｘ形状のパターンを含んでいるカーネルを表しており、一方、参照番号７０６によって示されたカーネルが、＋形状のパターンを含んでいるカーネルを表している。参照番号７０８は、上で詳細に説明された手法に従って融合されている、対応する融合されたカーネルを表している。
【００３８】
ここで図８を参照すると、システム８００が示されている。システム８００は、本明細書に記載された１つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的システム８００のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。システム８００は、システム２００にかなり類似することができる。システム８００は、受信コンポーネント８０２をさらに備えることができる。受信コンポーネント８０２は、システム２００または８００の動作パラメータを構成するか、または指定するか、あるいはその両方を実行するために採用できる構成データ８０４を受信するように、構成され得る。すでに詳細に説明されたように、構成データ８０４は、第１のパターン２０６または第２のパターン２０８を指定するか、選択するか、またはその他の方法で決定するために（例えば、パターン・コンポーネント２０２によって）使用できるデータを含むことができ、このデータは、実装の特性、専門知識、または格納済みのデータの成果であることができ、または他のトレーニングされた畳み込みニューラル・ネットワークの特定の層に関連付けられた観察に基づくことができる。
【００３９】
一部の実施形態では、構成データ８０４は、複数の種類のスパース・カーネルまたは複数の種類の補完カーネルあるいはその両方をさらに含むことができ、それらが、参照番号８０６および８０８によってそれぞれ示されている。スパース・カーネルまたは補完カーネルあるいはその両方の種類の非網羅的かつ非限定的な例が、図３を参照して提供される。一部の実施形態では、構成データ８０４は、複数のスパース・カーネルまたは複数の補完カーネルあるいはその両方を含むことができ、それらが、参照番号８１０および８１２によってそれぞれ示されている。
【００４０】
一部の実施形態では、構成データ８０４は、参照番号８１４によって示されているペアワイズ・カーネル融合の演算子を示すか、または指定する、データを含むことができる。例えば、図６のペアワイズ・カーネル融合６０２を参照すると、加算演算子を示すことができ、逆演算子、または別の適切な演算子、あるいはこれらの組み合わせを指定できる。一部の実施形態では、構成データ８０４は、参照番号８１６によって示されているチャネルワイズ融合が使用されるかどうかを示すデータを含むことができる。例えば、チャネルワイズ融合が使用されない場合、図４の第１の例示的な融合方法４０２が採用され得る。一方、チャネルワイズ融合が使用されない場合、図５の第２の例示的な融合方法５０２が採用され得る。
【００４１】
図９および１０は、開示される対象に従って、さまざまな方法を示している。説明を簡単にするために、一連の動作として方法が示され、説明されているが、一部の動作が、本明細書において示されて説明された順序とは異なる順序で発生するか、または他の動作と同時に発生するか、あるいはその両方が可能であるため、開示される対象が動作の順序によって限定されないということが理解されるべきである。例えば、当業者は、代替として、方法が、状態図などにおいて、一連の相互に関連する状態またはイベントとして表され得るということを理解するであろう。さらに、開示される対象に従って方法を実装するために、示されているすべての動作が必要でなくてもよい。そのような方法をコンピュータに輸送または転送するのを容易にするために、以下および本明細書全体を通じて開示された方法を製品に格納できるということが、さらに理解されるべきである。
【００４２】
図９は、本明細書に記載された１つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的コンピュータ実装方法のフロー図９００を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。参照番号９０２で、プロセッサに動作可能なように結合されたデバイス（例えば、システム２００、８００）が、有効なサンプルおよびスキップされるサンプルを含んでいる第１のサンプル行列の第１のパターンを決定できる。第１のサンプル行列はスパース・カーネルを代表することができ、第１のパターンは第１のサンプル行列の有効なサンプルを代表することができる。
【００４３】
参照番号９０４で、デバイスが、有効なサンプルおよびスキップされるサンプルを含んでいる第２のサンプル行列の第２のパターンを決定できる。第２のサンプル行列は、補完カーネルを代表することができる。第２のパターンは、第２のサンプル行列の有効なサンプルを代表することができる。第２のサンプル行列の有効なサンプルは、第１のサンプル行列の有効なサンプルを補完することができる。
【００４４】
参照番号９０６で、デバイスは、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて、融合されたカーネルを生成できる。融合されたカーネルは、完全なカーネルの近似を表すことができる。一部の実施形態では、融合されたカーネルは、完全なカーネルより少ないパラメータを含むことができ、その結果、演算数を少なくし、畳み込みニューラル・ネットワークを動作させるために消費されるリソースを削減し、ＣＮＮモデルを縮小することができる。一部の実施形態では、融合されたカーネルは、完全なカーネルの受容野を十分に近似する受容野を含むことができる。
【００４５】
参照番号９０８で、デバイスは、融合されたカーネルを含んでいる畳み込みニューラル・ネットワークをトレーニングすることができる。
【００４６】
ここで図１０を参照すると、本明細書に記載された１つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似するための追加の態様または要素を提供できる、例示的な非限定的コンピュータ実装方法のフロー図１０００が示されている。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。参照番号１００２で、デバイス（例えば、システム２００、８００）が構成データを受信できる。構成データは、複数の種類のスパース・カーネル、複数の種類の補完カーネル、複数のスパース・カーネル、複数の補完カーネル、ペアワイズ・カーネル融合の演算子の識別、またはチャネルワイズ融合が使用されるべきかどうかを示すインジケータを含むことができる。
【００４７】
参照番号１００４で、デバイスは融合されたカーネルを生成できる。融合されたカーネルの生成は、演算子に従って、スパース・カーネルおよび補完カーネルのペアワイズ連結に基づいて、スパース・カーネルおよび補完カーネルを結合することを含むことができる。
【００４８】
参照番号１００６で、異なる方法または拡張された方法に従って、デバイスは融合されたカーネルを生成できる。例えば、融合されたカーネルの生成はチャネルワイズ融合手順を含むことができる。チャネルワイズ融合手順は、チャネルの次元における１×１チャネル行列の適用に基づいて、スパース・カーネル、補完カーネル、および融合されたカーネルの特徴を結合することを含むことができる。
【００４９】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含むことができる。
【００５０】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであることができるが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー（Ｒ）・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００５１】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えることができる。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【００５２】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われ得る。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行することができる。
【００５３】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００５４】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであることができる。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであることもできる。
【００５５】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれることもでき、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【００５６】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を含んでいる、命令のモジュール、セグメント、または部分を表すことができる。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生することができる。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【００５７】
図１０に関連して、以下で説明されるシステムおよびプロセスは、単一の集積回路（ＩＣ：integrated circuit）チップ、複数のＩＣ、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）などのハードウェア内で具現化され得る。さらに、プロセスのブロックの一部 または全部が各プロセス内で現れる順序は、制限と見なされるべきではない。プロセスのブロックの一部が、さまざまな順序で実行されることが可能であり、本明細書では、それらの順序のすべてを明示的に示すことができないということが、理解されるべきである。
【００５８】
図１０を参照すると、請求される対象のさまざまな態様を実装するための例示的な環境１０００は、コンピュータ１００２を含む。コンピュータ１００２は、処理ユニット１００４、システム・メモリ１００６、コーデック１０３５、およびシステム・バス１００８を含む。システム・バス１００８は、システム・メモリ１００６を含むが、これに限定されないシステム・コンポーネントを、処理ユニット１００４に結合する。処理ユニット１００４は、さまざまな使用可能なプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット１００４として採用されてもよい。
【００５９】
システム・バス１００８は、ＩＳＡ（Industry Standard Architecture）、ＭＣＡ（Micro-Channel Architecture）、ＥＩＳＡ（Extended ISA）、ＩＤＥ（Intelligent Drive Electronics）、ＶＥＳＡローカル・バス（ＶＬＢ：VESA Local Bus）、ＰＣＩ（Peripheral Component Interconnects）、カードバス、ユニバーサル・シリアル・バス（ＵＳＢ：Universal Serial Bus）、ＡＧＰ（Advanced Graphics Port）、ＰＣＭＣＩＡ（Personal Computer Memory Card International Association）バス、Ｆｉｒｅｗｉｒｅ（ＩＥＥＥ  １３９４）、および小型コンピュータ・システム ・インターフェイス（ＳＣＳＩ：Small Computer Systems Interface）を含むが、これらに限定されない、任意のさまざまな使用可能なバス・アーキテクチャを使用する、メモリ・バスもしくはメモリ・コントローラ、ペリフェラル・バスもしくは外部バス、またはローカル・バスを含む、複数の種類のバス構造のいずれかであることができる。
【００６０】
システム・メモリ１００６は、さまざまな実施形態において開示されたメモリ・アーキテクチャのうちの１つまたは複数を採用することができる、揮発性メモリ１０１０および不揮発性メモリ１０１２を含む。起動中などにコンピュータ１００２内の要素間で情報を転送するための基本ルーチンを含んでいる基本入出力システム（ＢＩＯＳ：basic input/output system）が、不揮発性メモリ１０１２に格納される。加えて、現在の革新技術によれば、コーデック１０３５は、エンコーダまたはデコーダのうちの少なくとも１つを含むことができ、エンコーダまたはデコーダのうちの少なくとも１つは、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせから成ることができる。コーデック１０３５は分離したコンポーネントとして示されているが、コーデック１０３５は、不揮発性メモリ１０１２内に含まれ得る。不揮発性メモリ１０１２の例としては、読み取り専用メモリ（ＲＯＭ：read only memory）、プログラマブルＲＯＭ（ＰＲＯＭ：programmable ROM）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ：electrically programmable ROM）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ：electrically erasable programmable ROM）、フラッシュ・メモリ、３Ｄフラッシュ・メモリ、または抵抗性ランダム・アクセス・メモリ（ＲＲＡＭ：resistive random access memory）などの抵抗性メモリが挙げられるが、これらに限定されない。少なくとも一部の実施形態では、不揮発性メモリ１０１２は、開示されたメモリ・デバイスのうちの１つまたは複数を採用することができる。さらに、不揮発性メモリ１０１２は、（例えば、コンピュータ１００２またはそのメインボードに物理的に統合された）コンピュータ・メモリまたは取り外し可能なメモリであることができる。開示された実施形態が実装され得る適切な取り外し可能なメモリの例としては、セキュア・デジタル（ＳＤ：secure digital）カード、コンパクト・フラッシュ（ＣＦ：compactFlash）カード、ユニバーサル・シリアル・バス（ＵＳＢ：universal serial bus）メモリ・スティックなどが挙げられる。揮発性メモリ１０１０は、外部キャッシュ・メモリとして機能するランダム・アクセス・メモリ（ＲＡＭ：random access memory）を含み、さまざまな実施形態において、１つまたは複数の開示されたメモリ・デバイスを採用することもできる。例えばＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ：static RAM）、ダイナミックＲＡＭ（ＤＲＡＭ：dynamic RAM）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ：synchronous DRAM）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ：double data rate SDRAM）、および拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ：enhanced SDRAM）などの、ただしこれらに限定されない、多くの形態で利用可能である。
【００６１】
コンピュータ１００２は、取り外し可能／取り外し不可能な揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。例えば図１０は、ディスク・ストレージ１０１４を示している。ディスク・ストレージ１０１４は、磁気ディスク・ドライブ、半導体ディスク（ＳＳＤ：solid state disk）、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスを含むが、これらに限定されない。加えて、ディスク・ストレージ１０１４は、コンパクト・ディスクＲＯＭデバイス（ＣＤ−ＲＯＭ：compact disk ROM device）、記録可能ＣＤドライブ（ＣＤ−Ｒドライブ：CD recordable drive）、再書き込み可能ＣＤドライブ（ＣＤ−ＲＷドライブ：CD rewritable drive）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ：digital versatile disk ROM drive）などの光ディスク・ドライブを含むが、これらに限定されない記憶媒体を、別々に、または他の記憶媒体と組み合わせて、含むことができる。システム・バス１００８へのディスク・ストレージ・デバイス１０１４の接続を容易にするために、インターフェイス１０１６などの、取り外し可能または取り外し不可能なインターフェイスが通常は使用される。ストレージ・デバイス１０１４がユーザに関連する情報を格納できるということが、理解される。そのような情報は、ユーザ・デバイス上で実行されているサーバまたはアプリケーションに格納または提供されてよい。１つの実施形態では、ディスク・ストレージ１０１４に格納されている情報の種類が、（例えば、出力デバイス１０３６を経由して）ユーザに通知され得るか、またはサーバもしくはアプリケーションに送信され得る。そのような情報がサーバまたはアプリケーションで収集または共有されることのオプトインまたはオプトアウトの機会が、（例えば、入力デバイス１０２８からの入力によって）ユーザに提供され得る。
【００６２】
図１０が、ユーザと、適切な動作環境１０００において説明された基本的なコンピュータ・リソースとの間の仲介として機能するソフトウェアを説明しているということが、理解されるべきである。そのようなソフトウェアは、オペレーティング・システム１０１８を含む。ディスク・ストレージ１０１４に格納できるオペレーティング・システム１０１８は、コンピュータ・システム１００２のリソースを制御し、割り当てるように動作する。アプリケーション１０２０は、プログラム・モジュール１０２４を介して、オペレーティング・システム１０１８によるリソースの管理を利用し、システム・メモリ１００６またはディスク・ストレージ１０１４のいずれかに格納されたデータ１０２６（ブート／シャットダウン・トランザクション・テーブルなど）をプログラムする。さまざまなオペレーティング・システムまたはオペレーティング・システムの組み合わせを使用して、請求される対象が実装され得るということが、理解されるべきである。
【００６３】
ユーザは、１つまたは複数の入力デバイス１０２８を介して、コマンドまたは情報をコンピュータ１００２に入力する。入力デバイス１０２８は、マウス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、ＴＶチューナー・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、Ｗｅｂカメラなどのポインティング・デバイスを含むが、これらに限定されない。これらおよびその他の入力デバイスは、インターフェイス・ポート１０３０を介してシステム・バス１００８を通り、処理ユニット１００４に接続する。インターフェイス・ポート１０３０は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含む。出力デバイス１０３６は、入力デバイス１０２８と同じ種類のポートの一部を使用する。このようにして、例えば、ＵＳＢポートを使用して、入力をコンピュータ１００２に提供し、コンピュータ１００２から出力デバイス１０３６に情報を出力できる。出力アダプタ１０３４は、特殊なアダプタを必要とする出力デバイス１０３６の中でも特に、モニタ、スピーカ、およびプリンタのような何らかの出力デバイス１０３６が存在することを示すために提供される。出力アダプタ１０３４の例としては、出力デバイス１０３６とシステム・バス１００８の間の接続の手段を提供するビデオ・カードおよびサウンド・カードが挙げられるが、これらに限定されない。リモート・コンピュータ１０３８などの、その他のデバイスまたはデバイスのシステムが、入力機能および出力機能の両方を提供するということに、注意するべきである。
【００６４】
コンピュータ１００２は、リモート・コンピュータ１０３８などの１つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作できる。リモート・コンピュータ１０３８は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピア・デバイス、スマートフォン、タブレット、またはその他のネットワーク・ノードであることができ、通常は、コンピュータ１００２に関連して説明された要素の多くを含む。簡潔にするために、メモリ・ストレージ・デバイス１０４０のみが、リモート・コンピュータ１０３８と共に示されている。リモート・コンピュータ１０３８は、ネットワーク・インターフェイス１０４２を介してコンピュータ１００２に論理的に接続されてから、通信接続１０４４を介して接続される。ネットワーク・インターフェイス１０４２は、ローカル・エリア・ネットワーク（ＬＡＮ：local-area networks）および広域ネットワーク（ＷＡＮ：wide-area networks）、ならびにセルラー・ネットワークなどの、有線通信ネットワークまたは無線通信ネットワークを包含する。ＬＡＮ技術は、光ファイバ分散データ・インターフェイス（ＦＤＤＩ：Fiber Distributed Data Interface）、銅線分散データ・インターフェイス（ＣＤＤＩ：Copper Distributed Data Interface）、トークン・リングなどを含む。ＷＡＮ技術は、ポイントツーポイント・リンク、総合デジタル通信網（ＩＳＤＮ：Integrated Services Digital Networks）およびその変形などの回路交換網、パケット交換網、およびデジタル加入者回線（ＤＳＬ：Digital Subscriber Lines）を含むが、これらに限定されない。
【００６５】
通信接続１０４４は、ネットワーク・インターフェイス１０４２をバス１００８に接続するために採用されたハードウェア／ソフトウェアのことを指す。通信接続１０４４は、説明を明確にするために、コンピュータ１００２内に示されているが、コンピュータ１００２の外部に存在することもできる。ネットワーク・インターフェイス１０４２への接続に必要なハードウェア／ソフトウェアは、単に例示の目的で、通常の電話の等級のモデム、ケーブル・モデム、およびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、有線および無線イーサネット（Ｒ）・カード、ハブ、ならびにルータなどの、内部および外部の技術を含む。
【００６６】
上記では、１つのコンピュータまたは複数のコンピュータあるいはその両方で実行されるコンピュータ・プログラム製品のコンピュータ実行可能命令との一般的な関連において、対象が説明されたが、当業者は、本開示がその他のプログラム・モジュールと組み合わせられるか、またはその他のプログラム・モジュールと組み合わせて実装され得るということを認識するであろう。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するか、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明のコンピュータ実装方法が、シングルプロセッサ・コンピュータ・システムまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、コンピュータ、ハンドヘルド・コンピューティング・デバイス（例えば、ＰＤＡ、電話）、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品または産業用電子機器などを含む、その他のコンピュータ・システム構成を使用して実践され得るということを理解するであろう。示された態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境内で実践されてもよい。ただし、本開示の態様の全部ではないとしても一部は、スタンドアロン・コンピュータ上で実践され得る。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置され得る。
【００６７】
本出願において使用されるとき、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェイス」などの用語は、１つまたは複数の特定の機能を含むコンピュータ関連の実体または操作可能なマシンに関連する実体を指すことができるか、またはそれらの実体を含むことができるか、あるいはその両方が可能である。本明細書で開示された実体は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、またはコンピュータ、あるいはその組み合わせであることができるが、これらに限定されない。例として、サーバ上で実行されるアプリケーションおよびサーバの両方が、コンポーネントであることができる。１つまたは複数のコンポーネントが、プロセス内または実行のスレッド内あるいはその両方に存在することができ、コンポーネントは、コンピュータ上に局在するか、または２つ以上のコンピュータ間で分散されるか、あるいはその両方が可能である。別の例では、各コンポーネントは、さまざまなデータ構造が格納されているさまざまなコンピュータ可読媒体から実行できる。コンポーネントは、１つまたは複数のデータ・パケット（例えば、ローカル・システム内または分散システム内の別のコンポーネントと情報をやりとりするか、またはインターネットなどのネットワークを経由して、信号を介して他のシステムと情報をやりとりするか、あるいはその両方によって情報をやりとりする、１つのコンポーネントからのデータ）を含んでいる信号などに従って、ローカルまたはリモートあるいはその両方のプロセスを介して通信できる。別の例として、コンポーネントは、電気または電子回路によって操作される機械的部品によって提供される特定の機能を有する装置であることができ、プロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって操作される。そのような場合、プロセッサは、装置の内部または外部に存在することができ、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行できる。さらに別の例として、コンポーネントは、機械的部品を含まない電子コンポーネントを介して特定の機能を提供する装置であることができ、それらの電子コンポーネントは、電子コンポーネントの機能の少なくとも一部を与えるソフトウェアまたはファームウェアを実行するためのプロセッサまたはその他の手段を含むことができる。１つの態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【００６８】
加えて、「または」という用語は、排他的論理和ではなく、包含的論理和を意味するよう意図されている。すなわち、特に指定されない限り、または文脈から明らかでない限り、「ＸがＡまたはＢを採用する」は、自然な包含的順列のいずれかを意味するよう意図されている。すなわち、ＸがＡを採用するか、ＸがＢを採用するか、またはＸがＡおよびＢの両方を採用する場合、「ＸがＡまたはＢを採用する」が、前述の事例のいずれかにおいて満たされる。さらに、本明細書および添付の図面において使用される冠詞「ａ」および「ａｎ」は、単数形を対象にすることが特に指定されない限り、または文脈から明らかでない限り、「１つまたは複数」を意味すると一般に解釈されるべきである。本明細書において使用されるとき、「例」または「例示的」あるいはその両方の用語は、例、事例、または実例となることを意味するために使用され、非限定的であるよう意図されている。誤解を避けるために、本明細書で開示された対象は、そのような例によって制限されない。加えて、「例」または「例示的」あるいはその両方として本明細書に記載された任意の態様または設計は、他の態様または設計よりも好ましいか、または有利であると必ずしも解釈されず、当業者に知られている同等の例示的な構造および技術を除外するよう意図されていない。
【００６９】
本明細書において使用されるとき、「プロセッサ」という用語は、シングルコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるシングルプロセッサと、マルチコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるマルチコア・プロセッサと、ハードウェアのマルチスレッド技術を備えるマルチコア・プロセッサと、並列プラットフォームと、分散共有メモリを備える並列プラットフォームとを含むが、これらに限定されない、実質的に任意の計算処理ユニットまたはデバイスを指すことができる。さらに、プロセッサは、集積回路、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、デジタル信号プロセッサ（ＤＳＰ：digital signal processor）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：field programmable gate array）、プログラマブル・ロジック・コントローラ（ＰＬＣ：programmable logic controller）、複合プログラム可能論理デバイス（ＣＰＬＤ：complex programmable logic device）、個別のゲートまたはトランジスタ論理、個別のハードウェア・コンポーネント、あるいは本明細書に記載された機能を実行するように設計されたこれらの任意の組み合わせを指すことができる。さらに、プロセッサは、空間利用を最適化し、ユーザ機器の性能を向上するために、分子および量子ドットベースのトランジスタ、スイッチ、およびゲートなどの、ただしこれらに限定されない、ナノスケール・アーキテクチャを利用することができる。プロセッサは、計算処理ユニットの組み合わせとして実装されてもよい。本開示では、コンポーネントの動作および機能に関連する「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的に任意のその他の情報格納コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」内に具現化された実体、またはメモリを備えているコンポーネントを指すために使用される。本明細書に記載されたメモリまたはメモリ・コンポーネントあるいはその両方が、揮発性メモリまたは不揮発性メモリのいずれかであることができ、あるいは揮発性メモリおよび不揮発性メモリの両方を含むことができるということが、理解されるべきである。不揮発性メモリの例としては、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ））が挙げられるが、これらに限定されない。揮発性メモリは、例えば外部キャッシュ・メモリとして機能できる、ＲＡＭを含むことができる。例えばＲＡＭは、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびラムバス・ダイナミックＲＡＭ（ＲＤＲＡＭ：Rambus dynamic RAM）などの、ただしこれらに限定されない、多くの形態で利用可能である。さらに、本明細書において開示されたシステムまたはコンピュータ実装方法のメモリ・コンポーネントは、これらおよび任意のその他の適切な種類のメモリを含むが、これらに限定されない、メモリを含むよう意図されている。
【００７０】
前述した内容は、システムおよびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本開示を説明する目的で、コンポーネントまたはコンピュータ実装方法の考えられるすべての組み合わせについて説明することは不可能であるが、当業者は、本開示の多くのその他の組み合わせおよび並べ替えが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における暫定的な用語として使用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。さまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。説明された実施形態の範囲を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【図１】
2021507345.tif 000003
【図２】
2021507345.tif 000004
【図３】
2021507345.tif 000005
【図４】
2021507345.tif 000006
【図５】
2021507345.tif 000007
【図６】
2021507345.tif 000008
【図７】
2021507345.tif 000009
【図８】
2021507345.tif 000010
【図９】
2021507345.tif 000011
【図１０】
2021507345.tif 000012
【図１１】
2021507345.tif 000013
【国際調査報告】
2021507345.tif 000014
2021507345.tif 000015