IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌビディア コーポレーションの特許一覧

特開2022-60152エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録
<>
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図1
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図2
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図3
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図4
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図5
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図6
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図7
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図8
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図9
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図10
  • 特開-エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022060152
(43)【公開日】2022-04-14
(54)【発明の名称】エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録
(51)【国際特許分類】
   H04L 9/08 20060101AFI20220407BHJP
   G06F 21/44 20130101ALI20220407BHJP
【FI】
H04L9/00 601B
H04L9/00 601F
G06F21/44
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021113368
(22)【出願日】2021-07-08
(31)【優先権主張番号】17/062,348
(32)【優先日】2020-10-02
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
2.BLUETOOTH
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】特許業務法人浅村特許事務所
(72)【発明者】
【氏名】ダニエル メジャー
(72)【発明者】
【氏名】マーク オーバビー
(57)【要約】
【課題】マネージャ・システムによるデバイスのゼロタッチ登録を可能にすること。
【解決手段】デバイスは起動時、関連するマネージャに関する情報について中央ディレクトリ・サービスCDSに連絡し得る。CDSは、要求に含まれるデバイス情報を使用してデバイスを認証し、それに応じてチャレンジ・トークンをデバイスに送信し得る。チャレンジ・トークンは、認証されたデバイスによってのみ復号できるべきである複数のセキュリティ層によって保護された、マネージャに関する情報を含み得る。デバイスは、このチャレンジ・トークンを復号してマネージャ情報を特定し、このチャレンジ・トークンをベアラ・トークンに変換し得る。次いで、デバイスは、ベアラ・トークンを含む要求を、特定されたマネージャに送信し、マネージャはこのトークンを使用して、デバイスを認証し得る。次いで、マネージャは、デバイスに適切な構成情報を送信し得る。
【選択図】図1
【特許請求の範囲】
【請求項1】
デバイスにおいて第1の要求に応答して、1つ又は複数の暗号化層を有するチャレンジ・トークンを受信するステップと、
前記デバイスによって、少なくとも宛先を含む情報にアクセスするために前記チャレンジ・トークンを復号するステップと、
前記復号されたチャレンジ・トークンを、前記デバイスのセキュア鍵を用いて保護されたベアラ・トークンに変換するステップと、
前記ベアラ・トークンを含む第2の要求を、前記チャレンジ・トークンで指定された前記宛先に送信するステップであって、前記ベアラ・トークンが、前記要求の受信者が前記デバイスを認証し、構成情報を前記デバイスに提供することを可能にする、ステップと
を含む方法。
【請求項2】
前記チャレンジ・トークンが、複数のデバイスの連絡先情報を格納する信頼できる機関から受信され、前記連絡先情報が、前記複数のデバイスのサブセットに関連付けられた1つ又は複数のマネージャ・システムを含む1人又は複数人の受信者のアドレス及び識別情報を指定する、請求項1に記載の方法。
【請求項3】
前記信頼できる機関が、前記第1の要求に含まれるデバイス識別子を使用して前記デバイスを認証することが可能であり、前記デバイス識別子が、前記宛先に対応する前記マネージャ・システムのうちの1つにマッピングされる、請求項2に記載の方法。
【請求項4】
前記チャレンジ・トークンが、前記デバイス用のデバイス識別子、マネージャ・システムのアドレス情報、マネージャ・システムの識別子、トークンの有効期限、前記デバイス用の前記セキュア鍵、及びランダムに生成されたナンスのうちの1つ又は複数を含む、請求項1に記載の方法。
【請求項5】
前記チャレンジ・トークンの前記1つ又は複数の暗号化層が、前記チャレンジ・トークンを生成する信頼できる機関のデジタル署名、前記デバイス用の自己生成セキュア鍵を使用した暗号化、又は前記デバイス用の永続的なセキュア鍵を使用した暗号化のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項6】
前記ベアラ・トークンが、前記復号されたチャレンジ・トークンに含まれていた添付のナンスを有する前記復号されたチャレンジ・トークンを含み、前記ベアラ・トークンが、前記デバイス用に自己生成セキュア鍵を用いて署名される、請求項1に記載の方法。
【請求項7】
前記受信者が、前記デバイスに関連付けられたマネージャ・システムであり、前記ベアラ・トークンによって、前記マネージャ・システムが、前記構成情報を特定し、前記構成情報を前記デバイスに提供して、前記デバイスが所期の目的で動作することを可能にすることが可能になる、請求項1に記載の方法。
【請求項8】
前記マネージャ・システムが、信頼できる機関と直接通信することなく、前記チャレンジ・トークンを生成した前記信頼できる機関による前記デバイスの認証を検証することが可能である、請求項7に記載の方法。
【請求項9】
前記デバイスが、前記マネージャ・システムに対して認証され、前記マネージャ・システムへの単一の要求のみを使用するとともに前記マネージャ・システムから単一の応答のみを受信して、前記構成情報を受信することができる、請求項8に記載の方法。
【請求項10】
前記構成情報が前記デバイスに記憶されていない場合、前記デバイスの初期起動時に前記第1の要求を送信するステップをさらに含む、請求項1に記載の方法。
【請求項11】
デバイスであって、
プロセッサと、
前記プロセッサによって実行されると、前記デバイスに、
登録要求に応答して、1つ又は複数の暗号化層を有するチャレンジ・トークンを受信すること、
前記チャレンジ・トークンを復号して、マネージャ・システムに関する情報にアクセスすること、
前記復号されたチャレンジ・トークンを、前記デバイスのセキュア鍵を用いて保護されたベアラ・トークンに変換すること、及び
構成情報を求める第2の要求を前記マネージャ・システムに送信することであって、前記第2の要求が、前記マネージャ・システムが前記デバイスを認証して前記構成情報を提供できるようにするための前記ベアラ・トークンを含む、送信すること
を行わせる命令を含む、メモリと
を備える、デバイス。
【請求項12】
前記チャレンジ・トークンが、複数のデバイスの連絡先情報を格納する信頼できる機関から受信され、前記連絡先情報が、前記複数のデバイスのサブセットに関連付けられた1つ又は複数のマネージャ・システムのアドレス及び識別情報を指定する、請求項11に記載のデバイス。
【請求項13】
前記チャレンジ・トークンの前記1つ又は複数の暗号化層が、前記チャレンジ・トークンを生成する前記信頼できる機関のデジタル署名、前記デバイス用の自己生成セキュア鍵を使用した暗号化、又は前記デバイス用の永続的なセキュア鍵を使用した暗号化のうちの少なくとも1つを含む、請求項12に記載のデバイス。
【請求項14】
前記ベアラ・トークン内の情報によって、前記マネージャ・システムが、前記構成情報を特定し、前記構成情報を前記デバイスに提供して、前記デバイスが所期の目的で動作することを可能にすることが可能になる、請求項11に記載のデバイス。
【請求項15】
前記マネージャ・システムが、信頼できる機関と直接通信することなく、前記チャレンジ・トークンを生成した前記信頼できる機関による前記デバイスの認証を検証することが可能である、請求項11に記載のデバイス。
【請求項16】
デバイスからマネージャ・システムへ、要求を受信するステップであって、前記要求が、前記デバイスによってデジタル署名されたベアラ・トークンを含む、ステップと、
前記ベアラ・トークンから、前記デバイスに関する第1の識別情報、及び前記デバイスを認証した信頼できる機関に関する第2の識別情報を特定するステップであって、前記第1の識別情報及び第2の識別情報が、前記信頼できる機関によって発行されて前記デバイスによって復号されたチャレンジ・トークンに含まれている、ステップと、
少なくとも前記第1の識別情報及び前記第2の識別情報を使用して前記デバイスを認証するステップと、
前記デバイスに関する構成情報を特定するステップと、
前記構成情報を前記デバイスに送信するステップであって、前記デバイスが、所期の目的で動作することが可能になる、ステップと
を含む方法。
【請求項17】
前記構成情報を前記デバイスに送信する前に、前記ベアラ・トークンから、前記マネージャ・システムに関する第3の識別情報を検証するステップをさらに含む、請求項16に記載の方法。
【請求項18】
前記ベアラ・トークンのデジタル署名が、前記チャレンジ・トークンを暗号化するために使用された前記デバイスの永続的な鍵とは異なる、前記デバイスの自己生成セキュア鍵に対応する、請求項16に記載の方法。
【請求項19】
前記ベアラ・トークンによって、前記マネージャ・システムが、前記信頼できる機関と直接通信することなく、前記チャレンジ・トークンを生成した前記信頼できる機関による前記デバイスの認証を検証することが可能になる、請求項16に記載の方法。
【請求項20】
前記デバイスが、前記マネージャ・システムに対して認証され、単一の要求のみを使用するとともに前記マネージャ・システムから単一の応答のみを受信して、前記構成情報を受信することができる、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録に関する。
【背景技術】
【0002】
インターネットなどのネットワークを介して他のデバイス又はシステムと接続及びデータを交換するために、ますます多くの多様なデバイスが構成されている。これらのデバイスは、多くの場合、モノのインターネット(「IoT:Internet of Thing」)デバイスと呼ばれ、通信すべき他のデバイス又はシステムを位置特定又は識別できる必要がある。しかしながら、これらのデバイスは、複数のエンティティに販売されるか又は多種多様な外部システムに関連付けられる可能性があるので、これらのデバイスは通常、それらのデバイスにそれらの情報をすでに記憶された状態では生産されておらず、その結果、デバイスは、これらの他のデバイス又はシステムに関する情報を取得するか又は提供されなければならない。特定のエンティティ用の多くのデバイスを含み得るこれらのデバイスを手動でプログラム又は構成する必要をなくすために、様々な「ゼロタッチ」手法が利用されており、それによって、これらのデバイスは手動の介入なしにこの情報を自動的に取得することができる。しかしながら、従来の手法では中央機関とデバイス・マネージャと間の直接通信が必要であり、他のデバイス又はエンティティにデバイス・マネージャの位置を公開するので、不要なセキュリティ・リスクが生じるという点など、これらの従来の手法には様々な問題があり、特定のシステム又は使用法にとっては、従来の手法が望ましくないものになる可能性がある。さらに、従来の手法では、各デバイスと対応する中央機関との間のマルチトリップ通信チャレンジ・レスポンスが必要であり、これにより、これらの手法のトラフィック及び複雑さが大幅に増加する。
【発明の概要】
【課題を解決するための手段】
【0003】
図面を参照しながら、本開示による様々な実施例を説明する。
【図面の簡単な説明】
【0004】
図1】少なくとも一実施例による、デバイス・マネージャを識別するためのアーキテクチャを示す図である。
図2】少なくとも一実施例により利用され得る、例示的なトークンを示す図である。
図3】少なくとも一実施例による、マネージャを識別してデバイスに関する構成情報を提供するためのプロセスを示す図である。
図4】少なくとも一実施例による、デバイス用のチャレンジ・トークンを生成するためのプロセスを示す図である。
図5】少なくとも一実施例による、チャレンジ・トークンをベアラ・トークンに変換するためのプロセスを示す図である。
図6】少なくとも一実施例による、ベアラ・トークンを使用してデバイスを検証し、デバイスの構成情報を提供するためのプロセスを示す図である。
図7】少なくとも一実施例による、例示的なデータ・センタ・システムを示す図である。
図8】少なくとも一実施例による、コンピュータ・システムを示す図である。
図9】少なくとも一実施例による、コンピュータ・システムを示す図である。
図10】1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
図11】1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【発明を実施するための形態】
【0005】
様々な実施例による手法は、有利な署名及び暗号化構造を用いた1つ又は複数のトークンベースの手法を利用することによって、これら及び他の欠陥を克服する。少なくとも一実施例では、初期起動を受けるデバイスは、中央機関、又はそのデバイスが情報を取得することができ、アドレス若しくは宛先がこのデバイスに記憶されている他のエンティティ、システム、又はサービスに、情報要求を送信することができる。次いで、中央機関は、デバイスが認識された場合、そのデバイスに固有のチャレンジ・トークンを生成して送信することができる。チャレンジ・トークンは、そのチャレンジ・トークンをそのデバイスによって復号及び検証できるようにする1つ又は複数のセキュリティ・メカニズム(たとえば、特定の鍵又はデジタル署名を用いた暗号化)を含むことができる。次いで、デバイスは、復号されたバージョンのチャレンジ・トークンにデジタル署名することなどによって、中央機関からのこのチャレンジ・トークンを偽造不可能なベアラ・トークンに変換することができる。次いで、デバイスは、デバイスの所期のタスクのためにデバイスに関する構成情報を提供できるデバイス・マネージャ又はそのデバイスに関連付けられた他のエンティティ、システム、若しくはサービスに、このベアラ・トークンを提示することができる。デバイス・マネージャは、ベアラ・トークンを利用してデバイスを検証し、次いで、デバイスにそれぞれの構成データを送信することができる。次いで、デバイスは、起動が完了した後、この構成情報を利用して、デバイスの所期のタスクを実行することができる。こうした手法により、マネージャは、中央ディレクトリ・サービス(CDS:central directory service)と様々なマネージャとの間の直接通信を一切することなく、CDSなどの中央機関からの情報を使用して、デバイスを認証することができる。デバイスとCDSとの間のトリップが1つのみであり得る一実施例では、CDSは、デバイスがそのマネージャを正当に対象としていることを証明するために、デバイスの妥当性を確認する応答を提供し、妥当性が確認されたデバイスのみがアクセスできるマネージャに関する識別情報を提供し、デバイスがマネージャに提供できるトークンを含むことができる。
【0006】
図1は、少なくとも一実施例による、こうした機能を提供するために使用できる例示的なアーキテクチャ100を示す。この実例では、少なくとも1つのネットワークを介して通信することができる様々なデバイス104、108、110が存在し得る。これらのデバイスはいくつでも存在する可能性があり、様々なデバイスタイプとすることができる。一般に、これらのデバイスは、少なくとも、回路と、これらのデバイスが有線接続及び/又は無線接続を通してインターネット、イーサネット(登録商標)、ローカル・エリア・ネットワーク(LAN:local area network)、セルラー・ネットワーク、又はピア・ツー・ピア・ネットワークなどの接続されたネットワーク上で通信できるようにするソフトウェアとを含む。いくつかの実施例では、デバイスは、マイクロプロセッサ又はマイクロコントローラ、並びに少なくとも実行可能命令及び構成情報を記憶するためのメモリを含み得る、組み込みコンピュータ回路を含んでもよい。これらのデバイスには、コンピュータ周辺機器、スマート車両、又は他のIoTデバイス若しくはネットワーク接続可能なデバイスなどのデバイスが含まれてもよい。
【0007】
前述のように、製造業者がこれらのデバイスの多くを生産し、これらのデバイスは様々なエンティティに販売され得る。これらのエンティティはそれぞれ、これらのデバイスの管理及び構成を可能にする場合があるように、それぞれのデバイスが特定の他のデバイス、システム、又はサービスと通信することを望む場合がある。これらのエンティティの少なくとも一部では、構成データ、更新、及び他のそのような情報を提供できる1つ又は複数のデバイス・マネージャにアドレスを提供するなど、この通信用にこれらのデバイスを手動でプログラム又は構成する必要がないことが望ましいことがある。一実例として、小売業者は、その店舗用に多くのカメラを購入する場合があり、そのセキュリティ・システムと通信するためにこれらの各カメラを手動で構成する必要がないことを好む場合がある。少なくとも一実施例では、これらのデバイスは、代わりに、起動時に中央ディレクトリ・サービス(「CDS」)102又は他のそのような信頼できるエンティティ、システム、若しくはサービスに連絡するように構成されることが可能である。このような構成でのCDSの役割は、デバイスを認証し、その後、デバイスを適切なマネージャ・サーバにリダイレクトすることである。このディレクトリ・サービス102は、これらのデバイス106、108、110のいずれかから要求又は通信を受信し、それらのデバイスに関する情報を検証し、次いで、そのデバイスを購入したエンティティに関連付けられ得るデバイス・マネージャなど、特定のデバイスに関連付けられているデバイス・マネージャに関する情報をそれらのデバイスに送信することができる、サーバ又はコンピューティング・システム若しくはコンピューティング・デバイスを含んでもよい。そのようなマネージャ・システム112、114は複数存在する場合があり、ディレクトリ・サービス102(2つ以上存在する場合もある)は、そのデバイスが情報を得るためにどのマネージャ112に連絡すべきかに関する情報を所与のデバイス104に提供することができる。少なくとも一実施例では、デバイスから要求を受信するディレクトリ・サービス102は、デバイス・データベース116又は他のそのような場所の中の情報をチェックして、要求で提供された情報が有効なデバイス情報に対応するかどうかを判定することができる。対応する場合、ディレクトリ・サービス102は、マッピング・データベース118又は他のそのような記憶場所を調べて、そのデバイスに対応する(たとえば、マッピングされた)マネージャ112を特定することができる。次いで、ディレクトリ・サービス120は、この情報及び任意の他の関連情報をデバイス104に送信することができる。
【0008】
適切なマネージャ情報が受信されると、デバイス104は、識別されたマネージャ112に連絡することができ、マネージャ112は、構成リポジトリ120に格納され得る適切な構成情報を特定し、そのデバイスが起動プロセスを完了してそれぞれのタスクを実行する準備ができるようにするために、その構成をデバイス104に提供することができる。これらのタスクは、セキュリティ監視、ステータス監視、自動化、ナビゲーション、データ処理などを含み得る、ネットワーク接続されたデバイスで知られている又は使用される任意の適切なタスクとすることができる。
【0009】
少なくとも一実施例では、トークンベースの通信を、これらの通信のいずれか又はすべてのセキュリティ・メカニズムとして使用することができる。様々な実施例において、このセキュリティ・メカニズムは、単一のトークン、又は複数のトークンを含むことができる。これらのトークンは、デバイス、CDS、及びそれぞれのマネージャのうちの1つ又は複数に固有の情報を含むか又はその情報を使用して保護されることが可能である。たとえば、デバイスは、シリアル番号と、1つ又は複数の秘密鍵などの機密情報を格納できるトラステッド・プラットフォーム・モジュール(「TPM:trusted platform module」)などの内部コンポーネントの1つ又は複数の識別子とを有することができる。デバイス及びCDSは、これらのトークンのうちの1つ又は複数を暗号化するために使用できる1つ又は複数の対称鍵又は非対称鍵を有してもよい。少なくとも一実施例では、暗号化とデジタル署名との組合せをこれらのトークンとともに使用して、これらの通信のセキュリティを高めることができる。
【0010】
図2は、そのようなプロセスで使用するために生成され得る例示的なトークン200を示す。これらのトークンはそれぞれ、関連するエンティティのみが知っているべきである情報を使用する複数のセキュリティ層を含むことができる。したがって、これらのデバイス又はシステムのいずれかを偽装しようと試みるエンティティは、登録又は他のそのようなプロセスにおいて、これらのトークンのうちの1つ又は複数を復号できないはずである。第1の例示的なトークンは、起動プロセス中にデバイスからCDS又は他のそのようなエンティティに提供することができる要求トークン202である。この実例では、要求トークンは、そのデバイスの識別子(「deviceID」)を含む。このdeviceIDは、デバイスによって、デバイスのシリアル番号、TPM識別子(TPM_ID)、及びそのデバイスの永続的な保証鍵(EK:endorsement key)のタプルを含み得る特定の情報に基づいて生成されてもよい。いくつかの実施例では、シリアル番号だけに対応し得るなどの、他のデバイス識別子も、同様に使用されてもよい。この要求トークン202は、この実例では信頼されていない鍵である自己生成鍵(SRK:self-generated key)を使用する暗号化を含むことができる外部セキュリティ層にラップされることが可能である。少なくとも一実施例では、この自己生成鍵は、永続的な鍵EKを使用する代わりに、デバイスを表すためにこのデバイスによって生成される鍵とすることができる。EKとSRKはどちらも、公開(PUB)鍵と秘密(PRIV)鍵による非対称鍵ペアに対応してもよい。所与のデバイスが販売又は再利用される可能性があり、したがってデバイスの耐用期間中に様々なマネージャに関連付けられることがあるので、自己生成鍵を使用することができる。永続的な鍵の代わりに自己生成鍵を使用すると、このデバイスは、変更されない永続的な鍵を使用した場合のみに通常であればアクセスできるはずの別の所有者又はタスクに関する情報にアクセスすることを防げる。デバイスがワイプされて再利用されるとき、デバイスは、検証に使用すべき新しい非対称鍵ペア(たとえば、SRK_PRIVとSRK_PUB)を生成することができ、その結果デバイスは、デバイスの現在の目的のための情報、又は現在の所有者又はマネージャに関連付けられた情報にのみアクセスできるようになる。
【0011】
第2の例示的なトークンは、CDSによって生成され要求側のデバイスに送信され得るチャレンジ・トークン204である。このチャレンジ・トークンは、デバイスがそのデバイス自体を有効なデバイスとして提示したときにその有効なデバイスのみが復号できるような方法で保護されることが可能である。この例示的なチャレンジ・トークンは、マネージャのURL(又は他の連絡先アドレス若しくはメカニズム)及びマネージャの識別子など、デバイスが適切なマネージャを特定するのに有用であるとともに、デバイスが正しいマネージャに連絡していることをマネージャが検証するのに有用である情報を含む。チャレンジ・トークンは、deviceID及びSRK_PUBなど、デバイスに固有の情報を含むこともでき、これは、デバイス及び対応するマネージャが、この情報がこの特定のデバイスに関連していることを検証するのに役立つ。同様に、有効期限又は存続時間(TTL:time to live)値及びトークンごとに生成されるランダムなナンスなどの追加情報を含めることもでき、それによって、第2のチャレンジ・トークンが同じナンスで受信された場合、これは、誰か又は何かが同じチャレンジ・トークンを再利用しようとしているとの指摘とすることができる。
【0012】
内部層では、CDS秘密鍵を使用して、このチャレンジ・トークンに署名することができる。中間層では、デバイスの永続的な公開鍵EK_PUBを使用して、この署名付き鍵を暗号化することができる。これは、デバイスの現在の所有者又はマネージャに関係なく、このデバイスだけがそのTPMにおけるEK_PRIV鍵を用いてこのチャレンジ・トークンを復号できることを保証するのに役立つ。次いで、外部層では、自己生成公開鍵(SRK_PUB)を使用して、このトークンを暗号化することができ、自己生成公開鍵は、現在の所有状態にあるデバイスによってのみ、そのデバイスの自己生成秘密鍵(SRK_PRIV)を使用して復号することが可能であるべきである。EK_PUBとSRK_PUBの両方を用いて暗号化することは、適正なデバイスがアクセスを取得していること(SRKはデバイスが生成した鍵であり、認証が困難であることがあるため)、及びデバイスがその現在の動作状態に関する情報のみを取得していること(EKはあらゆる所有者又は状態にわたって存続するため)を保証するのに役立つ。次いで、外部-外部層では、CDSの秘密鍵署名を使用して、このチャレンジ・トークンに署名することができる。これらの層は異なる順序である可能性があること、同様の層、より少ない層、追加の層、又は代替の層が様々な実施例の範囲内で使用できることを理解されたい。
【0013】
第3の例示的なトークンは、ベアラ・トークン206であり、チャレンジ・トークン204を正常に復号して適切なマネージャ情報を特定したデバイスは、構成情報を取得するためにベアラ・トークン206をそのマネージャに提供することができる。このベアラ・トークン206は、署名付きであるが復号されたチャレンジ・トークンを含むことができ、この実例では、チャレンジ・トークンは、マネージャ及びデバイスに関する情報だけでなく、ナンス及びTTL値を含むことができる。デバイス及びマネージャに関する情報によって、マネージャは、この要求がこの特定のマネージャを対象とした特定のデバイスからの要求であると判定することができ、一方、TTL値によって、マネージャは、ベアラ・トークンが引き続き有効であると判定することができ、ナンスによって、マネージャは、ベアラ・トークンの再利用が試行されていないと判定することができる。次いで、このベアラ・トークンに、デバイスの自己生成秘密鍵(SRK_PRIV)で署名することができ、したがって、マネージャは、対応する公開鍵を使用して復号することによって、これが適正なデバイスから送信されたことを検証することができる。マネージャは、その現在の状態における又はその現在の所有権を有するデバイスに関するデータのみを復号できるべきであり、他の状態、又は他のマネージャに関連付けられている可能性のある所有権のデータは復号できるべきでないので、少なくともいくつかの実施例では、永続的な鍵の代わりに自己生成鍵を使用して署名することがデバイスにとって重要である可能性がある。
【0014】
図3は、少なくとも一実施例により実行され得る、デバイスのゼロタッチ登録のための例示的なプロセス300を示す。本明細書に提示するこのプロセス及び他のプロセスについて、特に明記しない限り、様々な実施例の範囲内で、同様の又は代替の順序で、又は少なくとも部分的に並行して、追加のステップ、より少ないステップ、又は代替のステップが存在し得ることを理解されたい。この実例では、デバイスは、新しいデバイスとして、又は新しい構成及びマネージャ情報が取得されることになるデバイスのワイプ後に、初期起動を受ける(302)。このデバイスは、マネージャ情報要求を生成して、その要求を中央ディレクトリ・サービス(CDS)又は他のそのようなエンティティに送信することができ(304)、その要求は、図2に関して説明したような要求トークン内のデバイス識別情報を含むことができる。この要求を受信したCDSは、デバイス情報を検証し、そのデバイスに対する適切なマネージャを特定することができる。次いで、チャレンジ・トークンをCDSからデバイスに受信することができ(306)、そのチャレンジ・トークンは、複数のセキュアなラッピングを伴うマネージャに関する情報を含む。デバイスは、マネージャ情報、及び本明細書で説明する潜在的に他の情報を含むベース・トークン(又は復号されたチャレンジ・トークン)を取得するために、そのチャレンジ・トークンを復号し(308)、何らかの適切な検証を実行することができる。次に、デバイスは、復号されたトークンを含む、デバイスによってデジタル署名されたベアラ・トークンを生成し(610)、チャレンジ・トークンをベアラ・トークンに効果的に変換することができる。次いで、復号されたトークンから見出されたマネージャ情報を使用して特定されたマネージャに、ベアラ・トークンを含む、構成情報要求を送信することができる(312)。マネージャは、情報を検証し、適切な構成(及び他の関連する)情報をデバイスに送信することができる。デバイスは、マネージャからこの構成情報を受信することができ(314)、この受信した構成情報を使用してデバイスを構成することができる(316)。デバイスは、起動及び構成が完了した後、デバイスの所期の目的で動作することができる(318)。
【0015】
図4は、中央ディレクトリ・サービス(CDS)などのエンティティ又はシステムによって実行され得る例示的なプロセス400を示しており、このプロセスは、図3に関して説明した登録プロセスの一部であり得る。この実例では、CDSは、デバイスの自己生成鍵を使用して暗号化又は署名されたデバイス識別子(ID)を含む要求をデバイスから受信することができる(402)。CDSは、デバイスの妥当性を確認するために、そのデバイス識別子及びデバイス識別子に含まれる情報を既知の有効なデバイスのデータベースと突き合わせて比較することができる(404)。少なくとも一実施例では、この比較は、データベース内のそのデバイスのシリアル番号を見つけることだけでなく、提供される鍵情報がデバイスのデータベース内のそのシリアル番号に対応すると保証することも含むことができる。デバイスの妥当性を確認できない場合、CDSは、他の選択肢の中でもとりわけ、要求を無視するか、何らかのタイプのエラー・メッセージを送り返すことができる。デバイス情報の妥当性を確認することができる場合、既知のデバイスのマッピングのセットを参照することなどによって、そのデバイスに対するマネージャ406又は他の関連するシステム若しくはサービスを特定することができる(406)。CDSは、このデバイス対する適切なマネージャを特定するのに有用な情報を含むトークンを生成することができ(408)、その情報は、デバイス識別子、マネージャ情報、トークンの有効期限、及びランダムに生成されたナンスを含んでもよい。このトークンを1つ又は複数のセキュリティ・ラッピングでラップして、保護されたチャレンジ・トークンを生成することができ(410)、そのトークンは、1回又は複数回、暗号化及び/又は署名することができる。次いで、チャレンジ・トークンをデバイスに送信することができ(412)、適切なセキュリティ情報を有するデバイスは、チャレンジ・トークン内の情報を復号して利用できるはずである。
【0016】
図5は、図4のプロセスで生成されたチャレンジ・トークンなどの暗号妥当性確認用のチャレンジ・トークンを受信するデバイスによって実行され得る例示的なプロセス500を示しており、このプロセスは、図3に関して説明した登録プロセスの一部であり得る。本明細書に述べる他のプロセスと同様に、これらのステップの少なくともいくつかの順序又は包含は、実施例間で異なる場合がある。この実例では、デバイスは、情報事前要求に応答して、中央ディレクトリ・サービス(CDS)又は他のそのようなエンティティからチャレンジ・トークンを受信する(502)。デバイスは、最初にチャレンジ・トークン上のCDS署名を検証することによって、チャレンジ・トークンの整合性を判断することができる(504)。次いで、デバイスは、デバイスの自己生成鍵及び永続的な鍵を使用して、チャレンジ・トークンを復号することができる(506)。前述のように、両方の鍵を使用することにより、デバイスがデバイスの所有者又は使用状況の現在の状態に対して許可されている情報にのみアクセスすることを保証することができ、デバイスが主張しているデバイスであることを保証する。次いで、チャレンジ・トークンの復号に成功したデバイスは、CDS公開鍵を使用してチャレンジ・トークンの内部署名を検証することができる(508)。復号及び検証されると、デバイスは、トークンに含まれるマネージャ情報を特定することができる(510)。マネージャ情報は、たとえば、識別子、及びユニフォーム・リソース・ロケータ(URL:Uniform Resource Locator)などのアドレス情報を含むことができる。次いで、デバイスは、署名付きであるが復号されたチャレンジ・トークンをトークン内からのナンスと組み合わせてベアラ・トークンを作成することができ(512)、次いで、自己生成デバイス鍵を用いてベアラ・トークンに署名することができる(514)。マネージャは、そのマネージャがデバイスに関連付けられている間にのみ、そのデバイスに関する情報にアクセスできるべきであり、他の時間はアクセスできるべきではないので、永続的なデバイス鍵の代わりに自己生成鍵が使用される。次いで、デバイスは、構成情報要求又は他のそのような通信とともに、ベアラ・トークンを特定されたマネージャに送信することができる(516)。このプロセスでは、デバイスはCDSと1回の往復通信で通信し、その後デバイスはマネージャと直接通信するので、マネージャはCDSと直接通信しない。このようなプロセスでは、デバイスがチャレンジ・トークンを介してデバイス自体を認証できない限り、マネージャの識別はデバイスに公開されない。
【0017】
図6は、図5のプロセスで生成されたベアラ・トークンなどのベアラ・トークンを、構成情報要求とともに受信するデバイス・マネージャによって実行され得る例示的なプロセス600を示しており、このプロセスは、図3に関して説明した登録プロセスの一部であり得る。この実例では、署名付きベアラ・トークンが、要求とともに受信される(602)。マネージャは、ベアラ・トークンの内部がCDSによって正しく署名されていることを検証することができる(604)。少なくとも一実施例では、セキュリティ要件によって、デバイスがCDSによってそのマネージャに参照されたことをマネージャがCDSに連絡する必要なしに検証できなければならないと指示してもよい。マネージャは、ベアラ・トークンに含まれるマネージャ情報が正しいこと、及びトークンの有効期限が切れていないことを検証することもできる(606)。マネージャは、外部又はラッパーが、内部に埋め込まれているのと同じ自己生成デバイス鍵で署名されていることを検証することもできる(608)。マネージャは、このCDS署名付きベアラ・トークン内のナンスが、このCDS署名付きトークンの外部であるがベアラ・トークンに含まれているナンスと一致することを検証することもできる(610)。前述のように、これらのステップのうちの少なくともいくつかは、異なる順序で、又は少なくとも部分的に並行して実行することができる。この情報が検証されると、正しい構成情報を特定してデバイスに送信することができ(612)、それにより、デバイスは、デバイスの所期のタスクを実行できるようにするために、構成を利用してその起動手順を完了することが可能になる。少なくともいくつかの実施例では、このマネージャは、このデバイス、場合によっては他のデバイスに関連付けられたユーザ又はエンティティがこれらのデバイスを管理できるようにするコンソール若しくはインターフェースを提供するか又はそのコンソール若しくはインターフェースに関連付けられることが可能である。少なくとも一実施例では、エンティティは、それらのコンソールにログインして、そのようなプロセスを通じて自動的に登録及び/又はプロビジョニングされたデバイスのリストを見ることができる。デバイスは、マネージャ・システムによって公開されている1つ又は複数のアプリケーション・プログラミング・インターフェース(API:application programming interface)を使用して呼出しを行うこともでき、これらのAPI呼出しによって自己生成鍵を利用してもよい。
【0018】
データ・センタ
図7は、少なくとも一実施例が使用されてもよい例示的なデータ・センタ700を示す。たとえば、少なくとも一実施例において、CDS又はデバイス・マネージャは、データ・センタに含まれてもよい。少なくとも一実施例では、データ・センタ700は、データ・センタ・インフラストラクチャ層710、フレームワーク層720、ソフトウェア層730、及びアプリケーション層740を含む。
【0019】
図7に示すように、少なくとも一実施例では、データ・センタ・インフラストラクチャ層710は、リソース・オーケストレータ712と、グループ化済みコンピューティング・リソース714と、ノード・コンピューティング・リソース(「ノードC.R.」)716(1)~716(N)とを含んでもよく、ここで「N」は任意の正の整数を表す。少なくとも一実施例では、ノードC.R.716(1)~716(N)は、任意の数の中央処理装置(「CPU」)又は(アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサなどを含む)他のプロセッサ、メモリ・デバイス(たとえば、ダイナミック読取り専用メモリ)、ストレージ・デバイス(たとえば、半導体ドライブ又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」:virtual machine)、電源モジュール、及び冷却モジュールを含んでもよいが、これらに限定されない。少なくとも一実施例では、ノードC.R.716(1)~716(N)のうち1つ又は複数のノードC.R.は、上述したコンピューティング・リソースのうちの1つ又は複数を有するサーバであってもよい。
【0020】
少なくとも一実施例では、グループ化済みコンピューティング・リソース714は、1つ若しくは複数のラック(図示せず)内に収容されたノードC.R.の別々のグループ、又は様々なグラフィカル・ロケーション(同じく図示せず)においてデータ・センタに収容された多数のラックを含んでもよい。グループ化済みコンピューティング・リソース714内のノードC.R.の別々のグループは、1つ若しくは複数のワークロードをサポートするように構成又は配分されてもよいグループ化済みのコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含んでもよい。少なくとも一実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のラック内でグループ化されて、1つ又は複数のワークロードをサポートするためのコンピュート・リソースが提供されてもよい。少なくとも一実施例では、1つ又は複数のラックはまた、任意の数の電源モジュール、冷却モジュール、及びネットワーク・スイッチを任意の組合せで含んでもよい。
【0021】
少なくとも一実施例では、リソース・オーケストレータ712は、1つ又は複数のノードC.R.716(1)~716(N)及び/若しくはグループ化済みコンピューティング・リソース714を構成してもよく、又は他のやり方で制御してもよい。少なくとも一実施例では、リソース・オーケストレータ712は、データ・センタ700用のソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含んでもよい。少なくとも一実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はこれらの何らかの組合せを含んでもよい。
【0022】
図7に示すように、少なくとも一実施例では、フレームワーク層720は、ジョブ・スケジューラ722、構成マネージャ724、リソース・マネージャ726、及び分配ファイル・システム728を含む。少なくとも一実施例では、フレームワーク層720は、ソフトウェア層730のソフトウェア732、及び/又はアプリケーション層740の1つ若しくは複数のアプリケーション742をサポートするためのフレームワークを含んでもよい。少なくとも一実施例では、ソフトウェア732又はアプリケーション742はそれぞれ、アマゾン・ウェブ・サービス、グーグル・クラウド、及びマイクロソフト・アジュールによって提供されるものなど、ウェブ・ベースのサービス・ソフトウェア又はアプリケーションを含んでもよい。少なくとも一実施例では、フレームワーク層720は、大規模なデータ処理(たとえば「ビック・データ」)のために分配ファイル・システム728を使用することができるApache Spark(登録商標)(以下「Spark」)など、無料でオープン・ソースのソフトウェア・ウェブ・アプリケーション・フレームワークの一種であってもよいが、これに限定されない。少なくとも一実施例では、ジョブ・スケジューラ722は、データ・センタ700の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含んでもよい。少なくとも一実施例では、構成マネージャ724は、ソフトウェア層730、並びに大規模なデータ処理をサポートするためのSpark及び分配ファイル・システム728を含むフレームワーク層720などの異なる層を構成することが可能であってもよい。少なくとも一実施例では、リソース・マネージャ726は、分配ファイル・システム728及びジョブ・スケジューラ722をサポートするようにマッピング若しくは配分されたクラスタ化済み又はグループ化済みのコンピューティング・リソースを管理することが可能であってもよい。少なくとも一実施例では、クラスタ化済み又はグループ化済みのコンピューティング・リソースは、データ・センタ・インフラストラクチャ層710にあるグループ化済みコンピューティング・リソース714を含んでもよい。少なくとも一実施例では、リソース・マネージャ726は、リソース・オーケストレータ712と連携して、これらのマッピング又は配分されたコンピューティング・リソースを管理してもよい。
【0023】
少なくとも一実施例では、ソフトウェア層730に含まれるソフトウェア732は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用されるソフトウェアを含んでもよい。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含んでもよいが、これらに限定されない。
【0024】
少なくとも一実施例では、アプリケーション層740に含まれるアプリケーション742は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用される1つ若しくは複数のタイプのアプリケーションを含んでもよい。1つ若しくは複数のタイプのアプリケーションは、任意の数のゲノム学アプリケーション、認識コンピュート、並びに訓練若しくは推論のソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む機械学習アプリケーション、又は1つ若しくは複数の実施例と併せて使用される他の機械学習アプリケーションを含んでもよいが、これらに限定されない。
【0025】
少なくとも一実施例では、構成マネージャ724、リソース・マネージャ726、及びリソース・オーケストレータ712のうちのいずれかは、任意の技術的に実行可能なやり方で取得された任意の量及びタイプのデータに基づき、任意の数及びタイプの自己修正措置を実装してもよい。少なくとも一実施例では、自己修正措置は、データ・センタ700のデータ・センタ演算子が、不良の恐れのある構成を決定しないようにし、十分に利用されていない且つ/又は性能の低いデータ・センタの部分をなくせるようにしてもよい。
【0026】
少なくとも一実施例では、データ・センタ700は、1つ若しくは複数の機械学習モデルを訓練し、又は本明細書に記載の1つ若しくは複数の実施例による1つ若しくは複数の機械学習モデルを使用して情報を予測若しくは推論するためのツール、サービス、ソフトウェア、又は他のリソースを含んでもよい。たとえば、少なくとも一実施例では、機械学習モデルは、データ・センタ700に関して上述したソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練されてもよい。少なくとも一実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練済み機械学習モデルは、本明細書に記載の1つ又は複数の技法によって計算された重みパラメータを使用することにより、データ・センタ700に関して上述したリソースを使用して、情報を推論又は予測するために使用されてもよい。
【0027】
少なくとも一実施例では、データ・センタは、上述したリソースを使用して訓練及び/又は推論を実行するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用してもよい。さらに、上述した1つ又は複数のソフトウェア及び/又はハードウェアのリソースは、画像認識、音声認識、又は他の人工知能サービスなどの情報の訓練又は推論の実行を、ユーザが行えるようにするためのサービスとして構成されてもよい。
【0028】
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。
【0029】
コンピュータ・システム
図8は、例示的なコンピュータ・システムを示すブロック図であり、このコンピュータ・システムは、少なくとも一実施例による、命令を実行するための実行ユニットを含んでもよいプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SoC)、又はこれら800の何らかの組合せを有するシステムであってもよい。少なくとも一実施例では、コンピュータ・システム800は、本明細書に記載の実施例などにおいて本開示に従ってデータを処理するためのアルゴリズムを実行する論理を含む実行ユニットを使用するための、プロセッサ802などの構成要素を、限定することなく含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、カリフォルニア州サンタクララのインテルコーポレーションから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、Xeon(商標)、Itanium(登録商標)、XScale(商標)及び/又はStrongARM(商標)、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含んでもよいが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含め)他のシステムが使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、ワシントン州、レドモンドのマイクロソフトコーポレーションから入手可能なWINDOWS(登録商標)のオペレーティング・システムのあるバージョンを実行してもよいが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースが使用されてもよい。
【0030】
実施例は、携帯型デバイス及び組み込みアプリケーションなど、他のデバイスで使用されてもよい。携帯型デバイスのいくつかの例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」:personal digital assistants)、及び携帯型PCを含む。少なくとも一実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」:digital signal processor)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computers)、セット・トップ・ボックス、ネットワーク・ハブ、広域ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも一実施例による1つ又は複数の命令を実行することができる任意の他のシステムを含んでもよい。
【0031】
少なくとも一実施例では、コンピュータ・システム800は、限定することなくプロセッサ802を含んでもよく、このプロセッサ802は限定することなく、本明細書に記載の技法による機械学習モデルの訓練及び/又は推論を実行するための1つ又は複数の実行ユニット808を含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、シングル・プロセッサのデスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム800はマルチプロセッサ・システムであってもよい。少なくとも一実施例では、プロセッサ802は、限定することなく、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」)マイクロプロセッサ、超長命令語(「VLIW」)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は任意の他のプロセッサ・デバイス、たとえばデジタル信号プロセッサなどを含んでもよい。少なくとも一実施例では、プロセッサ802は、プロセッサ・バス810に結合されてもよく、このプロセッサ・バスは、プロセッサ802とコンピュータ・システム800内の他の構成要素との間でデータ信号を送信してもよい。
【0032】
少なくとも一実施例では、プロセッサ802は、限定することなく、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)804を含んでもよい。少なくとも一実施例では、プロセッサ802は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ802の外部にあってもよい。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せも含んでよい。少なくとも一実施例では、レジスタ・ファイル806は、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタを限定することなく含む様々レジスタに、異なるタイプのデータを記憶してもよい。
【0033】
少なくとも一実施例では、整数及び浮動小数点の演算を実行するための論理を限定することなく含む実行ユニット808も、プロセッサ802にある。少なくとも一実施例では、プロセッサ802は、ある一定のマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)も含んでよい。少なくとも一実施例では、実行ユニット808は、パック命令セット809に対処する論理を含んでもよい。少なくとも一実施例では、パック命令セット809を、命令を実行する関連回路とともに汎用プロセッサの命令セットに含めることにより、多くのマルチメディア・アプリケーションによって使用される演算を、汎用プロセッサ802のパック・データを使用して実行することができる。1つ又は複数の実施例では、プロセッサのデータ・バスの全幅を使用してパック・データの演算を実行することによって、多くのマルチメディア・アプリケーションを加速し、より効率的に実行することができ、これにより、1度に1つのデータ要素に対して1つ又は複数の演算を実行するためにプロセッサのデータ・バス間でより小さい単位のデータを転送する必要をなくすことができる。
【0034】
少なくとも一実施例では、実行ユニット808はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、限定することなくメモリ820を含んでもよい。少なくとも一実施例では、メモリ820は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装されてもよい。少なくとも一実施例では、メモリ820は、プロセッサ802によって実行されてもよいデータ信号によって表される命令819、及び/又はデータ821を記憶してもよい。
【0035】
少なくとも一実施例では、システム論理チップが、プロセッサ・バス810及びメモリ820に結合されてもよい。少なくとも一実施例では、システム論理チップは、限定することなく、メモリ・コントローラ・ハブ(「MCH」:memory controller hub)816を含んでもよく、プロセッサ802は、プロセッサ・バス810を介してMCH816と通信してもよい。少なくとも一実施例では、MCH816は、命令及びデータを記憶するため、及びグラフィックス・コマンド、データ、及びテクスチャを記憶するために、高帯域幅メモリ経路818をメモリ820に提供してもよい。少なくとも一実施例では、MCH816は、プロセッサ802と、メモリ820と、コンピュータ・システム800の他の構成要素との間でデータ信号を導き、プロセッサ・バス810と、メモリ820と、システムI/Oインターフェース822との間でデータ信号をブリッジしてもよい。少なくとも一実施例では、システム論理チップは、グラフィックス・コントローラに結合するためのグラフィックス・ポートを提供してもよい。少なくとも一実施例では、MCH816は、高帯域幅メモリ経路818を介してメモリ820に結合されてもよく、グラフィックス/ビデオカード812は、アクセラレーテッド・グラフィックス・ポート(「AGP」:Accelerated Graphics Port)相互接続814を介してMCH816に結合されてもよい。
【0036】
少なくとも一実施例では、コンピュータ・システム800は、MCH816をI/Oコントローラ・ハブ(「ICH」:I/O controller hub)830に結合するためのプロプライエタリ・ハブ・インターフェース・バスであるシステムI/O822を使用してもよい。少なくとも一実施例では、ICH830は、ローカルのI/Oバスを介していくつかのI/Oデバイスに直接接続を提供してもよい。少なくとも一実施例では、ローカルI/Oバスは、周辺装置をメモリ820、チップセット、及びプロセッサ802に接続するための高速I/Oバスを、限定することなく含んでもよい。例としては、オーディオ・コントローラ829、ファームウェア・ハブ(「フラッシュBIOS」)828、ワイヤレス・トランシーバ826、データ・ストレージ824、ユーザ入力及びキーボードのインターフェース825を含むレガシーI/Oコントローラ823、ユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)などのシリアル拡張ポート827、及びネットワーク・コントローラ834が、限定することなく含まれてもよい。データ・ストレージ824は、ハード・ディスク・ドライブ、フロッピー(登録商標)・ディスク・ドライブ、CD-ROMデバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備えてもよい。
【0037】
少なくとも一実施例では、図8は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、図8は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、コンピュータ・システム800の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続されてもよい。
【0038】
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。
【0039】
図9は、少なくとも一実施例による、プロセッサ910を利用するための電子デバイス900を示すブロック図である。少なくとも一実施例では、電子デバイス900は、たとえば限定することなく、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであってもよい。
【0040】
少なくとも一実施例では、システム900は、任意の好適な数又は種類の構成要素、周辺装置、モジュール、若しくはデバイスに通信可能に結合されたプロセッサ910を、限定することなく含んでもよい。少なくとも一実施例では、プロセッサ910は、1°Cバス、システム・マネージメント・バス(「SMBus」:System Management Bus)、ロー・ピン・カウント(LPC:Low Pin Count)バス、シリアル・ペリフェラル・インターフェース(「SPI」:Serial Peripheral Interface)、ハイ・デフィニション・オーディオ(「HDA」:High Definition Audio)バス、シリアル・アドバンス・テクノロジー・アタッチメント(「SATA」:Serial Advance Technology Attachment)バス、ユニバーサル・シリアル・バス(「USB」)(バージョン1、2、3)、又はユニバーサル非同期レシーバ/トランスミッタ(「UART」:Universal Asynchronous Receiver/Transmitter)バスなどのバス若しくはインターフェースを使用して結合される。少なくとも一実施例では、図9は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、図9は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、図9に示すデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、図9の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL)相互接続を使用して相互接続されてもよい。
【0041】
少なくとも一実施例では、図9は、ディスプレイ924、タッチ画面925、タッチ・パッド930、近距離無線通信ユニット(「NFC」:Near Field Communications unit)945、センサ・ハブ940、熱センサ946、エクスプレス・チップセット(「EC」:Express Chipset)935、トラステッド・プラットフォーム・モジュール(「TPM」:Trusted Platform Module)938、BIOS/ファームウェア/フラッシュ・メモリ(「BIOS、FWフラッシュ」:BIOS/firmware/flash memory)922、DSP960、ソリッド・ステート・ディスク(「SSD」:Solid State Disk)若しくはハード・ディスク・ドライブ(「HDD」:Hard Disk Drive)などのドライブ920、ワイヤレス・ローカル・エリア・ネットワーク・ユニット(「WLAN」:wireless local area network unit)950、Bluetoothユニット952、ワイヤレス広域ネットワーク・ユニット(「WWAN」:Wireless Wide Area Network unit)956、全地球測位システム(GPS:Global Positioning System)955、USB3.0カメラなどのカメラ(「USB3.0カメラ」)954、及び/又は、たとえばLPDDR3規格に実装された低電力ダブル・データ・レート(「LPDDR」:Low Power Double Data Rate)メモリ・ユニット(「LPDDR3」)915を含んでもよい。これらの構成要素は、それぞれ任意の好適なやり方で実装されてもよい。
【0042】
少なくとも一実施例では、上述した構成要素を介して、他の構成要素がプロセッサ910に通信可能に結合されてもよい。少なくとも一実施例では、加速度計941、周囲光センサ(「ALS」:Ambient Light Sensor)942、コンパス943、及びジャイロスコープ944が、センサ・ハブ940に通信可能に結合されてもよい。少なくとも一実施例では、熱センサ939、ファン937、キーボード946、及びタッチ・パッド930が、EC935に通信可能に結合されてもよい。少なくとも一実施例では、スピーカ963、ヘッドフォン964、及びマイクロフォン(「mic」)965が、オーディオ・ユニット(オーディオ・コーデック及びクラスdアンプ)962に通信可能に結合されてもよく、このオーディオ・ユニットが、DSP960に通信可能に結合されてもよい。少なくとも一実施例では、オーディオ・ユニット964は、たとえば限定することなく、オーディオ・コーダ/デコーダ(「コーデック」)及びクラスDアンプリファイアを含んでもよい。少なくとも一実施例では、SIMカード(「SIM」)957は、WWANユニット956に通信可能に結合されてもよい。少なくとも一実施例では、WLANユニット950及びBluetoothユニット952などの構成要素、並びにWWANユニット956は、次世代フォーム・ファクタ(「NGFF」:Next Generation Form Factor)に実装されてもよい。
【0043】
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。
【0044】
図10は、少なくとも一実例による処理システムのブロック図である。少なくとも一実施例では、システム1000は、1つ又は複数のプロセッサ1002、及び1つ又は複数のグラフィックス・プロセッサ1008を含み、単一プロセッサのデスクトップ・システム、マルチプロセッサのワークステーション・システム、又は多数のプロセッサ1002若しくはプロセッサ・コア1007を有するサーバ・システムであってもよい。少なくとも一実施例では、システム1000は、モバイル・デバイス、携帯型デバイス、又は組み込みデバイスで使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
【0045】
少なくとも一実施例では、システム1000は、サーバ・ベースのゲーミング・プラットフォーム、ゲーム及びメディアのコンソールを含むゲーム・コンソール、モバイル・ゲーミング・コンソール、携帯型ゲーム・コンソール、若しくはオンライン・ゲーム・コンソールを含んでもよく、又はそれらに組み込まれてもよい。少なくとも一実施例では、システム1000は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス、又はモバイル・インターネット・デバイスである。少なくとも一実施例では、処理システム1000はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、若しくは仮想現実デバイスなどのウェアラブル・デバイスを含んでもよく、それらに結合されてもよく、又はそれらの中に一体化されてもよい。少なくとも一実施例では、処理システム1000は、1つ又は複数のプロセッサ1002と、1つ又は複数のグラフィックス・プロセッサ1008によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
【0046】
少なくとも一実施例では、1つ又は複数のプロセッサ1002はそれぞれ、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実行する命令を処理するための1つ又は複数のプロセッサ・コア1007を含む。少なくとも一実施例では、1つ又は複数のプロセッサ・コア1007のそれぞれは、特定の命令セット1009を処理するように構成される。少なくとも一実施例では、命令セット1009は、複合命令セット・コンピューティング(CISC)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にしてもよい。少なくとも一実施例では、プロセッサ・コア1007はそれぞれ、異なる命令セット1009を処理してもよく、この命令セットは、他の命令セットのエミュレーションを容易にする命令を含んでもよい。少なくとも一実施例では、プロセッサ・コア1007はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含んでもよい。
【0047】
少なくとも一実施例では、プロセッサ1002はキャッシュ・メモリ1004を含む。少なくとも一実施例では、プロセッサ1002は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ1002の様々な構成要素間で共有される。少なくとも一実施例では、プロセッサ1002はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC))(図示せず)を使用し、このキャッシュは、知られているキャッシュ・コヒーレンス技法を使用して、プロセッサ・コア1007間で共有されてもよい。少なくとも一実施例では、さらにレジスタ・ファイル1006がプロセッサ1002に含まれ、このレジスタ・ファイルは、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタ)を含んでもよい。少なくとも一実施例では、レジスタ・ファイル1006は、汎用レジスタ又は他のレジスタを含んでもよい。
【0048】
少なくとも一実施例では、1つ又は複数のプロセッサ1002は、1つ又は複数のインターフェース・バス1010に結合されて、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1002とシステム1000内の他の構成要素との間で送信する。少なくとも一実施例では、インターフェース・バス1010は、一実施例では、ダイレクト・メディア・インターフェース(DMI)バスのバージョンなどのプロセッサ・バスとすることができる。少なくとも一実施例では、インターフェース1010は、DMIバスに限定されず、1つ又は複数のペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)、メモリ・バス、又は他のタイプのインターフェース・バスを含んでもよい。少なくとも一実施例では、プロセッサ1002は、統合メモリ・コントローラ1016、及びプラットフォーム・コントローラ・ハブ1030を含む。少なくとも一実施例では、メモリ・コントローラ1016は、メモリ・デバイスとシステム1000の他の構成要素との間の通信を容易にし、一方でプラットフォーム・コントローラ・ハブ(PCH)1030は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
【0049】
少なくとも一実施例では、メモリ・デバイス1020は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとしての役割を果たすのに好適な性能を有する何らかの他のメモリ・デバイスとすることができる。少なくとも一実施例では、メモリ・デバイス1020は、システム1000のためのシステム・メモリとして動作して、1つ又は複数のプロセッサ1002がアプリケーション若しくはプロセスを実行するときに使用するためのデータ1022及び命令1021を記憶することができる。少なくとも一実施例では、メモリ・コントローラ1016はまた、任意選択の外部グラフィックス・プロセッサ1012と結合しており、このグラフィックス・プロセッサは、プロセッサ1002内の1つ又は複数のグラフィックス・プロセッサ1008と通信して、グラフィックス及びメディアの動作を実行してもよい。少なくとも一実施例では、ディスプレイ・デバイス1011は、プロセッサ1002に接続することができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、モバイル電子デバイス又はラップトップ・デバイスのような内部ディスプレイ・デバイス、又はディスプレイ・インターフェース(たとえば、ディスプレイ・ポートなど)を介して取り付けられる外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションで使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD)を含むことができる。
【0050】
少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030は、周辺装置が高速I/Oバスを介してメモリ・デバイス1020及びプロセッサ1002に接続できるようにする。少なくとも一実施例では、I/O周辺装置は、オーディオ・コントローラ1046、ネットワーク・コントローラ1034、ファームウェア・インターフェース1028、ワイヤレス・トランシーバ1026、タッチ・センサ1025、データ・ストレージ・デバイス1024(たとえば、ハード・ディスク・ドライブ、フラッシュ・メモリなど)を含むが、これらに限定されない。少なくとも一実施例では、データ・ストレージ・デバイス1024は、ストレージ・インターフェース(たとえば、SATA)を介して、又はペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)などのペリフェラル・バスを介して、接続することができる。少なくとも一実施例では、タッチ・センサ1025は、タッチ画面センサ、圧力センサ、又は指紋センサを含むことができる。少なくとも一実施例では、ワイヤレス・トランシーバ1026は、WiFiトランシーバ、Bluetoothトランシーバ、又は3G、4G、若しくはLong Term Evolution(LTE)トランシーバなどのモバイル・ネットワーク・トランシーバとすることができる。少なくとも一実施例では、ファームウェア・インターフェース1028は、システム・ファームウェアとの通信を可能にし、たとえば、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI)とすることができる。少なくとも一実施例では、ネットワーク・コントローラ1034は、有線ネットワークへのネットワーク接続を可能にすることができる。少なくとも一実施例では、高性能ネットワーク・コントローラ(図示せず)は、インターフェース・バス1010と結合する。少なくとも一実施例では、オーディオ・コントローラ1046は、多チャネル・ハイ・デフィニション・オーディオ・コントローラである。少なくとも一実施例では、システム1000は、レガシー(たとえば、パーソナル・システム2(PS/2))デバイスをシステムに結合するための任意選択のレガシーI/Oコントローラ1040を含む。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030は、キーボードとマウス1043の組合せ、カメラ1044、又は他のUSB入力デバイスなど、1つ又は複数のユニバーサル・シリアル・バス(USB)コントローラ1042の接続入力デバイスにも接続することができる。
【0051】
少なくとも一実施例では、メモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030のインスタンスは、外部グラフィックス・プロセッサ1012などの個別の外部グラフィックス・プロセッサに一体化されてもよい。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030及び/又はメモリ・コントローラ1016は、1つ又は複数のプロセッサ1002の外部にあってもよい。たとえば、少なくとも一実施例では、システム1000は、外部のメモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030を含むことができ、これらは、プロセッサ1002と通信するシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺装置コントローラ・ハブとして構成されてもよい。
【0052】
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。
【0053】
図11は、少なくとも一実施例による、1つ又は複数のプロセッサ・コア1102A~1102N、統合メモリ・コントローラ1114、及び統合グラフィックス・プロセッサ1108を有するプロセッサ1100のブロック図である。少なくとも一実施例では、プロセッサ1100は、破線の四角によって表される追加コア1102Nを含むそれ以下の数の追加コアを含むことができる。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれは、1つ又は複数の内部キャッシュ・ユニット1104A~1104Nを含む。少なくとも一実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュ・ユニット1106にアクセスできる。
【0054】
少なくとも一実施例では、内部キャッシュ・ユニット1104A~1104N、及び共有キャッシュ・ユニット1106は、プロセッサ1100内のキャッシュ・メモリ階層を表す。少なくとも一実施例では、キャッシュ・メモリ・ユニット1104A~1104Nは、各プロセッサ・コア内の命令及びデータのキャッシュの少なくとも1つのレベル、並びにレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含んでもよく、ここで外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも一実施例では、キャッシュ・コヒーレンス論理は、様々なキャッシュ・ユニット1106及び1104A~1104N間でコヒーレンスを維持する。
【0055】
少なくとも一実施例では、プロセッサ1100はまた、1つ又は複数のバス・コントローラ・ユニット1116とシステム・エージェント・コア1110のセットを含んでもよい。少なくとも一実施例では、1つ又は複数のバス・コントローラ・ユニット1116は、1つ又は複数のPCI若しくはPCIエクスプレス・バスなどのペリフェラル・バスのセットを管理する。少なくとも一実施例では、システム・エージェント・コア1110は、様々なプロセッサ構成要素のための管理機能を提供する。少なくとも一実施例では、システム・エージェント・コア1110は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合メモリ・コントローラ1114を含む。
【0056】
少なくとも一実施例では、プロセッサ・コア1102A~1102Nの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも一実施例では、システム・エージェント・コア1110は、マルチスレッドの処理中にコア1102A~1102Nを調整し動作させるための構成要素を含む。少なくとも一実施例では、システム・エージェント・コア1110はさらに、電力制御ユニット(PCU)を含んでもよく、このユニットは、プロセッサ・コア1102A~1102N及びグラフィックス・プロセッサ1108の1つ又は複数の電力状態を調整するための論理及び構成要素を含む。
【0057】
少なくとも一実施例では、プロセッサ1100はさらに、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1108を含む。少なくとも一実施例では、グラフィックス・プロセッサ1108は、共有キャッシュ・ユニット1106と、1つ又は複数の統合メモリ・コントローラ1114を含むシステム・エージェント・コア1110とに結合する。少なくとも一実施例では、システム・エージェント・コア1110はまた、1つ又は複数の結合されたディスプレイに対してグラフィックス・プロセッサの出力を行わせるためのディスプレイ・コントローラ1111を含む。少なくとも一実施例では、ディスプレイ・コントローラ1111はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1108に結合された別個のモジュールであってもよく、又はグラフィックス・プロセッサ1108内に一体化されていてもよい。
【0058】
少なくとも一実施例では、プロセッサ1100の内部構成要素を結合するために、リング・ベースの相互接続ユニット1112が使用される。少なくとも一実施例では、ポイントツーポイント相互接続、スイッチ相互接続、又は他の技法などの代替的な相互接続ユニットが使用されてもよい。少なくとも一実施例では、グラフィックス・プロセッサ1108は、I/Oリンク1113を介してリング相互接続1112と結合する。
【0059】
少なくとも一実施例では、I/Oリンク1113は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1118との間の通信を容易にするオン・パッケージI/O相互接続を含む多様なI/O相互接続のうちの少なくとも1つを表す。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれ及びグラフィックス・プロセッサ1108は、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1118を使用する。
【0060】
少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、命令セット・アーキテクチャ(ISA)の観点から見れば異種であり、ここでプロセッサ・コア1102A~1102Nのうちの1つ又は複数は、共通の命令セットを実行するが、プロセッサ・コア1102A~1102Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、マイクロ・アーキテクチャの観点から見れば異種であり、ここで電力消費量が相対的に高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数のコアと結合する。少なくとも一実施例では、プロセッサ1100は、1つ又は複数のチップ上に、又はSoC集積回路として実装することができる。
【0061】
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。
【0062】
他の変形形態は、本開示の範囲内にある。したがって、開示した技法は、様々な修正及び代替的な構成が可能であるが、それらのうち一定の例示的な実施例が図面に示され、上で詳細に説明されてきた。しかし、特定の1つ又は複数の開示された形に本開示を限定する意図はなく、その反対に、添付の特許請求の範囲に定義される開示の趣旨及び範囲に入るすべての修正形態、代替的な構成、及び等価物を網羅することを意図している。
【0063】
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「備える(comprising)」、「有する(having)」、「含む(including)」、「収容する(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「含むが、これに限定されない」を意味する)と解釈される。「接続される」という用語は、修飾されずに物理的接続を指している場合には、何か介在するものがあったとしても、部分的に又は完全に中に収容される、取り付けられる、又は互いに接合されるものとして解釈される。本明細書において値の範囲を詳述することは、本明細書において別段の記載がない限り、またそれぞれ別々の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に含まれるそれぞれ別々の値を個々に参照する簡潔な方法として機能することを単に意図しているにすぎない。「セット」(たとえば、「アイテムのセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がない、又は否定されていない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がない、又は否定されていない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すのではなく、サブセットと対応するセットは等しくてもよい。
【0064】
「A、B、及びCのうちの少なくとも1つ」又は「A、B、及びCのうちの少なくとも1つ」という形の言い回しなどの結合語は、別段の具体的な記載のない限り、又は文脈によって明確に否定されていない限り、項目、用語などが、AかBかCである、又はAとBとCのセットのいずれかの空でないサブセットであることを提示するために一般に使用される文脈で理解される。たとえば、3つの部材を有するセットの説明的な例では、「A、B、及びCのうちの少なくとも1つ」並びに「A、B、及びCのうちの少なくとも1つ」という結合句は、次のセットのうちのいずれかを指す:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。したがって、こうした結合語は、ある一定の実施例が、少なくとも1つのA、少なくとも1つのB、及び少なくとも1つのCのそれぞれの存在を必要とすることを全体的に暗示するものではない。さらに、別段の記載のない、又は文脈によって否定されていない限り、「複数」という用語は、複数である状態を示す(たとえば、「複数の項目(a plurality of items)」は複数の項目(multiple items)を示す)。複数とは、少なくとも2つの項目であるが、明示的に、又は文脈によって示されている場合にはそれより多くてもよい。さらに、別段の記載のない、又は文脈からそうでないことが明らかでない限り、「~に基づく」という言い回しは、「少なくとも部分的に~に基づく」を意味し、「~だけに基づく」を意味しない。
【0065】
本明細書に記載のプロセスの動作は、本明細書に別段の記載のない、又は文脈によって明確に否定されない限り、任意の好適な順序で実行することができる。少なくとも一実施例では、本明細書に記載のプロセス(又はその変形及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実行され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行されるコード(たとえば、実行可能な命令、1つ若しくは複数のコンピュータ・プログラム、又は1つ若しくは複数のアプリケーション)として実装される。少なくとも一実施例では、コードは、たとえば1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形で、コンピュータ読取り可能ストレージ媒体に記憶される。少なくとも一実施例では、コンピュータ読取り可能ストレージ媒体は、一時的な信号(たとえば、伝播する一時的な電気若しくは電磁送信)を除外するが、一時的な信号のトランシーバ内の非一時的なデータ・ストレージ回路(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的なコンピュータ読取り可能ストレージ媒体である。少なくとも一実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的なコンピュータ読取り可能ストレージ媒体のセットに記憶され、このストレージ媒体には、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書に記載の動作を実行させる実行可能命令が記憶されている(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的なコンピュータ読取り可能ストレージ媒体のセットは、少なくとも一実施例では、複数の非一時的なコンピュータ読取り可能ストレージ媒体を備え、複数の非一時的なコンピュータ読取り可能ストレージ媒体の個々の非一時的なストレージ媒体のうちの1つ又は複数には、すべてのコードがないが、複数の非一時的なコンピュータ読取り可能ストレージ媒体は、集合的にすべてのコードを記憶している。少なくとも一実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的なコンピュータ読取り可能ストレージ媒体は命令を記憶し、メインの中央処理装置(「CPU」)は一部の命令を実行し、グラフィックス・プロセッシング・ユニット(「GPU」)は他の命令を実行する。少なくとも一実施例では、コンピュータ・システムの異なる構成要素は、別々のプロセッサを有し、異なるプロセッサは、命令の異なるサブセットを実行する。
【0066】
したがって、少なくとも一実施例では、コンピュータ・システムは、本明細書に記載のプロセスの動作を単独で又は集合的に実行する1つ又は複数のサービスを実装するように構成され、こうしたコンピュータ・システムは、動作の実行を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも一実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、異なるやり方で動作する複数のデバイスを備える分散型のコンピュータ・システムであり、それにより単一のデバイスがすべての動作を実行しないように分散型のコンピュータ・システムが本明細書に記載の動作を実行する。
【0067】
本明細書に提供されるあらゆる例、又は例示的な言葉(たとえば、「など」)の使用は、本開示の実施例をより明らかにすることだけを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
【0068】
本明細書に引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることがあたかも個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
【0069】
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用されてもよい。これらの用語は、互いに同義語として意図されていない場合があることを理解すべきである。むしろ、特定の例では、「接続される」又は「結合される」は、2つ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用されてもよい。また「結合される」は、2つ以上の要素が直接互いに接触していないが、なお互いに連動又は相互作用することを意味してもよい。
【0070】
別段の具体的な記載のない限り、明細書全体を通して「処理する」、「コンピューティング」、「計算する」、又は「判定する」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータをコンピューティング・システムのメモリ、レジスタ、又は他のそのような情報ストレージ・デバイス、送信デバイス、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるよう操作及び/又は変換するコンピュータ若しくはコンピューティング・システム、又は同様の電子コンピューティング・デバイスの行為及び/又はプロセスを指す。
【0071】
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶することができる他の電子データに変換する任意のデバイス、又はデバイスの一部分を指してもよい。非限定的な例として、「プロセッサ」は、CPU又はGPUであってもよい。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備えてもよい。本明細書で使用する「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実行するソフトウェア及び/又はハードウェアのエンティティを含んでもよい。また、各プロセスは、命令を直列で又は並列で連続的に又は断続的に実行するための複数のプロセスを指してもよい。「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化することができ、方法がシステムと考えられてもよい場合に限り、本明細書において交換可能に使用される。
【0072】
本明細書では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又はそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及することができる。アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力することは、関数呼出し、又はアプリケーション・プログラミング・インターフェースへの呼出しのパラメータとしてデータを受信するなど、様々なやり方で実現することができる。いくつかの実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、直列又は並列のインターフェースを介してデータを転送することによって実現することができる。別の実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、提供するエンティティから取得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現することができる。また、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示することにも言及することができる。様々な例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示するプロセスは、関数呼出しの入力又は出力のパラメータ、アプリケーション・プログラミング・インターフェース若しくはプロセス間通信機構のパラメータとしてデータを転送することによって実現することができる。
【0073】
上の議論は、説明した技法の例示的な実装形態について述べているが、記載した機能を実装するために他のアーキテクチャが使用されてもよく、この他のアーキテクチャは、本開示の範囲内にあることが意図される。さらに、議論を目的として、役割の具体的な分配が上記に定義されているが、様々な機能及び役割は、状況に応じて異なるやり方で分配及び分割されてもよい。
【0074】
さらに、主題は、構造的特徴及び/又は方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲で特許請求される主題は、説明した特有の特徴又は動作に必ずしも限定されないことが理解されるべきである。むしろ、特有の特徴及び動作は、特許請求の範囲を実装する例示的な形として開示されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
【外国語明細書】