サービスとしてプログラム可能な集積回路ICを提供するための方法であって、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、前記IC設計パッケージに管理ペイロードを付加すること、前記IC設計パッケージに関連付けられた、前記管理ペイロードに適合するユーザキーを作成すること、および前記ユーザキーを用いて、1つまたは複数の仮想マシンを介して前記プログラム可能なICへの選択的なアクセスを提供することを含む方法。前記プログラム可能なICが、フィールドプログラマブルゲートアレイFPGAである、請求項1に記載の方法。前記設計パッケージをコンパイルする前に、前記管理ペイロードを付加することをさらに含み、前記コンパイルが、最終設計のために回路を追加する、請求項2に記載の方法。メッセージングインターフェースを介して、サーバ機能を前記データセンタから前記FPGAに接続することをさらに含む、請求項2に記載の方法。前記メッセージングインターフェースが、ネットワークインターフェース、および周辺コンピュータ相互接続PCIインターフェースの一方を使用する、請求項4に記載の方法。前記ユーザキーのコピーを使用して、1つまたは複数の準仮想化ドライバを備えた1つまたは複数の仮想マシンを開始できるようにすることをさらに含み、前記準仮想化ドライバが、前記FPGAへの所有権が検証されたアクセスを提供する、請求項2に記載の方法。前記FPGAで受け取った前記設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つを提供することをさらに含む、請求項2に記載の方法。信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザの1つに対して、前記FPGAに対する直接ネットワークアクセスを可能にすることをさらに含む、請求項2に記載の方法。前設計パッケージが、前記付加された管理ペイロードと共に前記FPGAにイメージコピーされる、請求項2に記載の方法。前記管理ペイロードが、ユーザ識別を保証するために、前記FPGAに対するメッセージングインターフェースを管理し、かつ事前に規定された請求メトリックに基づいて前記FPGAの使用量を追跡する、請求項9に記載の方法。前記請求メトリックが、展開された時間および/または消費電力の1つまたは複数のものに基づいている、請求項10に記載の方法。前記1つまたは複数の仮想マシンが、前記ユーザキーを用いて前記FPGAと通信し、かつ前記IC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用する、請求項2に記載の方法。前記設計パッケージを処理するマネジャが、固定された数のゲートを消費し、前記ゲートは前記ユーザにとって利用可能な容量から除外される、請求項2に記載の方法。前記管理ペイロードが、ペイロード全体のコンパイルを開始した後の時間を記録し、かつユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックである、請求項2に記載の方法。前記管理ペイロードが、I/Oポートに常駐しており、かつフォーマットに従っていること、および/またはアクセス制御が、前記ユーザキーを使用して行われていることを保証する、請求項2に記載の方法。前記管理ペイロードは、確実にポートが監視され、かつ接続活動が請求のために集計されるようにする、請求項2に記載の方法。サービスとしてプログラム可能な集積回路ICを提供するデータセンタであって、管理サーバを備え、前記管理サーバが、データセンタで、プログラム可能な集積回路設計パッケージを受け取り、前記IC設計パッケージに管理ペイロードを付加し、前記IC設計パッケージに関連付けられた、前記管理ペイロードに適合するユーザキーを作成し、かつ前記ユーザキーを用いて、1つまたは複数の仮想マシンを介して前記プログラム可能なICへの選択的なアクセスを提供するように構成される、データセンタ。前記プログラム可能なICが、フィールドプログラマブルゲートアレイFPGAである、請求項17に記載のデータセンタ。前記管理サーバが、前記設計パッケージをコンパイルする前に、前記管理ペイロードを付加するようにさらに構成され、前記コンパイルが、最終設計のために回路を追加する、請求項18に記載のデータセンタ。前記管理サーバが、メッセージングインターフェースを介して、サーバ機能を前記データセンタから前記FPGAに接続するようにさらに構成される、請求項18に記載のデータセンタ。メッセージングインターフェースが、ネットワークインターフェース、および周辺コンピュータ相互接続PCIインターフェースの一方を使用する、請求項18に記載のデータセンタ。前記管理サーバが、前記ユーザキーのコピーを使用して、1つまたは複数の準仮想化ドライバを備えた1つまたは複数の仮想マシンを開始できるようさらに構成され、前記準仮想化ドライバが、前記FPGAへの所有権が検証されたアクセスを提供する、請求項21に記載のデータセンタ。前記管理サーバが、前記FPGAで受け取った前記設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つを提供するようにさらに構成される、請求項18に記載のデータセンタ。前記管理サーバが、信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザの1つに対して、前記FPGAに対する直接ネットワークアクセスを可能にするようにさらに構成される、請求項18に記載のデータセンタ。前記設計パッケージが、前記付加された管理ペイロードと共に前記FPGAにイメージコピーされる、請求項18に記載のデータセンタ。前記管理ペイロードが、ユーザ識別を保証するために、前記FPGAに対するメッセージングインターフェースを管理し、かつ事前に規定された請求メトリックに基づいて前記FPGAの使用量を追跡する、請求項25に記載のデータセンタ。前記請求メトリックが、展開された時間および/または消費電力の1つまたは複数のものに基づいている、請求項26に記載のデータセンタ。前記1つまたは複数の仮想マシンが、前記ユーザキーを用いて前記FPGAと通信し、かつ前記IC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用する、請求項18に記載のデータセンタ。前記設計パッケージを処理するマネジャが、固定された数のゲートを消費し、前記ゲートは前記ユーザにとって利用可能な容量から除外される、請求項18に記載のデータセンタ。前記管理ペイロードが、ペイロード全体のコンパイルを開始した後の時間を記録し、かつ前記ユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックである、請求項18に記載のデータセンタ。前記管理ペイロードが、I/Oポートに常駐しており、かつフォーマットに従っていること、および/またはアクセス制御が、前記ユーザキーを使用して行われていることを保証する、請求項18に記載のデータセンタ。前記管理ペイロードが、確実にポートが監視され、かつ接続活動が請求のために集計されるようにする、請求項18に記載のデータセンタ。サービスとしてプログラム可能な集積回路ICを提供するための命令を記憶したコンピュータ可読記憶媒体であって、前記命令が、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、前記IC設計パッケージに管理ペイロードを付加すること、前記IC設計パッケージに関連付けられた、前記管理ペイロードに適合するユーザキーを作成すること、および前記ユーザキーを用いて、1つまたは複数の仮想マシンを介して前記プログラム可能なICへの選択的なアクセスを提供することを含む、コンピュータ可読記憶媒体。前記プログラム可能なICが、フィールドプログラマブルゲートアレイFPGAである、請求項33に記載のコンピュータ可読記憶媒体。前記命令が、前記設計パッケージをコンパイルする前に、前記管理ペイロードを付加することをさらに含み、前記コンパイルが、最終設計のために回路を追加する、請求項34に記載のコンピュータ可読記憶媒体。前記命令が、メッセージングインターフェースを介して、サーバ機能を前記データセンタから前記FPGAに接続することをさらに含む、請求項34に記載のコンピュータ可読記憶媒体。前記メッセージングインターフェースが、ネットワークインターフェース、および周辺コンピュータ相互接続PCIインターフェースの一方を使用する、請求項36に記載のコンピュータ可読記憶媒体。前記命令が、前記ユーザキーのコピーを使用して、1つまたは複数の準仮想化ドライバを備えた1つまたは複数の仮想マシンを開始できるようにすることをさらに含み、前記準仮想化ドライバが、前記FPGAへの所有権が検証されたアクセスを提供する、請求項34に記載のコンピュータ可読記憶媒体。前記命令が、前記FPGAで受け取った前記設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つを提供することをさらに含む、請求項34に記載のコンピュータ可読記憶媒体。前記命令が、信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザの1つに対して、前記FPGAに対する直接ネットワークアクセスを可能にすることをさらに含む、請求項34に記載のコンピュータ可読記憶媒体。前記設計パッケージが、前記付加された管理ペイロードと共に前記FPGAにイメージコピーされる、請求項34に記載のコンピュータ可読記憶媒体。前記管理ペイロードが、ユーザ識別を保証するために、前記FPGAに対するメッセージングインターフェースを管理し、かつ事前に規定された請求メトリックに基づいて前記FPGAの使用量を追跡する、請求項41に記載のコンピュータ可読記憶媒体。前記請求メトリックが、展開された時間および/または消費電力の1つまたは複数のものに基づいている、請求項42に記載のコンピュータ可読記憶媒体。前記1つまたは複数の仮想マシンが、前記ユーザキーを用いて前記FPGAと通信し、かつ前記IC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用する、請求項34に記載のコンピュータ可読記憶媒体。前記設計パッケージを処理するマネジャが、固定された数のゲートを消費し、前記ゲートは前記ユーザにとって利用可能な容量から除外される、請求項34に記載のコンピュータ可読記憶媒体。前記管理ペイロードが、ペイロード全体のコンパイルを開始した後の時間を記録し、かつ前記ユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックである、請求項34に記載のコンピュータ可読記憶媒体。前記管理ペイロードが、I/Oポートに常駐しており、かつフォーマットに従っていること、および/またはアクセス制御が、前記ユーザキーを使用して行われていることを保証する、請求項34に記載のコンピュータ可読記憶媒体。前記管理ペイロードは、確実にポートが監視され、かつ接続活動が請求のために集計されるようにする、請求項34に記載のコンピュータ可読記憶媒体。したがって、大規模なデータ業務において、FPGAベース技術の効率および費用効果は高く評価されるが、広範囲にわたるユーザに対するその有効性は、初期投資および運用維持の問題を考慮すると、限られたものとなる。本開示は、概して、データセンタ仮想マシンに対するサービスとしてのフィールドプログラマブルゲートアレイFPGAなどプログラム可能な集積回路に対して選択的なアクセスを可能にする技術を述べる。いくつかの例によれば、サービスとしてプログラム可能な集積回路ICを提供するための方法は、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、IC設計パッケージに管理ペイロードを付加すること、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成すること、およびユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することを含むことができる。他の例によれば、サービスとしてプログラム可能な集積回路ICを提供するデータセンタは、管理サーバを含むことができ、管理サーバは、データセンタで、プログラム可能な集積回路設計パッケージを受け取り、IC設計パッケージに管理ペイロードを付加し、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成し、かつユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することができる。他の例によれば、コンピュータ可読記憶媒体は、サービスとしてプログラム可能な集積回路ICを提供するための記憶した命令を含むことができる。命令は、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、IC設計パッケージに管理ペイロードを付加すること、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成すること、およびユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的アクセスを提供することを含むことができる。前述の要約は、例示的なものに過ぎず、何らかの意味で限定することを意図していない。上記で述べた例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および以下の詳細な記述を参照すれば明らかになろう。本開示の前述のおよび他の特徴は、添付の図面と併せて以下の記述および添付の特許請求の範囲からより完全に明らかになろう。これらの図面は、本開示によるいくつかの実施形態を示しているに過ぎないこと、したがって、その範囲を限定するものと見なされるべきではないことを理解した上で、本開示は、添付の図面を使用することにより、さらなる特殊性および詳細を用いて述べるものとする。以下の詳細な説明では、その一部を形成する添付図面に対して参照が行われる。図面中、文脈がその他の形を規定しない限り、同様の記号は、通常、同様のコンポーネントを識別する。詳細な説明、図面、および特許請求の範囲で述べられる例示的な実施形態は、限定することを意味していない。本明細書で提示される主題の趣旨または範囲から逸脱することなく、他の実施形態を使用することができ、かつ他の変更を行うことができる。本明細書で概略的に述べられ、かつ図で示された本開示の諸態様は、広範囲な様々な構成で配置され、置換され、組み合わされ、分離され、かつ設計されうるが、そのすべてが、本明細書で明示的に企図されていることが容易に理解されよう。本開示は、概して、サービスとしてのFPGAまたは他のプログラム可能な回路へのアクセスを提供し、かつ管理することに関連する特に方法、装置、システム、デバイス、および/またはコンピュータプログラム製品に関する。簡単に述べると、共用のFPGA使用のためのプロビジョニング管理、およびユーザ仕様にプログラムされたFPGAにユーザのプロセスがアクセスできるようにするためのアクセス制御を可能にするシステムは、データセンタサーバと通信するFPGAに向けてコンパイルするためのユーザパッケージを受け入れることができる。ユーザパッケージは、付加された管理ペイロードと共にFPGAにイメージコピーするimageことができ、またドライバおよびユーザキーを使用して、データセンタ仮想マシンに対するサービスとしてのFPGAへの選択的なアクセスを可能にすることができる。併せて、これらの要素は、データセンタが、レンタルできるサービスとしての集積回路ICaaS:integratedcircuitsasaserviceを提供できるようにする。請求追跡、プロビジョン管理、およびアクセス制御などのさらなるサービスをユーザに提供することが可能となり低コストを実現できるようになる一方で、データセンタにはより大きな利益が実現される。図1は、本明細書で述べる少なくともいくつかの実施形態により構成された、サービスとして使用できる例示的なフィールドプログラマブルゲートアレイの構造を示している。フィールドプログラマブルゲートアレイFPGA100は、製作後に構成されるフィールドでプログラム可能なように設計された集積回路である。FPGAは、任意の論理関数を実施するために使用することができ、その構成は、一般にハードウェア記述言語HDLを用いて指定することができる。図1で示すFPGA100などのFPGAは、構成可能な論理ブロック110と呼ばれるプログラム可能な論理コンポーネントと、ブロックを数多くの様々な構成で論理ゲートに接続できるようにする再構成可能な相互接続106の階層とを含むことができる。構成可能な論理ブロック110は、複雑な組合せ関数、または単にANDおよびXORなどの簡単な論理ゲートを行うように構成することができる。いくつかのFPGAでは、構成可能な論理ブロック110は、いくつかのスライス112を含むことができ、各スライスは、1つまたは複数の論理セル114例えば、論理ゲートなどを含む。構成可能な論理ブロック110はまた、メモリ要素を含むことができ、それは、簡単なフリップフロップ、またはメモリのより完全なブロックとすることができる。FPGA100は、デジタルおよび/またはアナログ機能を有することができる。アナログ機能の例は、差動シグナリングチャンネルに接続されるように設計された入力ピン102に対する差動比較器を含む。したがって、FPGAの基本的な構造は、アレイベースであり、各集積回路は、水平および垂直のルーティングチャンネルを介して相互に接続されうる構成可能なブロック110の2次元アレイを備える。入力ピン102は、典型的なFPGA設計では、入力バッファ104を介して論理ブロックに入力を提供することができる。図2は、本明細書で述べる少なくともいくつかの実施形態により構成された、サービスとしての集積回路ICを提供するためのシステムを概念的に示している。データセンタは、データおよび情報の記憶、管理、処理、および配布のための中心化されたリポジトリである。データセンタは、組織体の施設内に存在することができるが、あるいは特殊化された施設として維持することができる。いくつかのデータセンタは、サーバ活動、ウェブトラフィック、管理データ、およびネットワーク性能を監視する自動化されたシステムを含むネットワークオペレーションセンタNOCと同義とすることができる。他のデータセンタは、収集データを管理すること、および解析もしくは同様の計算などのデータ関連サービスを提供することに専用化することもできる。データセンタは、通常、物理的なエンティティ例えば、サーバルーム、サーバファームなどに関連付けられるが、データセンタは、仮想データセンタVDCとしても同様に構成することができ、その場合、管理されたデータは、仮想サーバおよびデータ記憶装置により、サイズ、所有者、または他の態様に基づいてコンパートメント化される。いくつかの実施形態によるシステムは、データセンタサーバと通信するFPGAに向けてコンパイルするためのユーザパッケージを受け入れることにより、サービスとしての共用FPGA使用のためのプロビジョニング管理を可能にし、かつユーザ仕様にプログラムされたFPGAにユーザのプロセスがアクセスできるようにするアクセス制御を可能にする。管理ペイロードをユーザパッケージに追加することができ、またドライバおよびユーザキーを用いて、データセンタ仮想マシンを介してサービスとしてのFPGAへの選択的かつ管理されたアクセスを可能にする。図2の図表200を参照すると、データセンタ226は、データを記憶し、かつユーザ222などの複数のユーザクライアントに対して1つまたは複数のFPGA244への共用アクセスなどのサービスを提供することができる。ユーザ222は、1つまたは複数のネットワーク246を介してデータセンタ226と対話することができる例えば、クラウドベースの対話。請求追跡228、プロビジョン管理230、およびアクセス制御232などのさらなるサービスに関して、データセンタ226は、統合された、または別個のアプリケーションもしくはモジュールを使用することができ、それは、個々のサーバ上で実行することができるが、またはいくつかのサーバにわたり分散させることもできる。例えば、ユーザ222から設計パッケージ224を受け取ると、データセンタ226は、識別、追跡、請求、および/または互換性のために、コンパイルする前に管理ペイロードをユーザ設計パッケージに付加することができる。管理ペイロード234に適合するユーザキー238もまた作成することができ、ユーザ222が、1つまたは複数のFPGA244を管理するコントローラ242と通信する仮想マシンおよび/または準仮想化ドライバを開始できるようにする。FPGA設計236および管理ペイロード234と共にアップロードされたデータはまた、ユーザ仕様のハードウェアアクセラレータ240を含むことができる。図3は、本明細書で述べる少なくともいくつかの実施形態により構成された、サービスとしてのICを提供するシステムの主要コンポーネント間の対話を示している。図3の図表300で示された例示的なシナリオによれば、ユーザ322は、FPGA設計336をサービスとしての集積回路ICaaSマネジャ356に送達する。ICaaSマネジャ356は、FPGAへのアクセスをユーザに有効にレンタルするデータセンタの1つまたは複数のアプリケーションもしくはサービスとすることができる。ICaaSマネジャ356は、FPGA設計336に管理ペイロード334を付加することができる。管理ペイロード334は、ユーザ識別を保証し、かつ請求およびプロビジョニングのために望ましい適切なメトリック複数可を用いて、FPGAモジュールの使用量を追跡するために、メッセージインターフェースを管理することができる。例えば、展開された時間および消費電力の組合せを、請求メトリックとして使用することができる。ICaaSマネジャ356はまた、管理ペイロード334に適合できるICaaSユーザキー338を生成することができる。ユーザ322は、次いで、ICaaSユーザキー338のコピーを用いて、準仮想化ドライバ340を備えるデータセンタの仮想マシン352を開始することができ、したがって、ユーザの仮想マシンは、複数のFPGAを管理するFPGAボード354と通信することができ、かつユーザ仕様のアップロードされたハードウェアアクセラレータを使用することができる。仮想マシンおよび準仮想化ドライバ、ネットワーク接続、メッセージング、または他のFPGA相互接続手段は、データセンタにおける仮想マシンホスト350によりホストされうる。ペイロードをFPGA中にイメージコピーすることは、コンパイルするステップを含む。ICaaSサービスを管理するために、管理ペイロード334は、コンパイルする前にペイロードに追加され、最終設計に存在する回路を有効に追加する。ペイロードは、コンパイル前レイヤに追加されるので、広くアクセスすることができるが、FPGAコンパイルのゲートレベルの性質のため、適正に設計された管理ペイロードは、データを損なうプログラム実行可能な空間も、混乱させる共同メモリ操作もないので、ユーザ設計機能と干渉する危険を冒すことはない。管理ペイロードは固定された数のゲートを消費し、それをユーザ322に利用可能な容量から除くことができる。いくつかの例では、管理ペイロード334は、単に、コンパイルの後に全体のペイロードが開始されると直ちに時間を記録するクロックとすることができる。このようなクロックは、次いで、ユーザがFPGAの使用を終了したとき、管理メッセージに応じて、経過時間を報告することができる。他の例では、管理ペイロード334は、入力/出力I/Oポートに常駐し、フォーマットに従っていること、および/またはアクセスがICaaSユーザキー338を用いて行われていることを保証することができる。機能をハードウェアで実施することにより、このような監視任務に対するどんな潜在的な遅延も実質的に回避することができる。さらなる例では、管理ペイロード334は、請求のためにポートを監視することができる。例えば、FPGAが、ストレージバスに直接アクセスすることができる場合、バスを監視して、その活動を請求のために集計することができる。準仮想化ドライバ340は、ハードウェアアクセスを仮想マシンへと抽象化するために使用することができる。いくつかの実施形態によるシステムでは、準仮想化ドライバ340は、例えば、FPGAボード354に接続されたPCIバスへの所有権が検証されたアクセスを提供することができる。いくつかの実施形態では、FPGAボード354は、ネットワークアクセスに対して、直接接続された仮想マシンを介するように要求することにより、セキュリティのために、ネットワークに直接接続されないようにする。他の実施形態では、FPGAボード354は、適切なセキュリティ手段を有するネットワークに直接接続することができる。例えば、データセンタは、信頼できる顧客または証明されたペイロードに対して、あるいは顧客が他のものに影響を与えることのできないハードウェアベースの仮想プライベートデータセンタ内で、直接アクセスを可能にすることを選択できる。図1から図3における特定の例、コンポーネント、および構成を用いて、諸実施形態を上記で論じてきたが、それらは、サービスとしての集積回路を提供するために使用される概略的なガイドラインを提供するように意図されている。これらの例は、実施形態に対する限定を構成するものではなく、本明細書で述べた原理を使用し、他のコンポーネント、モジュール、および構成を用いて実施することができる。例えば、FPGAだけではなく、任意の適切な集積回路へのアクセスを、サービスとして提供することができる。他の例によれば、管理ペイロードを、FPGA複数可と、アクセスサービスを提供するデータセンタの残りの部分との間のファイアウォールで実施することができる。管理ペイロードを実施するファイアウォール、または任意の同等コンポーネントは、ハードウェア、ソフトウェア、またはその2つの組合せとして実現することができる。さらに、上記で論じたアクションは、様々な順序で、特に飛び越して行うことができる。図4は、本明細書で述べる少なくともいくつかの実施形態に従って構成された、サービスとしてのICを提供するシステムを管理するために使用できる汎用コンピューティングデバイスを示している。非常に基本的な構成402では、コンピューティングデバイス400は、通常、1つまたは複数のプロセッサ404、およびシステムメモリ406を含む。メモリバス408は、プロセッサ404とシステムメモリ406の間を通信するために使用することができる。望ましい構成に応じて、プロセッサ404は、これだけに限らないが、マイクロプロセッサμP、マイクロコントローラμC、デジタルシグナルプロセッサDSP、またはそれらの任意の組合せを含む任意のタイプとすることができる。プロセッサ404は、レベルキャッシュメモリ412など、1つまたは複数レベルのキャッシング、プロセッサコア414、およびレジスタ416を含むことができる。例示的なプロセッサコア414は、論理演算装置ALU、浮動少数点演算ユニットFPU、デジタルシグナル処理コアDSPコア、またはそれらの任意の組合せを含むことができる。例示的なメモリコントローラ418はまた、プロセッサ404と共に使用することができるが、あるいはいくつかの実装形態では、メモリコントローラ418は、プロセッサ404の内側部分とすることができる。望ましい構成に応じて、システムメモリ406は、これだけに限らないが、揮発性メモリRAMなど、不揮発性メモリROM、フラッシュメモリなど、またはそれらの任意の組合せを含む任意のタイプとすることができる。システムメモリ406は、オペレーティングシステム420、1つまたは複数のアプリケーション422、およびプログラムデータ424を含むことができる。アプリケーション422は、データセンタ管理モジュール423、追加のサービスモジュール425、およびFPGA制御モジュール427を含むことができ、それは、共用のFPGA使用のためのプロビジョニング管理、およびユーザ仕様にプログラムされたFPGAにユーザのプロセスがアクセスできるようにするためのアクセス制御を可能にすることができ、本明細書で述べるデータセンタサーバと通信するFPGAに向けてコンパイルするためのユーザパッケージを受け取ることができる。プログラムデータ424は、データの中でも特に、クライアントにサービスとしての集積回路の使用を提供することに関連付けられた制御パラメータ428を含むことができる。ここで述べた基本構成402は、内側の破線内のコンポーネントにより図4で示されている。コンピューティングデバイス400は、基本構成402と任意の必要なデバイスおよびインターフェースとの間の通信を容易にするためのさらなる特徴または機能、およびさらなるインターフェースを有することができる。例えば、バス/インターフェースコントローラ430は、ストレージインターフェースバス434を介して、基本構成402と、1つまたは複数のデータ記憶装置432との間の通信を容易にするために使用することができる。データ記憶装置432は、取外し式記憶装置436、非取外し式記憶装置438、またはそれらの組合せとすることができる。取外し式記憶装置および非取外し式記憶装置の例は、そのいくつかを挙げると、フレキシブルなディスクドライブおよびハードディスクドライブHDDなどの磁気ディスク装置、コンパクトディスクCDドライブまたはデジタル多用途ディスクDVDドライブなどの光ディスクドライブ、半導体ドライブSSD、およびテープドライブを含む。例示的なコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実装される揮発性および不揮発性、取外し式および非取外し式媒体を含むことができる。システムメモリ406、取外し式記憶装置436、および非取外し式記憶装置438は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、これだけに限らないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD-ROM、デジタル多用途ディスクDVD、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは所望の情報を記憶するために使用でき、かつコンピューティングデバイス400がアクセスできる任意の他の媒体を含む。このようなコンピュータ記憶媒体はどれも、コンピューティングデバイス400の一部とすることができる。コンピューティングデバイス400はまた、バス/インターフェースコントローラ430を介して、様々なインターフェースデバイス例えば、出力装置442、周辺インターフェース444、および通信装置446から、基本構成402への通信を容易にするためのインターフェースバス440を含むことができる。いくつかの例示的な出力装置442は、グラフィック処理ユニット448およびオーディオ処理ユニット450を含み、それは、1つまたは複数のA/Vポート452を介してディスプレイまたはスピーカなどの様々な外部装置に伝達するように構成することができる。例示的な周辺インターフェース444は、シリアルインターフェースコントローラ454またはパラレルインターフェースコントローラ456を含み、それは、1つまたは複数のI/Oポート458を介して、入力装置例えば、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などまたは他の周辺装置例えば、プリンタ、スキャナなどなどの外部装置と通信するように構成することができる。例示的な通信装置446は、ネットワークコントローラ460を含み、それは、1つまたは複数の通信ポート464を経由し、ネットワーク通信リンクを介して、1つまたは複数の他のコンピューティングデバイス462との通信を容易にするように構成することができる。ネットワーク通信リンクは、通信媒体の一例とすることができる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他のトランスポート機構などの変調されたデータ信号における他のデータにより実施することができ、また任意の情報送達媒体を含むことができる。変調されたデータ信号とは、情報を信号中で符号化するようにその特性の1つまたは複数が設定または変更された信号とすることができる。例として、限定するものではないが、通信媒体は、有線ネットワークもしくは直接の有線接続などの有線媒体、ならびに音響、高周波RF、マイクロ波、赤外線IRなどの無線媒体、および他の無線媒体を含むことができる。本明細書で使用される場合、コンピュータ可読媒体という用語は、記憶媒体と通信媒体を共に含むことができる。コンピューティングデバイス400は、汎用もしくは専用サーバ、メインフレーム、または上記の機能のいずれかを含む同様のコンピュータの一部として実装することができる。コンピューティングデバイス400はまた、ラップトップコンピュータと非ラップトップコンピュータ構成を共に含むパーソナルコンピュータとして実施することもできる。例示的な実施形態はまた、方法を含むことができる。これらの方法は、本明細書で述べられた構造を含む任意の数の方法で実施することができる。1つのこのような方法は、本開示で述べたタイプのデバイスのマシン操作によるものである。他の任意選択の方法は、1人または複数の人間の操作者が操作のうちのいくつかを実施し、他の操作は、マシンにより実施されることに関連して、方法の個々の操作の1つまたは複数が実施されることである。これらの人間の操作者は、互いに並べて配置される必要はなく、それぞれは、プログラムの一部を実施するマシンと共にいるだけでよい。他の例では、人との対話は、マシンで自動化された事前選択される基準などにより自動化することができる。図5は、本明細書で述べる少なくともいくつかの実施形態により構成された、図4の装置などのコンピューティングデバイスにより実施できるサービスとしてのICを提供するための例示的な方法を示す流れ図である。例示的な方法は、ブロック522、524、526、528、および/または530のうちの1つまたは複数のものにより示された1つまたは複数の操作、機能、またはアクションを含むことができる。ブロック522から530に記載の操作はまた、コンピューティングデバイス510のコンピュータ可読媒体520など、コンピュータ可読媒体に、コンピュータ実行可能命令として記憶することができる。サービスとしての集積回路FPGAにアクセスを提供する、またはそのためのプロセスは、ブロック522でFPGA設計を受け取るを開始することができる。ブロック522で、データセンタ管理サーバは、図2のユーザ222から、設計パッケージ224などユーザからのFPGA設計パッケージを受け取ることができる。データセンタ管理サーバは、ユーザ222の認証、請求追跡の初期化、複数のユーザ間のプロビジョン管理など、さらなるタスクをさらに行うことができる。ブロック522の後に、ブロック524の管理ペイロードを付加するを行うことができる。ブロック524で、図2の管理ペイロード234は、FPGAに向けてコンパイルする前に、設計パッケージ224に追加することができる。管理ペイロード234は、FPGAへのユーザアクセス、請求追跡、および互換性例えば、適切なフォーマットに従っていることを確認するなどを監視するために必要な機能を提供することができる。ブロック524の後に、ブロック526のユーザキーを作成するを行うことができる。ブロック526で、図2のユーザキー238などのユーザキーを作成することができる。ユーザキー238は、管理ペイロード234に適合しており、かつユーザに、FPGAにアクセスするために仮想マシン複数可を開始できるようにする。ブロック526の後に、ブロック528のユーザに仮想マシン/準仮想化ドライバを開始できるようにするを行うことができる。ブロック528で、図3の1つまたは複数の仮想マシン352などの仮想マシンおよび準仮想化ドライバ340をユーザキーで開始して、ユーザの設計をFPGAに伝達することができる。準仮想化ドライバ340は、ハードウェアアクセスを仮想マシン352へと抽象化するために使用することができる。ブロック528の後に、ブロック530のユーザ設計をFPGAにアップロードできるようにするを行うことができる。ブロック530で、ユーザの設計パッケージは、仮想マシンを介してFPGAにアップロードすることができ、計算結果がユーザに返される。上記で述べたプロセス中のブロックで行われる機能は例示目的のものである。サービスとしての集積回路を提供することは、より少ない機能、またはさらなる機能を有する同様のプロセスで実施することができる。いくつかの例では、機能は、異なる順序で実施することができる。いくつかの他の例では、様々な機能を除くことができる。さらに他の例では、様々な機能をさらなる機能に分割することができ、あるいは、より少ない機能へと共に組み合わせることもできる。図6は、本明細書で述べる少なくともいくつかの実施形態により構成された、例示的なコンピュータプログラム製品のブロック図を示す。いくつかの例では、図6で示すようにコンピュータプログラム製品600は、例えば、プロセッサにより実行されたとき、図4に関して上記で述べた機能を提供できるマシン可読命令604も含むことのできる信号伝達媒体602を含むことができる。したがって、例えば、プロセッサ404、データセンタ管理モジュール423、追加のサービスモジュール425、およびFPGA制御モジュール427を参照することは、媒体602によりプロセッサ504に伝達された命令604に応じて、図6で示すタスクのうちの1つまたは複数のものを行うことができ、ユーザのFPGA設計を受け取ること、管理ペイロードを付加してユーザキーを作成すること、ユーザに仮想マシンを開始できるようにすること、および仮想マシンに、設計をFPGAにアップロードできるようにすることに関連するアクションを実施する。いくつかの実施形態では、図6で示す信号伝達媒体602は、これだけに限らないが、ハードディスクドライブ、コンパクトディスクCD、デジタル多用途ディスクDVD、デジタルテープ、メモリなど、コンピュータ可読媒体606を含むことができる。いくつかの実施形態では、信号伝達媒体602は、これだけに限らないが、メモリ、読取り/書込みR/WCD、R/WDVDなどの記録可能な媒体608を含むことができる。いくつかの実施形態では、信号伝達媒体602は、これだけに限らないが、デジタル通信媒体および/またはアナログ通信媒体例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど、通信媒体610を含むことができる。したがって、例えば、プログラム製品600を、RF信号伝達媒体によりプロセッサ404の1つまたは複数のモジュールに伝達することができ、その場合、信号伝達媒体602は、無線通信媒体610例えば、IEEE802.11規格に準拠する無線通信媒体により伝達される。いくつかの例によれば、サービスとしてプログラム可能な集積回路ICを提供するための方法は、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、IC設計パッケージに管理ペイロードを付加すること、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成すること、およびユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することを含むことができる。プログラム可能なICは、フィールドプログラマブルゲートアレイFPGAとすることができ、また方法は、設計パッケージをコンパイルする前に、管理ペイロードを付加することをさらに含むことができ、コンパイルは、最終設計のために回路を追加する。方法はまた、メッセージングインターフェースを介して、サーバ機能をデータセンタからFPGAに接続することを含む。メッセージングインターフェースは、ネットワークインターフェース、または周辺コンピュータ相互接続PCIインターフェースとすることができる。方法はまた、ユーザキーのコピーを用いて、1つまたは複数の準仮想化ドライバを備える1つまたは複数の仮想マシンを開始できるようにし、その場合、準仮想化ドライバは、FPGAへの所有権が検証されたアクセスを提供する。方法は、FPGAにおける受け取った設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つを提供することをさらに含むことができる。FPGAへの直接ネットワークアクセスが、信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザのうちの1つに提供されうる。設計パッケージは、付加された管理ペイロードと共にFPGAにイメージコピーされうる。管理ペイロードは、ユーザ識別を保証するためにFPGAに対するメッセージングインターフェースを管理することができ、かつ事前に規定された請求メトリックに基づいてFPGAの使用量を追跡するが、請求メトリックは、展開された時間および/または消費電力の1つまたは複数のものに基づくことができる。1つまたは複数の仮想マシンは、ユーザキーを用いてFPGAと通信し、かつIC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用することができる。さらに、設計パッケージを処理するマネジャは、固定された数のゲートを消費することができ、それらのゲートは、ユーザにとって利用可能な容量から除外することができる。いくつかの例では、管理ペイロードは、ペイロード全体のコンパイルの開始以降の時間を記録し、かつユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックとすることができる。他の例では、管理ペイロードは、I/Oポートに常駐し、フォーマットに従っていること、および/またはアクセス制御が、ユーザキーを用いて行われていることを保証することができる。管理ペイロードはまた、確実にポートが監視され、かつ接続活動が請求のために集計されるようにすることができる。他の例によれば、サービスとしてプログラム可能な集積回路ICを提供するデータセンタは、管理サーバを含むことができ、管理サーバは、データセンタで、プログラム可能な集積回路設計パッケージを受け取り、IC設計パッケージに管理ペイロードを付加し、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成し、かつユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することができる。プログラム可能なICは、フィールドプログラマブルゲートアレイFPGAとすることができ、また管理サーバは、設計パッケージをコンパイルする前に、管理ペイロードをさらに付加することができ、コンパイルは、最終設計のために回路を追加する。管理サーバはまた、メッセージングインターフェースを介して、サーバ機能をデータセンタからFPGAに接続することができる。メッセージングインターフェースは、ネットワークインターフェース、または周辺コンピュータ相互接続PCIインターフェースとすることができる。管理サーバはまた、ユーザキーのコピーを用いて、1つまたは複数の準仮想化ドライバを備える1つまたは複数の仮想マシンを開始できるようにし、その場合、準仮想化ドライバは、FPGAへの所有権が検証されたアクセスを提供する。管理サーバは、FPGAにおいて受け取った設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つをさらに提供することができる。FPGAへの直接ネットワークアクセスが、信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザのうちの1つに提供されうる。設計パッケージは、付加された管理ペイロードと共にFPGAにイメージコピーされうる。管理ペイロードは、ユーザ識別を保証するためにFPGAに対するメッセージングインターフェースを管理することができ、かつ事前に規定された請求メトリックに基づいてFPGAの使用量を追跡するが、請求メトリックは、展開された時間および/または消費電力の1つまたは複数のものに基づくことができる。1つまたは複数の仮想マシンは、ユーザキーを用いてFPGAと通信し、かつIC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用することができる。さらに、設計パッケージを処理するマネジャは、固定された数のゲートを消費することができ、それらのゲートは、ユーザにとって利用可能な容量から除外することができる。いくつかの例では、管理ペイロードは、ペイロード全体のコンパイルの開始以降の時間を記録し、かつユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックとすることができる。他の例では、管理ペイロードは、I/Oポートに常駐し、フォーマットに従っていること、および/またはアクセス制御が、ユーザキーを用いて行われていることを保証することができる。管理ペイロードはまた、確実にポートが監視され、かつ接続活動が請求のために集計されるようにすることができる。他の例によれば、コンピュータ可読記憶媒体は、サービスとしてプログラム可能な集積回路ICを提供するための記憶された命令を含むことができる。命令は、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、IC設計パッケージに管理ペイロードを付加すること、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成すること、およびユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することを含むことができる。プログラム可能なICは、フィールドプログラマブルゲートアレイFPGAとすることができ、また命令は、設計パッケージをコンパイルする前に管理ペイロードを付加することをさらに含むことができ、コンパイルは、最終設計のために回路を追加する。命令はまた、メッセージングインターフェースを介して、サーバ機能をデータセンタからFPGAに接続することを含むことができる。メッセージングインターフェースは、ネットワークインターフェース、または周辺コンピュータ相互接続PCIインターフェースとすることができる。命令はまた、ユーザキーのコピーを用いて、1つまたは複数の準仮想化ドライバを備える1つまたは複数の仮想マシンを開始できるようにすることを含むことができ、その場合、準仮想化ドライバは、FPGAへの所有権が検証されたアクセスを提供する。命令は、FPGAおいて受け取った設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つを提供することをさらに含むことができる。FPGAへの通信アクセスが、信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザのうちの1つに提供されうる。設計パッケージは、付加された管理ペイロードと共にFPGAにイメージコピーされうる。管理ペイロードは、ユーザ識別を保証するためにFPGAに対するメッセージングインターフェースを管理することができ、かつ事前に規定された請求メトリックに基づいてFPGAの使用量を追跡するが、請求メトリックは、展開された時間および/または消費電力の1つまたは複数のものに基づくことができる。1つまたは複数の仮想マシンは、ユーザキーを用いてFPGAと通信し、かつIC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用することができる。さらに、設計パッケージを処理するマネジャは、固定された数のゲートを消費することができ、それらのゲートは、ユーザにとって利用可能な容量から除外することができる。いくつかの例では、管理ペイロードは、ペイロード全体のコンパイルの開始以降の時間を記録し、かつユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックとすることができる。他の例では、管理ペイロードは、I/Oポートに常駐し、フォーマットに従っていること、および/またはアクセス制御が、ユーザキーを用いて行われていることを保証することができる。管理ペイロードはまた、確実にポートが監視され、かつ接続活動が請求のために集計されるようにすることができる。システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般にいつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点でコスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術をもたらすことができる様々な達成手段があり例えば、ハードウェア、ソフトウェア、および/またはファームウェア、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なる。例えば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組合せを選択することができる。前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスの様々な実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組合せにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、デジタルシグナルプロセッサDSP、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして例えば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして例えば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして、ファームウェアとして、あるいは実質上それらの任意の組合せとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。本開示は、様々な態様を例示するように意図された、本出願で述べられた特定の実施形態によって限定されない。当業者には明らかであろうが、本出願の趣旨および範囲から逸脱することなく、多くの変更および変形を行うことが可能である。本明細書で列挙されたものに加えて、本開示の範囲に含まれる機能的に均等な方法および装置は、前述の記述から、当業者には明らかであろう。このような変更および変形は、添付の特許請求の範囲に含まれるように意図されている。本開示は、このような特許請求の範囲が権利を有する均等な形態の全範囲と併せて、添付の特許請求の範囲によってのみ限定されるべきである。本開示は、当然であるが変化しうる特定の方法、試薬、化合物の組成、または生体系に限定されないことを理解されたい。本明細書で使用される専門用語は、特定の実施形態だけを記述するためのものであり、限定することを意図していないこともまた理解されたい。さらに、本明細書に記載された主題のメカニズムを様々な形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピーディスク、ハードディスクドライブ、コンパクトディスクCD、デジタル多用途ディスクDVD、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなどの通信タイプの媒体が含まれるが、それらには限定されない。本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム例えば、ガントリーシステムの位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータを含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、様々なコンポーネントをしばしば例示しており、これらのコンポーネントは、他の様々なコンポーネントに包含されるか、または他の様々なコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示に過ぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に関連付けされる。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに関連付けされていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに動作可能に接続または動作可能に結合されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに動作可能に結合できると見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。様々な単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。通常、本明細書において、特に添付の特許請求の範囲たとえば、添付の特許請求の範囲の本体部において使用される用語は、全体を通じてオープンなopen用語として意図されていることが、当業者には理解されよう例えば、用語含むincludingは、含むがそれに限定されないincludingbutnotlimitedtoと解釈されるべきであり、用語有するhavingは、少なくとも有するhavingatleastと解釈されるべきであり、用語含むincludesは、含むがそれに限定されないincludesbutisnotlimitedtoと解釈されるべきである、など。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。例えば、理解の一助として、添付の特許請求の範囲は、導入句少なくとも1つのatleastoneおよび1つまたは複数のoneormoreを使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句1つまたは複数のまたは少なくとも1つのおよびaまたはanなどの不定冠詞を含む場合であっても、不定冠詞aまたはanによる請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない例えば、aおよび/またはanは、少なくとも1つのまたは1つまたは複数のを意味すると解釈されるべきである。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう例えば、他の修飾語なしでの2つの記載tworecitationsの単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する。さらに、A、BおよびC、などの少なくとも1つに類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている例えば、A、B、およびCの少なくとも1つを有するシステムは、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方oneoftheterms、当該用語のいずれかeitheroftheterms、または両方の用語bothtermsを含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。例えば、句AまたはBは、AまたはBあるいはAおよびBの可能性を含むことが理解されよう。さらに、本開示の特徴または態様が、マーカッシュ群に関して記述される場合、当業者であれば、本開示はまた、それにより、マーカッシュ群の任意の個々の構成要素、または構成要素の下位の群により記述されることが理解されよう。当業者であれば理解されるように、記述を提供することなど、任意のかつすべての目的に関して、本明細書で開示されるすべての範囲はまた、任意の、かつすべての可能な下位の範囲、およびその下位の範囲の組合せを包含する。いずれの列挙された範囲も十分に説明されており、かつその範囲が少なくとも等しい半分、3分の1、4分の1、5分の1、10分の1などへと分解可能であることが容易に理解できるはずである。非限定的な例として、本明細書で論ずる各範囲は、下側3分の1、中央3分の1、および上側3分の1などへと容易に分解することができる。当業者であればまた理解されるように、最高で~まで、少なくとも、を超える、より少ないなどのすべての言語は、記載された数を含み、その後に続いて、上記で論じた下位の範囲へと分解できる範囲を指す。最後に、当業者であれば理解されるように、範囲は個々の構成要素を含む。したがって、例えば、1~3個のセルを有する群は、1、2、または3個のセルを有する群を指す。同様に、1~5個のセルを有する群は、1、2、3、4、または5個のセルを有する群を指し、以下同様である。様々な態様および実施形態が本明細書で開示されてきたが、他の態様および実施形態も当業者には明らかであろう。本明細書で開示された様々な態様および実施形態は、例示のためのものであり、限定することは意図されておらず、真の範囲および趣旨は、添付の特許請求の範囲によって示される。