JP7708599B2 - Token-based zero-touch enrollment for provisioning edge computing applications - Google Patents
Token-based zero-touch enrollment for provisioning edge computing applicationsInfo
- Publication number
- JP7708599B2 JP7708599B2 JP2021113368A JP2021113368A JP7708599B2 JP 7708599 B2 JP7708599 B2 JP 7708599B2 JP 2021113368 A JP2021113368 A JP 2021113368A JP 2021113368 A JP2021113368 A JP 2021113368A JP 7708599 B2 JP7708599 B2 JP 7708599B2
- Authority
- JP
- Japan
- Prior art keywords
- token
- information
- manager
- challenge
- challenge token
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Description
本発明は、エッジ・コンピューティング・アプリケーションをプロビジョニングするためのトークンベースのゼロタッチ登録に関する。 The present invention relates to token-based zero-touch enrollment for provisioning edge computing applications.
インターネットなどのネットワークを介して他のデバイス又はシステムと接続及びデータを交換するために、ますます多くの多様なデバイスが構成されている。これらのデバイスは、多くの場合、モノのインターネット(「IoT:Internet of Thing」)デバイスと呼ばれ、通信すべき他のデバイス又はシステムを位置特定又は識別できる必要がある。しかしながら、これらのデバイスは、複数のエンティティに販売されるか又は多種多様な外部システムに関連付けられる可能性があるので、これらのデバイスは通常、それらのデバイスにそれらの情報をすでに記憶された状態では生産されておらず、その結果、デバイスは、これらの他のデバイス又はシステムに関する情報を取得するか又は提供されなければならない。特定のエンティティ用の多くのデバイスを含み得るこれらのデバイスを手動でプログラム又は構成する必要をなくすために、様々な「ゼロタッチ」手法が利用されており、それによって、これらのデバイスは手動の介入なしにこの情報を自動的に取得することができる。しかしながら、従来の手法では中央機関とデバイス・マネージャと間の直接通信が必要であり、他のデバイス又はエンティティにデバイス・マネージャの位置を公開するので、不要なセキュリティ・リスクが生じるという点など、これらの従来の手法には様々な問題があり、特定のシステム又は使用法にとっては、従来の手法が望ましくないものになる可能性がある。さらに、従来の手法では、各デバイスと対応する中央機関との間のマルチトリップ通信チャレンジ・レスポンスが必要であり、これにより、これらの手法のトラフィック及び複雑さが大幅に増加する。 An increasing number of different devices are being configured to connect and exchange data with other devices or systems over a network such as the Internet. These devices are often referred to as Internet of Things ("IoT") devices and need to be able to locate or identify other devices or systems with which they are to communicate. However, because these devices may be sold to multiple entities or associated with a wide variety of external systems, these devices are not typically produced with this information already stored on them, and as a result, the devices must obtain or be provided with information about these other devices or systems. To eliminate the need to manually program or configure these devices, which may include many devices for a particular entity, various "zero-touch" approaches are utilized, whereby the devices can automatically obtain this information without manual intervention. However, these conventional approaches have various problems, such as the need for direct communication between a central authority and a device manager, exposing the location of the device manager to other devices or entities, creating unnecessary security risks, which may make the conventional approaches undesirable for certain systems or uses. Furthermore, conventional approaches require a multi-trip communication challenge-response between each device and a corresponding central authority, which significantly increases the traffic and complexity of these approaches.
図面を参照しながら、本開示による様々な実施例を説明する。 Various embodiments of the present disclosure will be described with reference to the drawings.
様々な実施例による手法は、有利な署名及び暗号化構造を用いた1つ又は複数のトークンベースの手法を利用することによって、これら及び他の欠陥を克服する。少なくとも一実施例では、初期起動を受けるデバイスは、中央機関、又はそのデバイスが情報を取得することができ、アドレス若しくは宛先がこのデバイスに記憶されている他のエンティティ、システム、又はサービスに、情報要求を送信することができる。次いで、中央機関は、デバイスが認識された場合、そのデバイスに固有のチャレンジ・トークンを生成して送信することができる。チャレンジ・トークンは、そのチャレンジ・トークンをそのデバイスによって復号及び検証できるようにする1つ又は複数のセキュリティ・メカニズム(たとえば、特定の鍵又はデジタル署名を用いた暗号化)を含むことができる。次いで、デバイスは、復号されたバージョンのチャレンジ・トークンにデジタル署名することなどによって、中央機関からのこのチャレンジ・トークンを偽造不可能なベアラ・トークンに変換することができる。次いで、デバイスは、デバイスの所期のタスクのためにデバイスに関する構成情報を提供できるデバイス・マネージャ又はそのデバイスに関連付けられた他のエンティティ、システム、若しくはサービスに、このベアラ・トークンを提示することができる。デバイス・マネージャは、ベアラ・トークンを利用してデバイスを検証し、次いで、デバイスにそれぞれの構成データを送信することができる。次いで、デバイスは、起動が完了した後、この構成情報を利用して、デバイスの所期のタスクを実行することができる。こうした手法により、マネージャは、中央ディレクトリ・サービス(CDS:central directory service)と様々なマネージャとの間の直接通信を一切することなく、CDSなどの中央機関からの情報を使用して、デバイスを認証することができる。デバイスとCDSとの間のトリップが1つのみであり得る一実施例では、CDSは、デバイスがそのマネージャを正当に対象としていることを証明するために、デバイスの妥当性を確認する応答を提供し、妥当性が確認されたデバイスのみがアクセスできるマネージャに関する識別情報を提供し、デバイスがマネージャに提供できるトークンを含むことができる。 Approaches according to various embodiments overcome these and other deficiencies by utilizing one or more token-based approaches using advantageous signature and encryption structures. In at least one embodiment, a device undergoing initial boot can send an information request to a central authority or other entity, system, or service from which the device can obtain information and whose address or destination is stored in the device. The central authority can then generate and send a challenge token unique to the device if the device is recognized. The challenge token can include one or more security mechanisms (e.g., encryption with a particular key or digital signature) that allow the challenge token to be decrypted and verified by the device. The device can then convert this challenge token from the central authority into an unforgeable bearer token, such as by digitally signing a decrypted version of the challenge token. The device can then present this bearer token to a device manager or other entity, system, or service associated with the device, which can provide configuration information about the device for the device's intended task. The device manager can utilize the bearer token to verify the device and then send the device its respective configuration data. The device can then utilize this configuration information to perform its intended tasks after boot-up is complete. With such an approach, the manager can authenticate the device using information from a central authority, such as a central directory service (CDS), without any direct communication between the CDS and the various managers. In one embodiment, where there may be only one trip between the device and the CDS, the CDS can provide a response that validates the device, provides identifying information about the manager that only the validated device can access, and includes a token that the device can provide to the manager to prove that the device is legitimately intended for that manager.
図1は、少なくとも一実施例による、こうした機能を提供するために使用できる例示的なアーキテクチャ100を示す。この実例では、少なくとも1つのネットワークを介して通信することができる様々なデバイス104、108、110が存在し得る。これらのデバイスはいくつでも存在する可能性があり、様々なデバイスタイプとすることができる。一般に、これらのデバイスは、少なくとも、回路と、これらのデバイスが有線接続及び/又は無線接続を通してインターネット、イーサネット(登録商標)、ローカル・エリア・ネットワーク(LAN:local area network)、セルラー・ネットワーク、又はピア・ツー・ピア・ネットワークなどの接続されたネットワーク上で通信できるようにするソフトウェアとを含む。いくつかの実施例では、デバイスは、マイクロプロセッサ又はマイクロコントローラ、並びに少なくとも実行可能命令及び構成情報を記憶するためのメモリを含み得る、組み込みコンピュータ回路を含んでもよい。これらのデバイスには、コンピュータ周辺機器、スマート車両、又は他のIoTデバイス若しくはネットワーク接続可能なデバイスなどのデバイスが含まれてもよい。 1 illustrates an exemplary architecture 100 that can be used to provide such functionality, according to at least one embodiment. In this example, there may be various devices 104, 108, 110 that can communicate over at least one network. There may be any number of these devices and they may be of various device types. Generally, these devices include at least circuitry and software that enables them to communicate over a connected network, such as the Internet, Ethernet, a local area network (LAN), a cellular network, or a peer-to-peer network, through wired and/or wireless connections. In some embodiments, the devices may include embedded computer circuitry, which may include a microprocessor or microcontroller, and at least memory for storing executable instructions and configuration information. These devices may include devices such as computer peripherals, smart vehicles, or other IoT devices or network-connectable devices.
前述のように、製造業者がこれらのデバイスの多くを生産し、これらのデバイスは様々なエンティティに販売され得る。これらのエンティティはそれぞれ、これらのデバイスの管理及び構成を可能にする場合があるように、それぞれのデバイスが特定の他のデバイス、システム、又はサービスと通信することを望む場合がある。これらのエンティティの少なくとも一部では、構成データ、更新、及び他のそのような情報を提供できる1つ又は複数のデバイス・マネージャにアドレスを提供するなど、この通信用にこれらのデバイスを手動でプログラム又は構成する必要がないことが望ましいことがある。一実例として、小売業者は、その店舗用に多くのカメラを購入する場合があり、そのセキュリティ・システムと通信するためにこれらの各カメラを手動で構成する必要がないことを好む場合がある。少なくとも一実施例では、これらのデバイスは、代わりに、起動時に中央ディレクトリ・サービス(「CDS」)102又は他のそのような信頼できるエンティティ、システム、若しくはサービスに連絡するように構成されることが可能である。このような構成でのCDSの役割は、デバイスを認証し、その後、デバイスを適切なマネージャ・サーバにリダイレクトすることである。このディレクトリ・サービス102は、これらのデバイス106、108、110のいずれかから要求又は通信を受信し、それらのデバイスに関する情報を検証し、次いで、そのデバイスを購入したエンティティに関連付けられ得るデバイス・マネージャなど、特定のデバイスに関連付けられているデバイス・マネージャに関する情報をそれらのデバイスに送信することができる、サーバ又はコンピューティング・システム若しくはコンピューティング・デバイスを含んでもよい。そのようなマネージャ・システム112、114は複数存在する場合があり、ディレクトリ・サービス102(2つ以上存在する場合もある)は、そのデバイスが情報を得るためにどのマネージャ112に連絡すべきかに関する情報を所与のデバイス104に提供することができる。少なくとも一実施例では、デバイスから要求を受信するディレクトリ・サービス102は、デバイス・データベース116又は他のそのような場所の中の情報をチェックして、要求で提供された情報が有効なデバイス情報に対応するかどうかを判定することができる。対応する場合、ディレクトリ・サービス102は、マッピング・データベース118又は他のそのような記憶場所を調べて、そのデバイスに対応する(たとえば、マッピングされた)マネージャ112を特定することができる。次いで、ディレクトリ・サービス120は、この情報及び任意の他の関連情報をデバイス104に送信することができる。 As mentioned above, a manufacturer may produce many of these devices, and these devices may be sold to various entities. Each of these entities may want each device to communicate with certain other devices, systems, or services, which may allow for management and configuration of these devices. For at least some of these entities, it may be desirable not to have to manually program or configure these devices for this communication, such as by providing an address to one or more device managers that can provide configuration data, updates, and other such information. As an example, a retailer may purchase many cameras for its store and would prefer not to have to manually configure each of these cameras to communicate with its security system. In at least one embodiment, these devices may instead be configured to contact a central directory service ("CDS") 102 or other such trusted entity, system, or service upon startup. The role of the CDS in such a configuration is to authenticate the device and then redirect the device to the appropriate manager server. The directory service 102 may include a server or computing system or device that can receive requests or communications from any of these devices 106, 108, 110, verify information about those devices, and then send those devices information about the device manager associated with the particular device, such as a device manager that may be associated with the entity that purchased the device. There may be multiple such manager systems 112, 114, and the directory service 102 (of which there may be more than one) may provide a given device 104 with information about which manager 112 the device should contact for information. In at least one embodiment, the directory service 102 receiving a request from a device may check information in a device database 116 or other such location to determine whether the information provided in the request corresponds to valid device information. If so, the directory service 102 may consult a mapping database 118 or other such storage location to identify the manager 112 that corresponds (e.g., mapped) to that device. The directory service 120 may then send this information, and any other relevant information, to the device 104.
適切なマネージャ情報が受信されると、デバイス104は、識別されたマネージャ112に連絡することができ、マネージャ112は、構成リポジトリ120に格納され得る適切な構成情報を特定し、そのデバイスが起動プロセスを完了してそれぞれのタスクを実行する準備ができるようにするために、その構成をデバイス104に提供することができる。これらのタスクは、セキュリティ監視、ステータス監視、自動化、ナビゲーション、データ処理などを含み得る、ネットワーク接続されたデバイスで知られている又は使用される任意の適切なタスクとすることができる。 Once the appropriate manager information is received, the device 104 can contact the identified manager 112, which can identify the appropriate configuration information that can be stored in the configuration repository 120 and provide the configuration to the device 104 so that the device can complete its startup process and be ready to perform its respective tasks. These tasks can be any appropriate tasks known or used in networked devices, which can include security monitoring, status monitoring, automation, navigation, data processing, etc.
少なくとも一実施例では、トークンベースの通信を、これらの通信のいずれか又はすべてのセキュリティ・メカニズムとして使用することができる。様々な実施例において、このセキュリティ・メカニズムは、単一のトークン、又は複数のトークンを含むことができる。これらのトークンは、デバイス、CDS、及びそれぞれのマネージャのうちの1つ又は複数に固有の情報を含むか又はその情報を使用して保護されることが可能である。たとえば、デバイスは、シリアル番号と、1つ又は複数の秘密鍵などの機密情報を格納できるトラステッド・プラットフォーム・モジュール(「TPM:trusted platform module」)などの内部コンポーネントの1つ又は複数の識別子とを有することができる。デバイス及びCDSは、これらのトークンのうちの1つ又は複数を暗号化するために使用できる1つ又は複数の対称鍵又は非対称鍵を有してもよい。少なくとも一実施例では、暗号化とデジタル署名との組合せをこれらのトークンとともに使用して、これらの通信のセキュリティを高めることができる。 In at least one embodiment, token-based communications can be used as a security mechanism for any or all of these communications. In various embodiments, this security mechanism can include a single token, or multiple tokens. These tokens can contain or be protected using information specific to one or more of the device, the CDS, and the respective managers. For example, the device can have a serial number and one or more identifiers of internal components, such as a trusted platform module ("TPM"), which can store sensitive information, such as one or more private keys. The device and the CDS may have one or more symmetric or asymmetric keys that can be used to encrypt one or more of these tokens. In at least one embodiment, a combination of encryption and digital signatures can be used with these tokens to increase the security of these communications.
図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)を生成することができ、その結果デバイスは、デバイスの現在の目的のための情報、又は現在の所有者又はマネージャに関連付けられた情報にのみアクセスできるようになる。 FIG. 2 illustrates an exemplary token 200 that may be generated for use in such a process. Each of these tokens may include multiple layers of security using information that should only be known by the relevant entity. Thus, an entity attempting to impersonate any of these devices or systems during registration or other such processes should not be able to decrypt one or more of these tokens. A first exemplary token is a request token 202 that may be provided by a device to a CDS or other such entity during the activation process. In this example, the request token includes an identifier for that device ("deviceID"). This deviceID may be generated by the device based on certain information that may include a tuple of the device's serial number, TPM identifier (TPM_ID), and persistent endorsement key (EK) for that device. In some embodiments, other device identifiers, such as those that may correspond to just the serial number, may be used as well. The request token 202 can be wrapped in an outer security layer that can include encryption using a self-generated key (SRK), which in this example is an untrusted key. In at least one embodiment, the self-generated key can be a key generated by the device to represent the device instead of using a persistent key EK. Both the EK and SRK may correspond to an asymmetric key pair with a public (PUB) key and a private (PRIV) key. A self-generated key can be used because a given device may be sold or reused and thus associated with different managers during the device's life. Using a self-generated key instead of a persistent key prevents the device from accessing information about another owner or task that it would normally only be able to access if it used a persistent key that does not change. When a device is wiped and reused, it can generate a new asymmetric key pair (e.g., SRK_PRIV and SRK_PUB) to use for validation, so that the device can only access information for the device's current purpose or associated with the current owner or manager.
第2の例示的なトークンは、CDSによって生成され要求側のデバイスに送信され得るチャレンジ・トークン204である。このチャレンジ・トークンは、デバイスがそのデバイス自体を有効なデバイスとして提示したときにその有効なデバイスのみが復号できるような方法で保護されることが可能である。この例示的なチャレンジ・トークンは、マネージャのURL(又は他の連絡先アドレス若しくはメカニズム)及びマネージャの識別子など、デバイスが適切なマネージャを特定するのに有用であるとともに、デバイスが正しいマネージャに連絡していることをマネージャが検証するのに有用である情報を含む。チャレンジ・トークンは、deviceID及びSRK_PUBなど、デバイスに固有の情報を含むこともでき、これは、デバイス及び対応するマネージャが、この情報がこの特定のデバイスに関連していることを検証するのに役立つ。同様に、有効期限又は存続時間(TTL:time to live)値及びトークンごとに生成されるランダムなナンスなどの追加情報を含めることもでき、それによって、第2のチャレンジ・トークンが同じナンスで受信された場合、これは、誰か又は何かが同じチャレンジ・トークンを再利用しようとしているとの指摘とすることができる。 A second exemplary token is a challenge token 204 that may be generated by the CDS and sent to the requesting device. This challenge token may be protected in such a way that only a valid device can decrypt it when the device presents itself as a valid device. This exemplary challenge token includes information that is useful for the device to identify the appropriate manager and for the manager to verify that the device is contacting the correct manager, such as the manager's URL (or other contact address or mechanism) and the manager's identifier. The challenge token may also include information that is specific to the device, such as deviceID and SRK_PUB, which helps the device and the corresponding manager to verify that this information is related to this particular device. Similarly, additional information may also be included, such as an expiration or time to live (TTL) value and a random nonce that is generated for each token, so that if a second challenge token is received with the same nonce, this may be an indication that someone or something is trying to reuse the same challenge token.
内部層では、CDS秘密鍵を使用して、このチャレンジ・トークンに署名することができる。中間層では、デバイスの永続的な公開鍵EK_PUBを使用して、この署名付き鍵を暗号化することができる。これは、デバイスの現在の所有者又はマネージャに関係なく、このデバイスだけがそのTPMにおけるEK_PRIV鍵を用いてこのチャレンジ・トークンを復号できることを保証するのに役立つ。次いで、外部層では、自己生成公開鍵(SRK_PUB)を使用して、このトークンを暗号化することができ、自己生成公開鍵は、現在の所有状態にあるデバイスによってのみ、そのデバイスの自己生成秘密鍵(SRK_PRIV)を使用して復号することが可能であるべきである。EK_PUBとSRK_PUBの両方を用いて暗号化することは、適正なデバイスがアクセスを取得していること(SRKはデバイスが生成した鍵であり、認証が困難であることがあるため)、及びデバイスがその現在の動作状態に関する情報のみを取得していること(EKはあらゆる所有者又は状態にわたって存続するため)を保証するのに役立つ。次いで、外部-外部層では、CDSの秘密鍵署名を使用して、このチャレンジ・トークンに署名することができる。これらの層は異なる順序である可能性があること、同様の層、より少ない層、追加の層、又は代替の層が様々な実施例の範囲内で使用できることを理解されたい。 At the inner layer, the CDS private key can be used to sign this challenge token. At the middle layer, the signed key can be used to encrypt the device's persistent public key EK_PUB. This helps ensure that only the device can decrypt this challenge token with the EK_PRIV key in its TPM, regardless of the device's current owner or manager. At the outer layer, the token can then be encrypted with a self-generated public key (SRK_PUB) that should only be decryptable by the device in its current ownership state, using the device's self-generated private key (SRK_PRIV). Encrypting with both EK_PUB and SRK_PUB helps ensure that the right device is getting access (since SRK is a device-generated key that can be difficult to authenticate) and that the device is only getting information about its current operating state (since EK persists across all owners or states). At the outer-external layer, the CDS private key signature can then be used to sign this challenge token. It is understood that these layers may be in a different order and that similar, fewer, additional, or alternative layers may be used within the scope of various embodiments.
第3の例示的なトークンは、ベアラ・トークン206であり、チャレンジ・トークン204を正常に復号して適切なマネージャ情報を特定したデバイスは、構成情報を取得するためにベアラ・トークン206をそのマネージャに提供することができる。このベアラ・トークン206は、署名付きであるが復号されたチャレンジ・トークンを含むことができ、この実例では、チャレンジ・トークンは、マネージャ及びデバイスに関する情報だけでなく、ナンス及びTTL値を含むことができる。デバイス及びマネージャに関する情報によって、マネージャは、この要求がこの特定のマネージャを対象とした特定のデバイスからの要求であると判定することができ、一方、TTL値によって、マネージャは、ベアラ・トークンが引き続き有効であると判定することができ、ナンスによって、マネージャは、ベアラ・トークンの再利用が試行されていないと判定することができる。次いで、このベアラ・トークンに、デバイスの自己生成秘密鍵(SRK_PRIV)で署名することができ、したがって、マネージャは、対応する公開鍵を使用して復号することによって、これが適正なデバイスから送信されたことを検証することができる。マネージャは、その現在の状態における又はその現在の所有権を有するデバイスに関するデータのみを復号できるべきであり、他の状態、又は他のマネージャに関連付けられている可能性のある所有権のデータは復号できるべきでないので、少なくともいくつかの実施例では、永続的な鍵の代わりに自己生成鍵を使用して署名することがデバイスにとって重要である可能性がある。 A third exemplary token is the bearer token 206, which a device that successfully decodes the challenge token 204 to identify the appropriate manager information can provide to its manager to obtain configuration information. This bearer token 206 can include a signed but decoded challenge token, which in this example can include information about the manager and device, as well as a nonce and a TTL value. The device and manager information allows the manager to determine that this request is from a specific device intended for this specific manager, while the TTL value allows the manager to determine that the bearer token is still valid, and the nonce allows the manager to determine that no reuse of the bearer token has been attempted. This bearer token can then be signed with the device's self-generated private key (SRK_PRIV), so that the manager can verify that it was sent from the correct device by decrypting it using the corresponding public key. Because a manager should only be able to decrypt data that pertains to the device in its current state or with its current ownership, and not data in other states or ownerships that may be associated with other managers, in at least some embodiments it may be important for the device to sign with a self-generated key instead of a persistent key.
図3は、少なくとも一実施例により実行され得る、デバイスのゼロタッチ登録のための例示的なプロセス300を示す。本明細書に提示するこのプロセス及び他のプロセスについて、特に明記しない限り、様々な実施例の範囲内で、同様の又は代替の順序で、又は少なくとも部分的に並行して、追加のステップ、より少ないステップ、又は代替のステップが存在し得ることを理解されたい。この実例では、デバイスは、新しいデバイスとして、又は新しい構成及びマネージャ情報が取得されることになるデバイスのワイプ後に、初期起動を受ける(302)。このデバイスは、マネージャ情報要求を生成して、その要求を中央ディレクトリ・サービス(CDS)又は他のそのようなエンティティに送信することができ(304)、その要求は、図2に関して説明したような要求トークン内のデバイス識別情報を含むことができる。この要求を受信したCDSは、デバイス情報を検証し、そのデバイスに対する適切なマネージャを特定することができる。次いで、チャレンジ・トークンをCDSからデバイスに受信することができ(306)、そのチャレンジ・トークンは、複数のセキュアなラッピングを伴うマネージャに関する情報を含む。デバイスは、マネージャ情報、及び本明細書で説明する潜在的に他の情報を含むベース・トークン(又は復号されたチャレンジ・トークン)を取得するために、そのチャレンジ・トークンを復号し(308)、何らかの適切な検証を実行することができる。次に、デバイスは、復号されたトークンを含む、デバイスによってデジタル署名されたベアラ・トークンを生成し(610)、チャレンジ・トークンをベアラ・トークンに効果的に変換することができる。次いで、復号されたトークンから見出されたマネージャ情報を使用して特定されたマネージャに、ベアラ・トークンを含む、構成情報要求を送信することができる(312)。マネージャは、情報を検証し、適切な構成(及び他の関連する)情報をデバイスに送信することができる。デバイスは、マネージャからこの構成情報を受信することができ(314)、この受信した構成情報を使用してデバイスを構成することができる(316)。デバイスは、起動及び構成が完了した後、デバイスの所期の目的で動作することができる(318)。 3 illustrates an example process 300 for zero-touch registration of a device that may be performed by at least one embodiment. It should be understood that for this and other processes presented herein, there may be additional, fewer, or alternative steps within various embodiments, in similar or alternative orders, or at least partially in parallel, unless otherwise stated. In this example, a device undergoes an initial boot (302) as a new device or after a wipe of the device from which new configuration and manager information will be obtained. The device may generate a manager information request and send the request (304) to a central directory service (CDS) or other such entity, which may include device identification information in a request token as described with respect to FIG. 2. The CDS that receives the request may validate the device information and identify the appropriate manager for the device. A challenge token may then be received (306) from the CDS to the device, which includes information about the manager with multiple secure wrappings. The device may decode (308) the challenge token to obtain a base token (or decoded challenge token) that contains the manager information, and potentially other information as described herein, and perform any appropriate validation. The device may then generate (610) a bearer token that is digitally signed by the device and contains the decoded token, effectively converting the challenge token into a bearer token. It may then send (312) a configuration information request, including the bearer token, to the identified manager using the manager information found in the decoded token. The manager may validate the information and send the appropriate configuration (and other related) information to the device. The device may receive (314) this configuration information from the manager, and may use this received configuration information to configure the device (316). After the device is up and configured, it may operate for its intended purpose (318).
図4は、中央ディレクトリ・サービス(CDS)などのエンティティ又はシステムによって実行され得る例示的なプロセス400を示しており、このプロセスは、図3に関して説明した登録プロセスの一部であり得る。この実例では、CDSは、デバイスの自己生成鍵を使用して暗号化又は署名されたデバイス識別子(ID)を含む要求をデバイスから受信することができる(402)。CDSは、デバイスの妥当性を確認するために、そのデバイス識別子及びデバイス識別子に含まれる情報を既知の有効なデバイスのデータベースと突き合わせて比較することができる(404)。少なくとも一実施例では、この比較は、データベース内のそのデバイスのシリアル番号を見つけることだけでなく、提供される鍵情報がデバイスのデータベース内のそのシリアル番号に対応すると保証することも含むことができる。デバイスの妥当性を確認できない場合、CDSは、他の選択肢の中でもとりわけ、要求を無視するか、何らかのタイプのエラー・メッセージを送り返すことができる。デバイス情報の妥当性を確認することができる場合、既知のデバイスのマッピングのセットを参照することなどによって、そのデバイスに対するマネージャ406又は他の関連するシステム若しくはサービスを特定することができる(406)。CDSは、このデバイス対する適切なマネージャを特定するのに有用な情報を含むトークンを生成することができ(408)、その情報は、デバイス識別子、マネージャ情報、トークンの有効期限、及びランダムに生成されたナンスを含んでもよい。このトークンを1つ又は複数のセキュリティ・ラッピングでラップして、保護されたチャレンジ・トークンを生成することができ(410)、そのトークンは、1回又は複数回、暗号化及び/又は署名することができる。次いで、チャレンジ・トークンをデバイスに送信することができ(412)、適切なセキュリティ情報を有するデバイスは、チャレンジ・トークン内の情報を復号して利用できるはずである。 FIG. 4 illustrates an exemplary process 400 that may be performed by an entity or system, such as a central directory service (CDS), which may be part of the registration process described with respect to FIG. 3. In this example, the CDS may receive a request from a device that includes a device identifier (ID) encrypted or signed using the device's self-generated key (402). The CDS may compare the device identifier and the information contained in the device identifier against a database of known valid devices to validate the device (404). In at least one embodiment, this comparison may include not only locating the device's serial number in the database, but also ensuring that the key information provided corresponds to that serial number in the database of devices. If the device cannot be validated, the CDS may ignore the request or send back some type of error message, among other options. If the device information can be validated, a manager 406 or other relevant system or service for the device may be identified (406), such as by referencing a set of mappings of known devices. The CDS can generate a token containing information useful for identifying the appropriate manager for this device (408), which may include a device identifier, manager information, a token expiration date, and a randomly generated nonce. This token can be wrapped with one or more security wrappings to generate a protected challenge token (410), which can be encrypted and/or signed one or more times. The challenge token can then be sent to the device (412), and a device with the appropriate security information should be able to decrypt and use the information in the challenge token.
図5は、図4のプロセスで生成されたチャレンジ・トークンなどの暗号妥当性確認用のチャレンジ・トークンを受信するデバイスによって実行され得る例示的なプロセス500を示しており、このプロセスは、図3に関して説明した登録プロセスの一部であり得る。本明細書に述べる他のプロセスと同様に、これらのステップの少なくともいくつかの順序又は包含は、実施例間で異なる場合がある。この実例では、デバイスは、情報事前要求に応答して、中央ディレクトリ・サービス(CDS)又は他のそのようなエンティティからチャレンジ・トークンを受信する(502)。デバイスは、最初にチャレンジ・トークン上のCDS署名を検証することによって、チャレンジ・トークンの整合性を判断することができる(504)。次いで、デバイスは、デバイスの自己生成鍵及び永続的な鍵を使用して、チャレンジ・トークンを復号することができる(506)。前述のように、両方の鍵を使用することにより、デバイスがデバイスの所有者又は使用状況の現在の状態に対して許可されている情報にのみアクセスすることを保証することができ、デバイスが主張しているデバイスであることを保証する。次いで、チャレンジ・トークンの復号に成功したデバイスは、CDS公開鍵を使用してチャレンジ・トークンの内部署名を検証することができる(508)。復号及び検証されると、デバイスは、トークンに含まれるマネージャ情報を特定することができる(510)。マネージャ情報は、たとえば、識別子、及びユニフォーム・リソース・ロケータ(URL:Uniform Resource Locator)などのアドレス情報を含むことができる。次いで、デバイスは、署名付きであるが復号されたチャレンジ・トークンをトークン内からのナンスと組み合わせてベアラ・トークンを作成することができ(512)、次いで、自己生成デバイス鍵を用いてベアラ・トークンに署名することができる(514)。マネージャは、そのマネージャがデバイスに関連付けられている間にのみ、そのデバイスに関する情報にアクセスできるべきであり、他の時間はアクセスできるべきではないので、永続的なデバイス鍵の代わりに自己生成鍵が使用される。次いで、デバイスは、構成情報要求又は他のそのような通信とともに、ベアラ・トークンを特定されたマネージャに送信することができる(516)。このプロセスでは、デバイスはCDSと1回の往復通信で通信し、その後デバイスはマネージャと直接通信するので、マネージャはCDSと直接通信しない。このようなプロセスでは、デバイスがチャレンジ・トークンを介してデバイス自体を認証できない限り、マネージャの識別はデバイスに公開されない。 5 illustrates an exemplary process 500 that may be performed by a device receiving a cryptographic validation challenge token, such as the challenge token generated in the process of FIG. 4, which may be part of the registration process described with respect to FIG. 3. As with other processes described herein, the order or inclusion of at least some of these steps may vary between embodiments. In this example, the device receives a challenge token from a central directory service (CDS) or other such entity in response to a pre-request for information (502). The device may determine the integrity of the challenge token by first verifying the CDS signature on the challenge token (504). The device may then decrypt the challenge token (506) using the device's self-generated key and persistent key. As previously discussed, the use of both keys may ensure that the device only accesses information authorized for the device's owner or current state of usage, ensuring that the device is the device it claims to be. A device that successfully decrypts the challenge token may then verify the internal signature of the challenge token using the CDS public key (508). Once decrypted and verified, the device may determine the manager information contained in the token (510). The manager information may include, for example, an identifier and address information such as a Uniform Resource Locator (URL). The device may then combine the signed but decrypted challenge token with a nonce from within the token to create a bearer token (512), and then sign the bearer token with a self-generated device key (514). The self-generated key is used instead of a persistent device key because the manager should only have access to information about the device while the manager is associated with the device, and not at other times. The device may then send the bearer token to the identified manager along with a configuration information request or other such communication (516). In this process, the manager does not communicate directly with the CDS, since the device communicates with the CDS in one round trip communication, and then the device communicates directly with the manager. In such a process, the identity of the manager is not revealed to the device unless the device can authenticate itself via the challenge token.
図6は、図5のプロセスで生成されたベアラ・トークンなどのベアラ・トークンを、構成情報要求とともに受信するデバイス・マネージャによって実行され得る例示的なプロセス600を示しており、このプロセスは、図3に関して説明した登録プロセスの一部であり得る。この実例では、署名付きベアラ・トークンが、要求とともに受信される(602)。マネージャは、ベアラ・トークンの内部がCDSによって正しく署名されていることを検証することができる(604)。少なくとも一実施例では、セキュリティ要件によって、デバイスがCDSによってそのマネージャに参照されたことをマネージャがCDSに連絡する必要なしに検証できなければならないと指示してもよい。マネージャは、ベアラ・トークンに含まれるマネージャ情報が正しいこと、及びトークンの有効期限が切れていないことを検証することもできる(606)。マネージャは、外部又はラッパーが、内部に埋め込まれているのと同じ自己生成デバイス鍵で署名されていることを検証することもできる(608)。マネージャは、このCDS署名付きベアラ・トークン内のナンスが、このCDS署名付きトークンの外部であるがベアラ・トークンに含まれているナンスと一致することを検証することもできる(610)。前述のように、これらのステップのうちの少なくともいくつかは、異なる順序で、又は少なくとも部分的に並行して実行することができる。この情報が検証されると、正しい構成情報を特定してデバイスに送信することができ(612)、それにより、デバイスは、デバイスの所期のタスクを実行できるようにするために、構成を利用してその起動手順を完了することが可能になる。少なくともいくつかの実施例では、このマネージャは、このデバイス、場合によっては他のデバイスに関連付けられたユーザ又はエンティティがこれらのデバイスを管理できるようにするコンソール若しくはインターフェースを提供するか又はそのコンソール若しくはインターフェースに関連付けられることが可能である。少なくとも一実施例では、エンティティは、それらのコンソールにログインして、そのようなプロセスを通じて自動的に登録及び/又はプロビジョニングされたデバイスのリストを見ることができる。デバイスは、マネージャ・システムによって公開されている1つ又は複数のアプリケーション・プログラミング・インターフェース(API:application programming interface)を使用して呼出しを行うこともでき、これらのAPI呼出しによって自己生成鍵を利用してもよい。 FIG. 6 illustrates an exemplary process 600 that may be performed by a device manager receiving a bearer token, such as the bearer token generated in the process of FIG. 5, along with a configuration information request, which may be part of the registration process described with respect to FIG. 3. In this example, a signed bearer token is received along with the request (602). The manager may verify that the inside of the bearer token is correctly signed by the CDS (604). In at least one embodiment, security requirements may dictate that the manager must be able to verify that the device was referred to the manager by the CDS without needing to contact the CDS. The manager may also verify that the manager information included in the bearer token is correct and that the token has not expired (606). The manager may also verify that the outside or wrapper is signed with the same self-generated device key that is embedded inside (608). The manager may also verify that the nonce in the CDS-signed bearer token matches the nonce that is outside the CDS-signed token but included in the bearer token (610). As mentioned above, at least some of these steps can be performed in a different order or at least partially in parallel. Once this information is verified, the correct configuration information can be identified and sent to the device (612), allowing the device to utilize the configuration to complete its startup procedures to enable the device to perform its intended tasks. In at least some embodiments, the manager can provide or be associated with a console or interface that allows users or entities associated with this device, and possibly other devices, to manage those devices. In at least one embodiment, entities can log into those consoles to see a list of devices that have been automatically registered and/or provisioned through such a process. The devices can also make calls using one or more application programming interfaces (APIs) exposed by the manager system, and may utilize self-generated keys through these API calls.
データ・センタ
図7は、少なくとも一実施例が使用されてもよい例示的なデータ・センタ700を示す。たとえば、少なくとも一実施例において、CDS又はデバイス・マネージャは、データ・センタに含まれてもよい。少なくとも一実施例では、データ・センタ700は、データ・センタ・インフラストラクチャ層710、フレームワーク層720、ソフトウェア層730、及びアプリケーション層740を含む。
7 illustrates an exemplary data center 700 in which at least one embodiment may be used. For example, in at least one embodiment, a CDS or a device manager may be included in the data center. In at least one embodiment, the data center 700 includes a data center infrastructure layer 710, a framework layer 720, a software layer 730, and an application layer 740.
図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つ又は複数を有するサーバであってもよい。 7, in at least one embodiment, a data center infrastructure layer 710 may include a resource orchestrator 712, grouped computing resources 714, and node computing resources (“node C.R.”) 716(1)-716(N), where “N” represents any positive integer. In at least one embodiment, a node C.R. 716(1)-716(N) may include, but are not limited to, any number of central processing units ("CPUs") or other processors (including accelerators, field programmable gate arrays (FPGAs), graphics processors, etc.), memory devices (e.g., dynamic read-only memory), storage devices (e.g., solid-state drives or disk drives), network input/output ("NW I/O") devices, network switches, virtual machines ("VMs"), power modules, and cooling modules. In at least one embodiment, one or more of the nodes C.R. 716(1)-716(N) may be a server having one or more of the computing resources described above.
少なくとも一実施例では、グループ化済みコンピューティング・リソース714は、1つ若しくは複数のラック(図示せず)内に収容されたノードC.R.の別々のグループ、又は様々なグラフィカル・ロケーション(同じく図示せず)においてデータ・センタに収容された多数のラックを含んでもよい。グループ化済みコンピューティング・リソース714内のノードC.R.の別々のグループは、1つ若しくは複数のワークロードをサポートするように構成又は配分されてもよいグループ化済みのコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含んでもよい。少なくとも一実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のラック内でグループ化されて、1つ又は複数のワークロードをサポートするためのコンピュート・リソースが提供されてもよい。少なくとも一実施例では、1つ又は複数のラックはまた、任意の数の電源モジュール、冷却モジュール、及びネットワーク・スイッチを任意の組合せで含んでもよい。 In at least one embodiment, the grouped computing resources 714 may include separate groups of nodes C.R. housed in one or more racks (not shown), or multiple racks housed in a data center in various graphical locations (also not shown). The separate groups of nodes C.R. in the grouped computing resources 714 may include grouped compute resources, network resources, memory resources, or storage resources that may be configured or allocated to support one or more workloads. In at least one embodiment, several nodes C.R. including CPUs or processors may be grouped in one or more racks to provide compute resources to support one or more workloads. In at least one embodiment, the one or more racks may also include any number of power modules, cooling modules, and network switches in any combination.
少なくとも一実施例では、リソース・オーケストレータ712は、1つ又は複数のノードC.R.716(1)~716(N)及び/若しくはグループ化済みコンピューティング・リソース714を構成してもよく、又は他のやり方で制御してもよい。少なくとも一実施例では、リソース・オーケストレータ712は、データ・センタ700用のソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含んでもよい。少なくとも一実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はこれらの何らかの組合せを含んでもよい。 In at least one embodiment, the resource orchestrator 712 may configure or otherwise control one or more nodes C.R. 716(1)-716(N) and/or grouped computing resources 714. In at least one embodiment, the resource orchestrator 712 may include a software design infrastructure ("SDI") management entity for the data center 700. In at least one embodiment, the resource orchestrator may include hardware, software, or some combination thereof.
図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と連携して、これらのマッピング又は配分されたコンピューティング・リソースを管理してもよい。 As shown in FIG. 7, in at least one embodiment, framework layer 720 includes a job scheduler 722, a configuration manager 724, a resource manager 726, and a distributed file system 728. In at least one embodiment, framework layer 720 may include a framework for supporting software 732 in software layer 730 and/or one or more applications 742 in application layer 740. In at least one embodiment, software 732 or applications 742 may each include web-based service software or applications, such as those offered by Amazon Web Services, Google Cloud, and Microsoft Azure. In at least one embodiment, framework layer 720 may be, but is not limited to, a type of free and open source software web application framework, such as Apache Spark® (hereinafter “Spark”), which can use distributed file system 728 for large-scale data processing (e.g., “big data”). In at least one embodiment, the job scheduler 722 may include a Spark driver to facilitate scheduling of workloads supported by various tiers of the data center 700. In at least one embodiment, the configuration manager 724 may be capable of configuring different tiers, such as the software tier 730, and the framework tier 720 including Spark and a distributed file system 728 to support large scale data processing. In at least one embodiment, the resource manager 726 may be capable of managing clustered or grouped computing resources that are mapped or allocated to support the distributed file system 728 and the job scheduler 722. In at least one embodiment, the clustered or grouped computing resources may include the grouped computing resources 714 in the data center infrastructure tier 710. In at least one embodiment, the resource manager 726 may work in conjunction with the resource orchestrator 712 to manage these mapped or allocated computing resources.
少なくとも一実施例では、ソフトウェア層730に含まれるソフトウェア732は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用されるソフトウェアを含んでもよい。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含んでもよいが、これらに限定されない。 In at least one embodiment, the software 732 included in the software layer 730 may include software used by at least a portion of the nodes C.R. 716(1)-716(N), the grouped computing resources 714, and/or the distributed file system 728 of the framework layer 720. The one or more types of software may include, but are not limited to, Internet web page searching software, e-mail virus scanning software, database software, and streaming video content software.
少なくとも一実施例では、アプリケーション層740に含まれるアプリケーション742は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用される1つ若しくは複数のタイプのアプリケーションを含んでもよい。1つ若しくは複数のタイプのアプリケーションは、任意の数のゲノム学アプリケーション、認識コンピュート、並びに訓練若しくは推論のソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む機械学習アプリケーション、又は1つ若しくは複数の実施例と併せて使用される他の機械学習アプリケーションを含んでもよいが、これらに限定されない。 In at least one embodiment, the applications 742 included in the application layer 740 may include one or more types of applications used by at least a portion of the nodes C.R. 716(1)-716(N), the grouped computing resources 714, and/or the distributed file system 728 of the framework layer 720. The one or more types of applications may include, but are not limited to, any number of genomics applications, cognitive compute, and machine learning applications including training or inference software, machine learning framework software (e.g., PyTorch, TensorFlow, Caffe, etc.), or other machine learning applications used in conjunction with one or more embodiments.
少なくとも一実施例では、構成マネージャ724、リソース・マネージャ726、及びリソース・オーケストレータ712のうちのいずれかは、任意の技術的に実行可能なやり方で取得された任意の量及びタイプのデータに基づき、任意の数及びタイプの自己修正措置を実装してもよい。少なくとも一実施例では、自己修正措置は、データ・センタ700のデータ・センタ演算子が、不良の恐れのある構成を決定しないようにし、十分に利用されていない且つ/又は性能の低いデータ・センタの部分をなくせるようにしてもよい。 In at least one embodiment, any of configuration manager 724, resource manager 726, and resource orchestrator 712 may implement any number and type of self-correcting actions based on any amount and type of data obtained in any technically feasible manner. In at least one embodiment, the self-correcting actions may enable data center operators of data center 700 to avoid determining potentially bad configurations and eliminate underutilized and/or underperforming portions of the data center.
少なくとも一実施例では、データ・センタ700は、1つ若しくは複数の機械学習モデルを訓練し、又は本明細書に記載の1つ若しくは複数の実施例による1つ若しくは複数の機械学習モデルを使用して情報を予測若しくは推論するためのツール、サービス、ソフトウェア、又は他のリソースを含んでもよい。たとえば、少なくとも一実施例では、機械学習モデルは、データ・センタ700に関して上述したソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練されてもよい。少なくとも一実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練済み機械学習モデルは、本明細書に記載の1つ又は複数の技法によって計算された重みパラメータを使用することにより、データ・センタ700に関して上述したリソースを使用して、情報を推論又は予測するために使用されてもよい。 In at least one embodiment, data center 700 may include tools, services, software, or other resources for training one or more machine learning models or predicting or inferring information using one or more machine learning models according to one or more embodiments described herein. For example, in at least one embodiment, a machine learning model may be trained by calculating weight parameters according to a neural network architecture using the software and computing resources described above with respect to data center 700. In at least one embodiment, a trained machine learning model corresponding to one or more neural networks may be used to infer or predict information using the resources described above with respect to data center 700 by using weight parameters calculated by one or more techniques described herein.
少なくとも一実施例では、データ・センタは、上述したリソースを使用して訓練及び/又は推論を実行するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用してもよい。さらに、上述した1つ又は複数のソフトウェア及び/又はハードウェアのリソースは、画像認識、音声認識、又は他の人工知能サービスなどの情報の訓練又は推論の実行を、ユーザが行えるようにするためのサービスとして構成されてもよい。 In at least one embodiment, the data center may use a CPU, application specific integrated circuit (ASIC), GPU, FPGA, or other hardware to perform training and/or inference using the resources described above. Additionally, one or more of the software and/or hardware resources described above may be configured as a service to enable a user to train or perform inference on information, such as image recognition, speech recognition, or other artificial intelligence services.
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。 These components can be used for zero-touch registration of devices via a secure token-based approach with the associated manager system.
コンピュータ・システム
図8は、例示的なコンピュータ・システムを示すブロック図であり、このコンピュータ・システムは、少なくとも一実施例による、命令を実行するための実行ユニットを含んでもよいプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SoC)、又はこれら800の何らかの組合せを有するシステムであってもよい。少なくとも一実施例では、コンピュータ・システム800は、本明細書に記載の実施例などにおいて本開示に従ってデータを処理するためのアルゴリズムを実行する論理を含む実行ユニットを使用するための、プロセッサ802などの構成要素を、限定することなく含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、カリフォルニア州サンタクララのインテルコーポレーションから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、Xeon(商標)、Itanium(登録商標)、XScale(商標)及び/又はStrongARM(商標)、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含んでもよいが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含め)他のシステムが使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、ワシントン州、レドモンドのマイクロソフトコーポレーションから入手可能なWINDOWS(登録商標)のオペレーティング・システムのあるバージョンを実行してもよいが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースが使用されてもよい。
8 is a block diagram illustrating an exemplary computer system, which may be a system having interconnected devices and components formed with a processor that may include execution units for executing instructions, a system on a chip (SoC), or some combination of these 800, according to at least one embodiment. In at least one embodiment, computer system 800 may include components such as, without limitation, a processor 802 for using execution units that include logic to execute algorithms for processing data in accordance with the present disclosure, such as in the embodiments described herein. In at least one embodiment, computer system 800 may include a processor such as the PENTIUM® processor family, Xeon™, Itanium®, XScale™, and/or StrongARM™, Intel® Core™, or Intel® Nervana™ microprocessors available from Intel Corporation of Santa Clara, Calif., although other systems may be used (including PCs with other microprocessors, engineering workstations, set-top boxes, etc.). In at least one embodiment, computer system 800 may run a version of the WINDOWS® operating system available from Microsoft Corporation of Redmond, Wash., although other operating systems (e.g., UNIX and Linux), embedded software, and/or graphical user interfaces may be used.
実施例は、携帯型デバイス及び組み込みアプリケーションなど、他のデバイスで使用されてもよい。携帯型デバイスのいくつかの例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」:personal digital assistants)、及び携帯型PCを含む。少なくとも一実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」:digital signal processor)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computers)、セット・トップ・ボックス、ネットワーク・ハブ、広域ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも一実施例による1つ又は複数の命令を実行することができる任意の他のシステムを含んでもよい。 Embodiments may be used in other devices, such as portable devices and embedded applications. Some examples of portable devices include cellular phones, Internet protocol devices, digital cameras, personal digital assistants ("PDAs"), and portable PCs. In at least one embodiment, embedded applications may include microcontrollers, digital signal processors ("DSPs"), systems-on-chips, network computers ("NetPCs"), set-top boxes, network hubs, wide area network ("WAN") switches, or any other system capable of executing one or more instructions according to at least one embodiment.
少なくとも一実施例では、コンピュータ・システム800は、限定することなくプロセッサ802を含んでもよく、このプロセッサ802は限定することなく、本明細書に記載の技法による機械学習モデルの訓練及び/又は推論を実行するための1つ又は複数の実行ユニット808を含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、シングル・プロセッサのデスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム800はマルチプロセッサ・システムであってもよい。少なくとも一実施例では、プロセッサ802は、限定することなく、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」)マイクロプロセッサ、超長命令語(「VLIW」)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は任意の他のプロセッサ・デバイス、たとえばデジタル信号プロセッサなどを含んでもよい。少なくとも一実施例では、プロセッサ802は、プロセッサ・バス810に結合されてもよく、このプロセッサ・バスは、プロセッサ802とコンピュータ・システム800内の他の構成要素との間でデータ信号を送信してもよい。 In at least one embodiment, computer system 800 may include, without limitation, a processor 802, which may include one or more execution units 808 for performing training and/or inference of machine learning models according to the techniques described herein. In at least one embodiment, computer system 800 is a single processor desktop or server system, while in another embodiment, computer system 800 may be a multiprocessor system. In at least one embodiment, processor 802 may include, without limitation, a complex instruction set computer ("CISC") microprocessor, a reduced instruction set computing ("RISC") microprocessor, a very long instruction word ("VLIW") microprocessor, a processor implementing a combination of instruction sets, or any other processor device, such as a digital signal processor. In at least one embodiment, the processor 802 may be coupled to a processor bus 810, which may transmit data signals between the processor 802 and other components within the computer system 800.
少なくとも一実施例では、プロセッサ802は、限定することなく、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)804を含んでもよい。少なくとも一実施例では、プロセッサ802は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ802の外部にあってもよい。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せも含んでよい。少なくとも一実施例では、レジスタ・ファイル806は、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタを限定することなく含む様々レジスタに、異なるタイプのデータを記憶してもよい。 In at least one embodiment, the processor 802 may include, without limitation, a level 1 ("L1") internal cache memory ("cache") 804. In at least one embodiment, the processor 802 may have a single internal cache or multiple levels of internal cache. In at least one embodiment, the cache memory may be external to the processor 802. Other embodiments may include a combination of both internal and external cache depending on the particular implementation and needs. In at least one embodiment, the register file 806 may store different types of data in various registers, including, without limitation, integer registers, floating point registers, status registers, and an instruction pointer register.
少なくとも一実施例では、整数及び浮動小数点の演算を実行するための論理を限定することなく含む実行ユニット808も、プロセッサ802にある。少なくとも一実施例では、プロセッサ802は、ある一定のマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)も含んでよい。少なくとも一実施例では、実行ユニット808は、パック命令セット809に対処する論理を含んでもよい。少なくとも一実施例では、パック命令セット809を、命令を実行する関連回路とともに汎用プロセッサの命令セットに含めることにより、多くのマルチメディア・アプリケーションによって使用される演算を、汎用プロセッサ802のパック・データを使用して実行することができる。1つ又は複数の実施例では、プロセッサのデータ・バスの全幅を使用してパック・データの演算を実行することによって、多くのマルチメディア・アプリケーションを加速し、より効率的に実行することができ、これにより、1度に1つのデータ要素に対して1つ又は複数の演算を実行するためにプロセッサのデータ・バス間でより小さい単位のデータを転送する必要をなくすことができる。 In at least one embodiment, processor 802 also includes an execution unit 808, including, without limitation, logic for performing integer and floating point operations. In at least one embodiment, processor 802 may also include a microcode ("ucode") read only memory ("ROM") that stores microcode for certain macroinstructions. In at least one embodiment, execution unit 808 may include logic to accommodate a packed instruction set 809. In at least one embodiment, by including packed instruction set 809 in the instruction set of a general purpose processor along with associated circuitry for executing the instructions, operations used by many multimedia applications may be performed using packed data in general purpose processor 802. In one or more embodiments, many multimedia applications may be accelerated and executed more efficiently by performing operations on packed data using the full width of the processor's data bus, thereby eliminating the need to transfer smaller units of data between the processor's data bus to perform one or more operations on one data element at a time.
少なくとも一実施例では、実行ユニット808はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、限定することなくメモリ820を含んでもよい。少なくとも一実施例では、メモリ820は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装されてもよい。少なくとも一実施例では、メモリ820は、プロセッサ802によって実行されてもよいデータ信号によって表される命令819、及び/又はデータ821を記憶してもよい。 In at least one embodiment, the execution unit 808 may also be used in microcontrollers, embedded processors, graphics devices, DSPs, and other types of logic circuits. In at least one embodiment, the computer system 800 may include, without limitation, memory 820. In at least one embodiment, the memory 820 may be implemented as a dynamic random access memory ("DRAM") device, a static random access memory ("SRAM") device, a flash memory device, or other memory device. In at least one embodiment, the memory 820 may store instructions 819 and/or data 821 represented by data signals that may be executed by the processor 802.
少なくとも一実施例では、システム論理チップが、プロセッサ・バス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に結合されてもよい。 In at least one embodiment, a system logic chip may be coupled to the processor bus 810 and memory 820. In at least one embodiment, the system logic chip may include, without limitation, a memory controller hub ("MCH") 816, and the processor 802 may communicate with the MCH 816 via the processor bus 810. In at least one embodiment, the MCH 816 may provide a high bandwidth memory path 818 to the memory 820 for storing instructions and data, and for storing graphics commands, data, and textures. In at least one embodiment, the MCH 816 may route data signals between the processor 802, the memory 820, and other components of the computer system 800, and may bridge data signals between the processor bus 810, the memory 820, and the system I/O interface 822. In at least one embodiment, the system logic chip may provide a graphics port for coupling to a graphics controller. In at least one embodiment, the MCH 816 may be coupled to memory 820 via a high-bandwidth memory path 818, and the graphics/video card 812 may be coupled to the MCH 816 via an Accelerated Graphics Port ("AGP") interconnect 814.
少なくとも一実施例では、コンピュータ・システム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デバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備えてもよい。 In at least one embodiment, computer system 800 may use system I/O 822, a proprietary hub interface bus for coupling MCH 816 to I/O controller hub ("ICH") 830. In at least one embodiment, ICH 830 may provide direct connectivity to some I/O devices via a local I/O bus. In at least one embodiment, the local I/O bus may include, without limitation, a high-speed I/O bus for connecting peripherals to memory 820, chipset, and processor 802. Examples may include, without limitation, an audio controller 829, a firmware hub ("Flash BIOS") 828, a wireless transceiver 826, data storage 824, a legacy I/O controller 823 including a user input and keyboard interface 825, a serial expansion port 827 such as a Universal Serial Bus ("USB"), and a network controller 834. Data storage 824 may comprise a hard disk drive, a floppy disk drive, a CD-ROM device, a flash memory device, or other mass storage device.
少なくとも一実施例では、図8は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、図8は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、コンピュータ・システム800の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続されてもよい。 In at least one embodiment, FIG. 8 illustrates a system including interconnected hardware devices or "chips," while in other embodiments, FIG. 8 may illustrate an exemplary system-on-a-chip ("SoC"). In at least one embodiment, the devices may be interconnected with a proprietary interconnect, a standard interconnect (e.g., PCIe), or some combination thereof. In at least one embodiment, one or more components of computer system 800 may be interconnected using a compute express link (CXL) interconnect.
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。 These components can be used for zero-touch registration of devices via a secure token-based approach with the associated manager system.
図9は、少なくとも一実施例による、プロセッサ910を利用するための電子デバイス900を示すブロック図である。少なくとも一実施例では、電子デバイス900は、たとえば限定することなく、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであってもよい。 FIG. 9 is a block diagram illustrating an electronic device 900 for utilizing a processor 910, according to at least one embodiment. In at least one embodiment, the electronic device 900 may be, for example, without limitation, a notebook, a tower server, a rack server, a blade server, a laptop, a desktop, a tablet, a mobile device, a phone, an embedded computer, or any other suitable electronic device.
少なくとも一実施例では、システム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)相互接続を使用して相互接続されてもよい。 In at least one embodiment, system 900 may include, without limitation, a processor 910 communicatively coupled to any suitable number or type of components, peripherals, modules, or devices. In at least one embodiment, the processor 910 may be configured to communicate with a 1° C. bus, a System Management Bus (“SMBus”), a Low Pin Count (LPC) bus, a Serial Peripheral Interface (“SPI”), a High Definition Audio (“HDA”) bus, a Serial Advance Technology Attachment (“SATA”) bus, a Universal Serial Bus (“USB”) (versions 1, 2, and 3), or a Universal Asynchronous Receiver/Transmitter (“UART”) bus. 9 are coupled using a bus or interface, such as a PCI Express (Asynchronous Receiver/Transmitter) bus. In at least one embodiment, FIG. 9 illustrates a system including interconnected hardware devices or "chips," while in other embodiments, FIG. 9 may illustrate an exemplary system-on-a-chip ("SoC"). In at least one embodiment, the devices illustrated in FIG. 9 may be interconnected with a proprietary interconnect, a standard interconnect (e.g., PCIe), or some combination thereof. In at least one embodiment, one or more components of FIG. 9 may be interconnected using a Compute Express Link (CXL) interconnect.
少なくとも一実施例では、図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を含んでもよい。これらの構成要素は、それぞれ任意の好適なやり方で実装されてもよい。 In at least one embodiment, FIG. 9 illustrates a display 924, a touch screen 925, a touch pad 930, a Near Field Communications unit ("NFC") 945, a sensor hub 940, a thermal sensor 946, an Express Chipset ("EC") 935, a Trusted Platform Module ("TPM") 938, a BIOS/firmware/flash memory ("BIOS,FW flash") 922, a DSP 960, a Solid State Disk ("SSD") or a Hard Disk Drive ("HDD") 970, and/or a USB 2.0 port 980. 9, a drive 920, such as a USB 3.0 Disk Drive, a wireless local area network unit ("WLAN") 950, a Bluetooth unit 952, a wireless wide area network unit ("WWAN") 956, a Global Positioning System (GPS) 955, a camera ("USB 3.0 camera") 954, such as a USB 3.0 camera, and/or a low power double data rate ("LPDDR") technology implemented, for example, in the LPDDR3 standard. A low-rate memory unit ("LPDDR3") 915 may also be included. Each of these components may be implemented in any suitable manner.
少なくとも一実施例では、上述した構成要素を介して、他の構成要素がプロセッサ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)に実装されてもよい。 In at least one embodiment, other components may be communicatively coupled to the processor 910 via the components described above. In at least one embodiment, an accelerometer 941, an ambient light sensor ("ALS") 942, a compass 943, and a gyroscope 944 may be communicatively coupled to the sensor hub 940. In at least one embodiment, a thermal sensor 939, a fan 937, a keyboard 946, and a touch pad 930 may be communicatively coupled to the EC 935. In at least one embodiment, a speaker 963, a headphone 964, and a microphone ("mic") 965 may be communicatively coupled to an audio unit (audio codec and class d amplifier) 962, which may be communicatively coupled to the DSP 960. In at least one embodiment, the audio unit 964 may include, for example, without limitation, an audio coder/decoder ("codec") and a class D amplifier. In at least one embodiment, a SIM card ("SIM") 957 may be communicatively coupled to the WWAN unit 956. In at least one embodiment, components such as the WLAN unit 950 and the Bluetooth unit 952, as well as the WWAN unit 956, may be implemented in a Next Generation Form Factor ("NGFF").
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。 These components can be used for zero-touch registration of devices via a secure token-based approach with the associated manager system.
図10は、少なくとも一実例による処理システムのブロック図である。少なくとも一実施例では、システム1000は、1つ又は複数のプロセッサ1002、及び1つ又は複数のグラフィックス・プロセッサ1008を含み、単一プロセッサのデスクトップ・システム、マルチプロセッサのワークステーション・システム、又は多数のプロセッサ1002若しくはプロセッサ・コア1007を有するサーバ・システムであってもよい。少なくとも一実施例では、システム1000は、モバイル・デバイス、携帯型デバイス、又は組み込みデバイスで使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。 10 is a block diagram of a processing system according to at least one example embodiment. In at least one embodiment, the system 1000 includes one or more processors 1002 and one or more graphics processors 1008 and may be a single processor desktop system, a multiprocessor workstation system, or a server system having multiple processors 1002 or processor cores 1007. In at least one embodiment, the system 1000 is a processing platform integrated into a system-on-chip (SoC) integrated circuit for use in a mobile, portable, or embedded device.
少なくとも一実施例では、システム1000は、サーバ・ベースのゲーミング・プラットフォーム、ゲーム及びメディアのコンソールを含むゲーム・コンソール、モバイル・ゲーミング・コンソール、携帯型ゲーム・コンソール、若しくはオンライン・ゲーム・コンソールを含んでもよく、又はそれらに組み込まれてもよい。少なくとも一実施例では、システム1000は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス、又はモバイル・インターネット・デバイスである。少なくとも一実施例では、処理システム1000はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、若しくは仮想現実デバイスなどのウェアラブル・デバイスを含んでもよく、それらに結合されてもよく、又はそれらの中に一体化されてもよい。少なくとも一実施例では、処理システム1000は、1つ又は複数のプロセッサ1002と、1つ又は複数のグラフィックス・プロセッサ1008によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。 In at least one embodiment, the system 1000 may include or be incorporated into a server-based gaming platform, a game console including a game and media console, a mobile gaming console, a handheld game console, or an online game console. In at least one embodiment, the system 1000 is a mobile phone, a smart phone, a tablet computing device, or a mobile Internet device. In at least one embodiment, the processing system 1000 may also include, be coupled to, or be integrated into a wearable device, such as a smart watch wearable device, a smart eyewear device, an augmented reality device, or a virtual reality device. In at least one embodiment, the processing system 1000 is a television or set-top box device having one or more processors 1002 and a graphical interface generated by one or more graphics processors 1008.
少なくとも一実施例では、1つ又は複数のプロセッサ1002はそれぞれ、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実行する命令を処理するための1つ又は複数のプロセッサ・コア1007を含む。少なくとも一実施例では、1つ又は複数のプロセッサ・コア1007のそれぞれは、特定の命令セット1009を処理するように構成される。少なくとも一実施例では、命令セット1009は、複合命令セット・コンピューティング(CISC)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にしてもよい。少なくとも一実施例では、プロセッサ・コア1007はそれぞれ、異なる命令セット1009を処理してもよく、この命令セットは、他の命令セットのエミュレーションを容易にする命令を含んでもよい。少なくとも一実施例では、プロセッサ・コア1007はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含んでもよい。 In at least one embodiment, the one or more processors 1002 each include one or more processor cores 1007 for processing instructions that, when executed, perform operations for system and user software. In at least one embodiment, each of the one or more processor cores 1007 is configured to process a particular instruction set 1009. In at least one embodiment, the instruction set 1009 may facilitate complex instruction set computing (CISC), reduced instruction set computing (RISC), or computing via very long instruction words (VLIW). In at least one embodiment, the processor cores 1007 each may process a different instruction set 1009, which may include instructions that facilitate emulation of other instruction sets. In at least one embodiment, the processor cores 1007 may also include other processing devices, such as digital signal processors (DSPs).
少なくとも一実施例では、プロセッサ1002はキャッシュ・メモリ1004を含む。少なくとも一実施例では、プロセッサ1002は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ1002の様々な構成要素間で共有される。少なくとも一実施例では、プロセッサ1002はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC))(図示せず)を使用し、このキャッシュは、知られているキャッシュ・コヒーレンス技法を使用して、プロセッサ・コア1007間で共有されてもよい。少なくとも一実施例では、さらにレジスタ・ファイル1006がプロセッサ1002に含まれ、このレジスタ・ファイルは、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタ)を含んでもよい。少なくとも一実施例では、レジスタ・ファイル1006は、汎用レジスタ又は他のレジスタを含んでもよい。 In at least one embodiment, the processor 1002 includes a cache memory 1004. In at least one embodiment, the processor 1002 may have a single internal cache or multiple levels of internal cache. In at least one embodiment, the cache memory is shared among various components of the processor 1002. In at least one embodiment, the processor 1002 also uses an external cache (e.g., a level 3 (L3) cache or a last level cache (LLC)) (not shown), which may be shared among the processor cores 1007 using known cache coherence techniques. In at least one embodiment, the processor 1002 further includes a register file 1006, which may include different types of registers (e.g., integer registers, floating point registers, status registers, and an instruction pointer register) for storing different types of data. In at least one embodiment, the register file 1006 may include general purpose registers or other registers.
少なくとも一実施例では、1つ又は複数のプロセッサ1002は、1つ又は複数のインターフェース・バス1010に結合されて、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1002とシステム1000内の他の構成要素との間で送信する。少なくとも一実施例では、インターフェース・バス1010は、一実施例では、ダイレクト・メディア・インターフェース(DMI)バスのバージョンなどのプロセッサ・バスとすることができる。少なくとも一実施例では、インターフェース1010は、DMIバスに限定されず、1つ又は複数のペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)、メモリ・バス、又は他のタイプのインターフェース・バスを含んでもよい。少なくとも一実施例では、プロセッサ1002は、統合メモリ・コントローラ1016、及びプラットフォーム・コントローラ・ハブ1030を含む。少なくとも一実施例では、メモリ・コントローラ1016は、メモリ・デバイスとシステム1000の他の構成要素との間の通信を容易にし、一方でプラットフォーム・コントローラ・ハブ(PCH)1030は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。 In at least one embodiment, the one or more processors 1002 are coupled to one or more interface buses 1010 to transmit communication signals, such as address, data, or control signals, between the processors 1002 and other components in the system 1000. In at least one embodiment, the interface bus 1010 may be a processor bus, such as a version of a Direct Media Interface (DMI) bus in one embodiment. In at least one embodiment, the interface 1010 is not limited to a DMI bus, but may include one or more peripheral component interconnect buses (e.g., PCI, PCI Express), memory buses, or other types of interface buses. In at least one embodiment, the processor 1002 includes an integrated memory controller 1016 and a platform controller hub 1030. In at least one embodiment, the memory controller 1016 facilitates communication between memory devices and other components of the system 1000, while the platform controller hub (PCH) 1030 provides connectivity to I/O devices via a local I/O bus.
少なくとも一実施例では、メモリ・デバイス1020は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとしての役割を果たすのに好適な性能を有する何らかの他のメモリ・デバイスとすることができる。少なくとも一実施例では、メモリ・デバイス1020は、システム1000のためのシステム・メモリとして動作して、1つ又は複数のプロセッサ1002がアプリケーション若しくはプロセスを実行するときに使用するためのデータ1022及び命令1021を記憶することができる。少なくとも一実施例では、メモリ・コントローラ1016はまた、任意選択の外部グラフィックス・プロセッサ1012と結合しており、このグラフィックス・プロセッサは、プロセッサ1002内の1つ又は複数のグラフィックス・プロセッサ1008と通信して、グラフィックス及びメディアの動作を実行してもよい。少なくとも一実施例では、ディスプレイ・デバイス1011は、プロセッサ1002に接続することができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、モバイル電子デバイス又はラップトップ・デバイスのような内部ディスプレイ・デバイス、又はディスプレイ・インターフェース(たとえば、ディスプレイ・ポートなど)を介して取り付けられる外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションで使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD)を含むことができる。 In at least one embodiment, the memory device 1020 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, a flash memory device, a phase change memory device, or any other memory device with suitable performance to serve as process memory. In at least one embodiment, the memory device 1020 may operate as a system memory for the system 1000 to store data 1022 and instructions 1021 for use when the one or more processors 1002 execute applications or processes. In at least one embodiment, the memory controller 1016 is also coupled to an optional external graphics processor 1012, which may communicate with one or more graphics processors 1008 in the processor 1002 to perform graphics and media operations. In at least one embodiment, a display device 1011 may be connected to the processor 1002. In at least one embodiment, the display device 1011 may include one or more of an internal display device, such as a mobile electronic device or laptop device, or an external display device attached via a display interface (e.g., a display port, etc.). In at least one embodiment, the display device 1011 may include a head mounted display (HMD), such as a stereoscopic display device for use in virtual reality (VR) or augmented reality (AR) applications.
少なくとも一実施例では、プラットフォーム・コントローラ・ハブ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の接続入力デバイスにも接続することができる。 In at least one embodiment, the platform controller hub 1030 allows peripherals to connect to the memory device 1020 and the processor 1002 via a high-speed I/O bus. In at least one embodiment, the I/O peripherals include, but are not limited to, an audio controller 1046, a network controller 1034, a firmware interface 1028, a wireless transceiver 1026, a touch sensor 1025, and a data storage device 1024 (e.g., hard disk drive, flash memory, etc.). In at least one embodiment, the data storage device 1024 can be connected via a storage interface (e.g., SATA) or via a peripheral bus such as a peripheral component interconnect bus (e.g., PCI, PCI Express). In at least one embodiment, the touch sensor 1025 can include a touch screen sensor, a pressure sensor, or a fingerprint sensor. In at least one embodiment, wireless transceiver 1026 may be a WiFi transceiver, a Bluetooth transceiver, or a mobile network transceiver such as a 3G, 4G, or Long Term Evolution (LTE) transceiver. In at least one embodiment, firmware interface 1028 enables communication with system firmware and may be, for example, a Unified Extensible Firmware Interface (UEFI). In at least one embodiment, network controller 1034 may enable network connectivity to a wired network. In at least one embodiment, a high performance network controller (not shown) couples to interface bus 1010. In at least one embodiment, audio controller 1046 is a multi-channel high definition audio controller. In at least one embodiment, system 1000 includes an optional legacy I/O controller 1040 for coupling legacy (e.g., Personal System 2 (PS/2)) devices to the system. In at least one embodiment, platform controller hub 1030 can also connect to one or more universal serial bus (USB) controllers 1042 connected input devices, such as a keyboard and mouse 1043 combination, a camera 1044, or other USB input devices.
少なくとも一実施例では、メモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030のインスタンスは、外部グラフィックス・プロセッサ1012などの個別の外部グラフィックス・プロセッサに一体化されてもよい。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030及び/又はメモリ・コントローラ1016は、1つ又は複数のプロセッサ1002の外部にあってもよい。たとえば、少なくとも一実施例では、システム1000は、外部のメモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030を含むことができ、これらは、プロセッサ1002と通信するシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺装置コントローラ・ハブとして構成されてもよい。 In at least one embodiment, instances of memory controller 1016 and platform controller hub 1030 may be integrated into a separate external graphics processor, such as external graphics processor 1012. In at least one embodiment, platform controller hub 1030 and/or memory controller 1016 may be external to one or more processors 1002. For example, in at least one embodiment, system 1000 may include external memory controller 1016 and platform controller hub 1030, which may be configured as a memory controller hub and a peripheral controller hub in a system chipset that communicates with processor 1002.
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。 These components can be used for zero-touch registration of devices via a secure token-based approach with the associated manager system.
図11は、少なくとも一実施例による、1つ又は複数のプロセッサ・コア1102A~1102N、統合メモリ・コントローラ1114、及び統合グラフィックス・プロセッサ1108を有するプロセッサ1100のブロック図である。少なくとも一実施例では、プロセッサ1100は、破線の四角によって表される追加コア1102Nを含むそれ以下の数の追加コアを含むことができる。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれは、1つ又は複数の内部キャッシュ・ユニット1104A~1104Nを含む。少なくとも一実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュ・ユニット1106にアクセスできる。 Figure 11 is a block diagram of a processor 1100 having one or more processor cores 1102A-1102N, an integrated memory controller 1114, and an integrated graphics processor 1108, according to at least one embodiment. In at least one embodiment, the processor 1100 may include a smaller number of additional cores, including additional core 1102N, represented by a dashed box. In at least one embodiment, each of the processor cores 1102A-1102N includes one or more internal cache units 1104A-1104N. In at least one embodiment, each processor core also has access to one or more shared cache units 1106.
少なくとも一実施例では、内部キャッシュ・ユニット1104A~1104N、及び共有キャッシュ・ユニット1106は、プロセッサ1100内のキャッシュ・メモリ階層を表す。少なくとも一実施例では、キャッシュ・メモリ・ユニット1104A~1104Nは、各プロセッサ・コア内の命令及びデータのキャッシュの少なくとも1つのレベル、並びにレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含んでもよく、ここで外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも一実施例では、キャッシュ・コヒーレンス論理は、様々なキャッシュ・ユニット1106及び1104A~1104N間でコヒーレンスを維持する。 In at least one embodiment, the internal cache units 1104A-1104N and the shared cache unit 1106 represent a cache memory hierarchy within the processor 1100. In at least one embodiment, the cache memory units 1104A-1104N may include at least one level of instruction and data cache within each processor core, as well as one or more levels of shared intermediate level caches, such as level 2 (L2), level 3 (L3), level 4 (L4), or other levels of cache, where the highest level of cache before external memory is classified as an LLC. In at least one embodiment, cache coherence logic maintains coherency between the various cache units 1106 and 1104A-1104N.
少なくとも一実施例では、プロセッサ1100はまた、1つ又は複数のバス・コントローラ・ユニット1116とシステム・エージェント・コア1110のセットを含んでもよい。少なくとも一実施例では、1つ又は複数のバス・コントローラ・ユニット1116は、1つ又は複数のPCI若しくはPCIエクスプレス・バスなどのペリフェラル・バスのセットを管理する。少なくとも一実施例では、システム・エージェント・コア1110は、様々なプロセッサ構成要素のための管理機能を提供する。少なくとも一実施例では、システム・エージェント・コア1110は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合メモリ・コントローラ1114を含む。 In at least one embodiment, the processor 1100 may also include a set of one or more bus controller units 1116 and a system agent core 1110. In at least one embodiment, the one or more bus controller units 1116 manage a set of peripheral buses, such as one or more PCI or PCI Express buses. In at least one embodiment, the system agent core 1110 provides management functions for the various processor components. In at least one embodiment, the system agent core 1110 includes one or more integrated memory controllers 1114 for managing access to various external memory devices (not shown).
少なくとも一実施例では、プロセッサ・コア1102A~1102Nの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも一実施例では、システム・エージェント・コア1110は、マルチスレッドの処理中にコア1102A~1102Nを調整し動作させるための構成要素を含む。少なくとも一実施例では、システム・エージェント・コア1110はさらに、電力制御ユニット(PCU)を含んでもよく、このユニットは、プロセッサ・コア1102A~1102N及びグラフィックス・プロセッサ1108の1つ又は複数の電力状態を調整するための論理及び構成要素を含む。 In at least one embodiment, one or more of the processor cores 1102A-1102N include support for simultaneous multithreading. In at least one embodiment, the system agent core 1110 includes components for coordinating and operating the cores 1102A-1102N during multithreaded processing. In at least one embodiment, the system agent core 1110 may further include a power control unit (PCU), which includes logic and components for coordinating the power state of one or more of the processor cores 1102A-1102N and the graphics processor 1108.
少なくとも一実施例では、プロセッサ1100はさらに、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1108を含む。少なくとも一実施例では、グラフィックス・プロセッサ1108は、共有キャッシュ・ユニット1106と、1つ又は複数の統合メモリ・コントローラ1114を含むシステム・エージェント・コア1110とに結合する。少なくとも一実施例では、システム・エージェント・コア1110はまた、1つ又は複数の結合されたディスプレイに対してグラフィックス・プロセッサの出力を行わせるためのディスプレイ・コントローラ1111を含む。少なくとも一実施例では、ディスプレイ・コントローラ1111はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1108に結合された別個のモジュールであってもよく、又はグラフィックス・プロセッサ1108内に一体化されていてもよい。 In at least one embodiment, the processor 1100 further includes a graphics processor 1108 for performing graphics processing operations. In at least one embodiment, the graphics processor 1108 couples to a shared cache unit 1106 and to a system agent core 1110 that includes one or more integrated memory controllers 1114. In at least one embodiment, the system agent core 1110 also includes a display controller 1111 for directing the output of the graphics processor to one or more coupled displays. In at least one embodiment, the display controller 1111 may also be a separate module coupled to the graphics processor 1108 via at least one interconnect or may be integrated within the graphics processor 1108.
少なくとも一実施例では、プロセッサ1100の内部構成要素を結合するために、リング・ベースの相互接続ユニット1112が使用される。少なくとも一実施例では、ポイントツーポイント相互接続、スイッチ相互接続、又は他の技法などの代替的な相互接続ユニットが使用されてもよい。少なくとも一実施例では、グラフィックス・プロセッサ1108は、I/Oリンク1113を介してリング相互接続1112と結合する。 In at least one embodiment, a ring-based interconnect unit 1112 is used to couple the internal components of processor 1100. In at least one embodiment, alternative interconnect units such as point-to-point interconnects, switched interconnects, or other techniques may be used. In at least one embodiment, graphics processor 1108 couples to ring interconnect 1112 via I/O link 1113.
少なくとも一実施例では、I/Oリンク1113は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1118との間の通信を容易にするオン・パッケージI/O相互接続を含む多様なI/O相互接続のうちの少なくとも1つを表す。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれ及びグラフィックス・プロセッサ1108は、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1118を使用する。 In at least one embodiment, I/O link 1113 represents at least one of a variety of I/O interconnects, including an on-package I/O interconnect that facilitates communication between various processor components and a high-performance embedded memory module 1118, such as an eDRAM module. In at least one embodiment, each of processor cores 1102A-1102N and graphics processor 1108 use embedded memory module 1118 as a shared last-level cache.
少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、命令セット・アーキテクチャ(ISA)の観点から見れば異種であり、ここでプロセッサ・コア1102A~1102Nのうちの1つ又は複数は、共通の命令セットを実行するが、プロセッサ・コア1102A~1102Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、マイクロ・アーキテクチャの観点から見れば異種であり、ここで電力消費量が相対的に高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数のコアと結合する。少なくとも一実施例では、プロセッサ1100は、1つ又は複数のチップ上に、又はSoC集積回路として実装することができる。 In at least one embodiment, the processor cores 1102A-1102N are homogenous cores that execute a common instruction set architecture. In at least one embodiment, the processor cores 1102A-1102N are heterogeneous in terms of instruction set architecture (ISA), where one or more of the processor cores 1102A-1102N execute a common instruction set, while one or more other of the processor cores 1102A-1102N execute a subset of the common instruction set, or a different instruction set. In at least one embodiment, the processor cores 1102A-1102N are heterogeneous in terms of micro-architecture, where one or more cores with relatively higher power consumption are combined with one or more cores with lower power consumption. In at least one embodiment, the processor 1100 can be implemented on one or more chips or as a SoC integrated circuit.
こうした構成要素は、関連するマネージャ・システムによるセキュアなトークンベースの手法を介したデバイスのゼロタッチ登録に使用することができる。 These components can be used for zero-touch registration of devices via a secure token-based approach with the associated manager system.
他の変形形態は、本開示の範囲内にある。したがって、開示した技法は、様々な修正及び代替的な構成が可能であるが、それらのうち一定の例示的な実施例が図面に示され、上で詳細に説明されてきた。しかし、特定の1つ又は複数の開示された形に本開示を限定する意図はなく、その反対に、添付の特許請求の範囲に定義される開示の趣旨及び範囲に入るすべての修正形態、代替的な構成、及び等価物を網羅することを意図している。 Other variations are within the scope of the present disclosure. Thus, the disclosed techniques are susceptible to various modifications and alternative constructions, certain illustrative examples of which are shown in the drawings and have been described in detail above. However, there is no intention to limit the disclosure to the particular disclosed form or forms, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the disclosure as defined by the appended claims.
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「備える(comprising)」、「有する(having)」、「含む(including)」、「収容する(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「含むが、これに限定されない」を意味する)と解釈される。「接続される」という用語は、修飾されずに物理的接続を指している場合には、何か介在するものがあったとしても、部分的に又は完全に中に収容される、取り付けられる、又は互いに接合されるものとして解釈される。本明細書において値の範囲を詳述することは、本明細書において別段の記載がない限り、またそれぞれ別々の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に含まれるそれぞれ別々の値を個々に参照する簡潔な方法として機能することを単に意図しているにすぎない。「セット」(たとえば、「アイテムのセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がない、又は否定されていない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がない、又は否定されていない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すのではなく、サブセットと対応するセットは等しくてもよい。 The use of the terms "a," "an," and "the," and similar referents in the context of describing the disclosed embodiments (particularly in the context of the claims below) should be construed to encompass both the singular and the plural, and should not be construed as defining the terms, unless otherwise stated herein or clearly contradicted by context. The terms "comprising," "having," "including," and "containing" are to be construed as open-ended terms (meaning "including, but not limited to"), unless otherwise stated. The term "connected," when referring to a physical connection without modification, is to be construed as being partially or completely contained within, attached to, or joined to one another, even if there is something intervening. The recitation of ranges of values herein is merely intended to serve as a shorthand method of individually referring to each separate value falling within the range, unless otherwise stated herein and unless each separate value is incorporated into the specification as if it were individually recited herein. Use of the term "set" (e.g., "set of items") or "subset" should be construed as a non-empty collection with one or more members, unless otherwise stated or denied by context. Furthermore, unless otherwise stated or denied by context, the term "subset" of a corresponding set does not necessarily refer to a strict subset of the corresponding set, and a subset and a corresponding set may be equivalent.
「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つの項目であるが、明示的に、又は文脈によって示されている場合にはそれより多くてもよい。さらに、別段の記載のない、又は文脈からそうでないことが明らかでない限り、「~に基づく」という言い回しは、「少なくとも部分的に~に基づく」を意味し、「~だけに基づく」を意味しない。 Conjunctions such as phrases of the form "at least one of A, B, and C" or "at least one of A, B, and C" are understood in the context in which they are generally used to indicate that an item, term, etc. is A, B, or C, or a non-empty subset of any of the sets A, B, and C, unless specifically stated otherwise or clearly contradicted by the context. For example, in the illustrative example of a set having three members, the conjunctive phrases "at least one of A, B, and C" and "at least one of A, B, and C" refer to any of the following sets: {A}, {B}, {C}, {A,B}, {A,C}, {B,C}, {A,B,C}. Thus, such conjunctives do not generally imply that a given embodiment requires the presence of at least one A, at least one B, and at least one C, respectively. Further, unless otherwise stated or negated by context, the term "plurality" refers to a plurality (e.g., "a plurality of items" refers to multiple items). A plurality is at least two items, but may be more if indicated explicitly or by context. Further, unless otherwise stated or negated by context, the phrase "based on" means "based at least in part on" and not "based only on."
本明細書に記載のプロセスの動作は、本明細書に別段の記載のない、又は文脈によって明確に否定されない限り、任意の好適な順序で実行することができる。少なくとも一実施例では、本明細書に記載のプロセス(又はその変形及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実行され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行されるコード(たとえば、実行可能な命令、1つ若しくは複数のコンピュータ・プログラム、又は1つ若しくは複数のアプリケーション)として実装される。少なくとも一実施例では、コードは、たとえば1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形で、コンピュータ読取り可能ストレージ媒体に記憶される。少なくとも一実施例では、コンピュータ読取り可能ストレージ媒体は、一時的な信号(たとえば、伝播する一時的な電気若しくは電磁送信)を除外するが、一時的な信号のトランシーバ内の非一時的なデータ・ストレージ回路(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的なコンピュータ読取り可能ストレージ媒体である。少なくとも一実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的なコンピュータ読取り可能ストレージ媒体のセットに記憶され、このストレージ媒体には、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書に記載の動作を実行させる実行可能命令が記憶されている(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的なコンピュータ読取り可能ストレージ媒体のセットは、少なくとも一実施例では、複数の非一時的なコンピュータ読取り可能ストレージ媒体を備え、複数の非一時的なコンピュータ読取り可能ストレージ媒体の個々の非一時的なストレージ媒体のうちの1つ又は複数には、すべてのコードがないが、複数の非一時的なコンピュータ読取り可能ストレージ媒体は、集合的にすべてのコードを記憶している。少なくとも一実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的なコンピュータ読取り可能ストレージ媒体は命令を記憶し、メインの中央処理装置(「CPU」)は一部の命令を実行し、グラフィックス・プロセッシング・ユニット(「GPU」)は他の命令を実行する。少なくとも一実施例では、コンピュータ・システムの異なる構成要素は、別々のプロセッサを有し、異なるプロセッサは、命令の異なるサブセットを実行する。 The operations of the processes described herein may be performed in any suitable order unless otherwise stated herein or clearly contradicted by context. In at least one embodiment, a process such as the processes described herein (or variations and/or combinations thereof) is implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is executed under the control of one or more computer systems configured with executable instructions and collectively executed by hardware on one or more processors, or by a combination thereof. In at least one embodiment, the code is stored on a computer-readable storage medium, e.g., in the form of a computer program comprising a plurality of instructions executable by one or more processors. In at least one embodiment, the computer-readable storage medium is a non-transitory computer-readable storage medium that excludes transitory signals (e.g., propagating transitory electrical or electromagnetic transmissions), but includes non-transitory data storage circuitry (e.g., buffers, caches, and queues) in a transceiver of a transitory signal. In at least one embodiment, code (e.g., executable code or source code) is stored in a set of one or more non-transitory computer readable storage media that store executable instructions (or have other memory for storing executable instructions) that, when executed by (i.e., as a result of being executed by) one or more processors of a computer system, cause the computer system to perform the operations described herein. The set of non-transitory computer readable storage media, in at least one embodiment, comprises a plurality of non-transitory computer readable storage media, where one or more of the individual non-transitory storage media of the plurality of non-transitory computer readable storage media do not contain all the code, but the plurality of non-transitory computer readable storage media collectively store all the code. In at least one embodiment, the executable instructions are executed such that different instructions are executed by different processors, e.g., the non-transitory computer readable storage media store the instructions, a main central processing unit ("CPU") executes some instructions, and a graphics processing unit ("GPU") executes other instructions. In at least one embodiment, different components of a computer system have separate processors, and the different processors execute different subsets of instructions.
したがって、少なくとも一実施例では、コンピュータ・システムは、本明細書に記載のプロセスの動作を単独で又は集合的に実行する1つ又は複数のサービスを実装するように構成され、こうしたコンピュータ・システムは、動作の実行を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも一実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、異なるやり方で動作する複数のデバイスを備える分散型のコンピュータ・システムであり、それにより単一のデバイスがすべての動作を実行しないように分散型のコンピュータ・システムが本明細書に記載の動作を実行する。 Thus, in at least one embodiment, a computer system is configured to implement one or more services that, singly or collectively, perform the operations of the processes described herein, and such computer system is configured with applicable hardware and/or software that enables the operations to be performed. Furthermore, a computer system that implements at least one embodiment of the present disclosure is a single device, and in another embodiment, is a distributed computer system with multiple devices that operate in different ways, such that the distributed computer system performs the operations described herein such that no single device performs all the operations.
本明細書に提供されるあらゆる例、又は例示的な言葉(たとえば、「など」)の使用は、本開示の実施例をより明らかにすることだけを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。 Any examples provided herein, or the use of exemplary language (e.g., "such as"), are intended only to better illuminate embodiments of the disclosure and do not limit the scope of the disclosure unless otherwise asserted. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.
本明細書に引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることがあたかも個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。 All references cited in this specification, including publications, patent applications, and patents, are hereby incorporated by reference to the same extent as if each reference was individually and specifically indicated to be incorporated by reference and set forth in its entirety herein.
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用されてもよい。これらの用語は、互いに同義語として意図されていない場合があることを理解すべきである。むしろ、特定の例では、「接続される」又は「結合される」は、2つ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用されてもよい。また「結合される」は、2つ以上の要素が直接互いに接触していないが、なお互いに連動又は相互作用することを意味してもよい。 In the specification and claims, the terms "coupled" and "connected," along with their derivatives, may be used. It should be understood that these terms may not be intended as synonyms for each other. Rather, in certain instances, "connected" or "coupled" may be used to indicate that two or more elements are in direct or indirect physical or electrical contact with each other. "Coupled" may also mean that two or more elements are not in direct contact with each other, but still interlock or interact with each other.
別段の具体的な記載のない限り、明細書全体を通して「処理する」、「コンピューティング」、「計算する」、又は「判定する」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータをコンピューティング・システムのメモリ、レジスタ、又は他のそのような情報ストレージ・デバイス、送信デバイス、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるよう操作及び/又は変換するコンピュータ若しくはコンピューティング・システム、又は同様の電子コンピューティング・デバイスの行為及び/又はプロセスを指す。 Unless specifically stated otherwise, terms such as "processing," "computing," "calculating," or "determining" throughout the specification refer to the acts and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical quantities, such as electronic quantities, in the registers and/or memory of the computing system into other data similarly represented as physical quantities in the memory, registers, or other such information storage, transmission, or display device of the computing system.
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶することができる他の電子データに変換する任意のデバイス、又はデバイスの一部分を指してもよい。非限定的な例として、「プロセッサ」は、CPU又はGPUであってもよい。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備えてもよい。本明細書で使用する「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実行するソフトウェア及び/又はハードウェアのエンティティを含んでもよい。また、各プロセスは、命令を直列で又は並列で連続的に又は断続的に実行するための複数のプロセスを指してもよい。「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化することができ、方法がシステムと考えられてもよい場合に限り、本明細書において交換可能に使用される。 Similarly, the term "processor" may refer to any device, or part of a device, that processes electronic data from registers and/or memory and converts the electronic data into other electronic data that can be stored in registers and/or memory. As a non-limiting example, a "processor" may be a CPU or a GPU. A "computing platform" may comprise one or more processors. As used herein, a "software" process may include software and/or hardware entities that perform work over time, such as tasks, threads, and intelligent agents. Also, each process may refer to multiple processes for serially or in parallel, continuously or intermittently executing instructions. The terms "system" and "method" are used interchangeably herein to the extent that a system may embody one or more methods and a method may be considered a system.
本明細書では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又はそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及することができる。アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力することは、関数呼出し、又はアプリケーション・プログラミング・インターフェースへの呼出しのパラメータとしてデータを受信するなど、様々なやり方で実現することができる。いくつかの実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、直列又は並列のインターフェースを介してデータを転送することによって実現することができる。別の実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、提供するエンティティから取得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現することができる。また、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示することにも言及することができる。様々な例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示するプロセスは、関数呼出しの入力又は出力のパラメータ、アプリケーション・プログラミング・インターフェース若しくはプロセス間通信機構のパラメータとしてデータを転送することによって実現することができる。 As used herein, reference may be made to obtaining, acquiring, receiving, or inputting analog or digital data into a subsystem, computer system, or computer-implemented machine. Obtaining, acquiring, receiving, or inputting analog or digital data may be realized in various ways, such as receiving data as a parameter of a function call or a call to an application programming interface. In some implementations, the process of obtaining, acquiring, receiving, or inputting analog or digital data may be realized by transferring data over a serial or parallel interface. In another implementation, the process of obtaining, acquiring, receiving, or inputting analog or digital data may be realized by transferring data over a computer network from a providing entity to an acquiring entity. Reference may also be made to providing, outputting, transmitting, sending, or presenting analog or digital data. In various examples, the process of providing, outputting, transmitting, sending, or presenting analog or digital data may be realized by transferring data as an input or output parameter of a function call, a parameter of an application programming interface, or an inter-process communication mechanism.
上の議論は、説明した技法の例示的な実装形態について述べているが、記載した機能を実装するために他のアーキテクチャが使用されてもよく、この他のアーキテクチャは、本開示の範囲内にあることが意図される。さらに、議論を目的として、役割の具体的な分配が上記に定義されているが、様々な機能及び役割は、状況に応じて異なるやり方で分配及び分割されてもよい。 Although the above discussion describes an example implementation of the described techniques, other architectures may be used to implement the described functionality, and are intended to be within the scope of this disclosure. Additionally, while a specific distribution of roles is defined above for purposes of discussion, the various functions and roles may be distributed and divided in different ways depending on the circumstances.
さらに、主題は、構造的特徴及び/又は方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲で特許請求される主題は、説明した特有の特徴又は動作に必ずしも限定されないことが理解されるべきである。むしろ、特有の特徴及び動作は、特許請求の範囲を実装する例示的な形として開示されている。 Additionally, although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter claimed in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.
Claims (13)
前記デバイスによって、前記チャレンジ・トークンを復号して得られた少なくとも宛先を含む情報にアクセスするステップと、
前記デバイスによって、前記復号されたチャレンジ・トークンを、前記デバイスのセキュア鍵を用いて保護されたベアラ・トークンに変換するステップと、
前記デバイスによって、前記ベアラ・トークンを含む第2の要求を、前記チャレンジ・トークンで指定された前記宛先に送信するステップであって、前記ベアラ・トークンが、前記要求の受信者が前記デバイスを認証し、前記デバイスが所期の目的で動作することを可能にする構成情報を前記デバイスに提供することを可能にする、ステップと
を含み、
前記チャレンジ・トークンが、複数のデバイスの連絡先情報を格納する信頼できる機関から受信され、前記連絡先情報が、前記複数のデバイスのサブセットに関連付けられた1つ又は複数のマネージャ・システムを含む1人又は複数人の受信者のアドレス及び識別情報を指定する、方法。 receiving, at the device in response to the first request, a challenge token having one or more layers of encryption;
accessing, by the device , information obtained by decrypting the challenge token, the information including at least the destination ;
converting, by the device, the decrypted challenge token into a bearer token protected using a secure key of the device;
sending , by the device, a second request including the bearer token to the destination specified in the challenge token, the bearer token enabling a recipient of the request to authenticate the device and provide the device with configuration information that enables the device to operate for its intended purpose ;
The method, wherein the challenge token is received from a trusted authority that stores contact information for a plurality of devices, the contact information specifying addresses and identification information of one or more recipients including one or more manager systems associated with a subset of the plurality of devices .
プロセッサと、
前記プロセッサによって実行されると、前記デバイスに、
登録要求に応答して、1つ又は複数の暗号化層を有するチャレンジ・トークンを受信すること、
前記チャレンジ・トークンを復号して得られたマネージャ・システムに関する情報にアクセスすること、
前記復号されたチャレンジ・トークンを、前記デバイスのセキュア鍵を用いて保護されたベアラ・トークンに変換すること、及び
前記デバイスが所期の目的で動作することを可能にする構成情報を求める第2の要求を前記マネージャ・システムに送信することであって、前記第2の要求が、前記マネージャ・システムが前記デバイスを認証して前記構成情報を提供できるようにするための前記ベアラ・トークンを含む、送信すること
を行わせる命令を含む、メモリと
を備え、
前記チャレンジ・トークンが、複数のデバイスの連絡先情報を格納する信頼できる機関から受信され、前記連絡先情報が、前記複数のデバイスのサブセットに関連付けられた1つ又は複数のマネージャ・システムのアドレス及び識別情報を指定する、デバイス。 A device, comprising:
A processor;
When executed by the processor, the device
receiving a challenge token having one or more layers of encryption in response to the registration request;
decrypting the challenge token to access information about the manager system;
converting the decrypted challenge token into a bearer token protected using a secure key of the device; and
and a memory including instructions for causing the device to transmit a second request to the manager system for configuration information that enables the device to operate for an intended purpose , the second request including the bearer token for enabling the manager system to authenticate the device and provide the configuration information ;
A device, wherein the challenge token is received from a trusted authority that stores contact information for a plurality of devices, the contact information specifying addresses and identification information of one or more manager systems associated with a subset of the plurality of devices .
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/062,348 | 2020-10-02 | ||
| US17/062,348 US11563579B2 (en) | 2020-10-02 | 2020-10-02 | Token-based zero-touch enrollment for provisioning edge computing applications |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022060152A JP2022060152A (en) | 2022-04-14 |
| JP7708599B2 true JP7708599B2 (en) | 2025-07-15 |
Family
ID=80738497
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021113368A Active JP7708599B2 (en) | 2020-10-02 | 2021-07-08 | Token-based zero-touch enrollment for provisioning edge computing applications |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US11563579B2 (en) |
| JP (1) | JP7708599B2 (en) |
| CN (2) | CN114389833B (en) |
| DE (1) | DE102021125507A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220131847A1 (en) * | 2020-10-26 | 2022-04-28 | Micron Technology, Inc. | Subscription Sharing among a Group of Endpoints having Memory Devices Secured for Reliable Identity Validation |
| CN115941467B (en) * | 2023-02-03 | 2023-05-16 | 成都万创科技股份有限公司 | A method and system for registering an Internet of Things tablet device based on a registration template |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005348164A (en) | 2004-06-03 | 2005-12-15 | Nippon Telegr & Teleph Corp <Ntt> | Client terminal, gateway device, and network system including these |
| JP2007043750A (en) | 2006-11-02 | 2007-02-15 | Nomura Research Institute Ltd | Method for performing encrypted communication with authentication, authentication system and method |
| JP2009521744A (en) | 2005-12-22 | 2009-06-04 | アクシス アクチボラグ | Method for connecting a monitoring system and a monitoring device to a service server |
| US20110067095A1 (en) | 2009-09-14 | 2011-03-17 | Interdigital Patent Holdings, Inc. | Method and apparatus for trusted authentication and logon |
| JP2013069245A (en) | 2011-09-26 | 2013-04-18 | Kddi Corp | Terminal management device, application distribution system, terminal management method and program |
| JP2020523806A (en) | 2017-06-16 | 2020-08-06 | クリプトグラフィ リサーチ, インコーポレイテッド | Internet of Things (IOT) device management |
Family Cites Families (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006113834A2 (en) * | 2005-04-19 | 2006-10-26 | Microsoft Corporation | Network commercial transactions |
| US8856517B2 (en) * | 2012-11-27 | 2014-10-07 | Oracle International Corporation | Access management system using trusted partner tokens |
| US9154480B1 (en) * | 2012-12-12 | 2015-10-06 | Emc Corporation | Challenge-response authentication of a cryptographic device |
| US20150281225A1 (en) * | 2014-03-27 | 2015-10-01 | Microsoft Corporation | Techniques to operate a service with machine generated authentication tokens |
| US9240887B2 (en) * | 2014-05-02 | 2016-01-19 | Dell Products L.P. | Off-host authentication system |
| US9749131B2 (en) * | 2014-07-31 | 2017-08-29 | Nok Nok Labs, Inc. | System and method for implementing a one-time-password using asymmetric cryptography |
| WO2016159954A1 (en) * | 2015-03-30 | 2016-10-06 | Ruckus Wireless, Inc. | Zero-touch onboarding in a mesh network |
| US10992528B2 (en) * | 2015-04-22 | 2021-04-27 | Hewlett Packard Enterprise Development Lp | Configuring network devices |
| US10034118B2 (en) * | 2015-04-30 | 2018-07-24 | Lantronix, Inc. | Zero-touch Wi-Fi |
| CN106161100B (en) * | 2016-08-03 | 2019-09-27 | 青岛海信电器股份有限公司 | A method for configuring an Internet of Things device and an Internet of Things terminal |
| US10382203B1 (en) * | 2016-11-22 | 2019-08-13 | Amazon Technologies, Inc. | Associating applications with Internet-of-things (IoT) devices using three-way handshake |
| GB201700367D0 (en) * | 2017-01-10 | 2017-02-22 | Trustonic Ltd | A system for recording and attesting device lifecycle |
| CN107147496A (en) * | 2017-04-28 | 2017-09-08 | 广东网金控股股份有限公司 | Under a kind of service-oriented technological frame between different application unified authorization certification method |
| US10298581B2 (en) * | 2017-04-28 | 2019-05-21 | Cisco Technology, Inc. | Zero-touch IoT device provisioning |
| US10924466B2 (en) * | 2017-07-28 | 2021-02-16 | SmartAxiom, Inc. | System and method for IOT security |
| US10474805B2 (en) * | 2017-08-17 | 2019-11-12 | Blackberry Limited | Methods and devices for accessing protected applications |
| EP3619886B1 (en) * | 2017-08-18 | 2025-05-28 | Samsung Electronics Co., Ltd. | Method and an apparatus for onboarding in an iot network |
| US11025608B2 (en) * | 2017-11-10 | 2021-06-01 | Cisco Technology, Inc. | Enabling zero-touch bootstrap for devices across network perimeter firewalls |
| US10057243B1 (en) * | 2017-11-30 | 2018-08-21 | Mocana Corporation | System and method for securing data transport between a non-IP endpoint device that is connected to a gateway device and a connected service |
| WO2019117889A1 (en) * | 2017-12-13 | 2019-06-20 | Google Llc | Mechanism for achieving mutual identity verification via one-way application-device channels |
| US11190513B2 (en) * | 2018-01-19 | 2021-11-30 | Vmware, Inc. | Gateway enrollment for internet of things device management |
| WO2019156716A1 (en) * | 2018-02-09 | 2019-08-15 | Intel Corporation | Trusted iot device configuration and onboarding |
| US11528611B2 (en) * | 2018-03-14 | 2022-12-13 | Rose Margaret Smith | Method and system for IoT code and configuration using smart contracts |
| US11698979B2 (en) * | 2018-03-27 | 2023-07-11 | Workday, Inc. | Digital credentials for access to sensitive data |
| US10855669B2 (en) * | 2018-05-03 | 2020-12-01 | Vmware, Inc. | Authentication service |
| US11251956B2 (en) * | 2018-07-02 | 2022-02-15 | Avaya Inc. | Federated blockchain identity model and secure personally identifiable information data transmission model for RCS |
| CN108810029B (en) * | 2018-07-23 | 2021-08-31 | 宏桥高科技集团有限公司 | A microservice architecture inter-service authentication system and optimization method |
| CN109194484A (en) * | 2018-08-14 | 2019-01-11 | 中国科学院信息工程研究所 | A kind of cross-domain transmission method of token based on shared key |
| US10270770B1 (en) * | 2018-08-23 | 2019-04-23 | Xage Security, Inc. | Generic computing device attestation and enrollment |
| WO2020091789A1 (en) * | 2018-11-01 | 2020-05-07 | Hewlett-Packard Development Company, L.P. | Infrastructure device enrolment |
| US11356440B2 (en) * | 2018-11-30 | 2022-06-07 | International Business Machines Corporation | Automated IoT device registration |
| US11595217B2 (en) * | 2018-12-06 | 2023-02-28 | Digicert, Inc. | System and method for zero touch provisioning of IoT devices |
| US11140149B2 (en) * | 2018-12-20 | 2021-10-05 | Cisco Technology, Inc. | Zero-touch bootstrap of an endpoint without admin pre-provisioning |
| US11356826B2 (en) * | 2019-06-17 | 2022-06-07 | Hall Labs Llc | Medical internet of things device discovery |
| EP3764613A1 (en) * | 2019-07-09 | 2021-01-13 | Gemalto Sa | Method, first device, first server, second server and system for accessing a private key |
| US11689365B2 (en) * | 2019-07-17 | 2023-06-27 | Vmware, Inc. | Centralized volume encryption key management for edge devices with trusted platform modules |
| US11064030B2 (en) * | 2019-10-17 | 2021-07-13 | Cisco Technology, Inc. | Automatic on-boarding agent for IOT edge routers in connected vehicles |
| US20210120412A1 (en) * | 2019-10-21 | 2021-04-22 | Microsoft Technology Licensing, Llc | Zero-touch provisioning of internet of things devices |
| US11316683B2 (en) * | 2019-11-18 | 2022-04-26 | Ciot | Systems and methods for providing IoT security service using hardware security module |
| US11080387B1 (en) * | 2020-03-16 | 2021-08-03 | Integrity Security Services Llc | Validation of software residing on remote computing devices |
| DE102020109696A1 (en) * | 2020-04-07 | 2021-10-07 | Endress + Hauser Process Solutions Ag | Method for connecting a field device to a cloud |
| US11582601B2 (en) * | 2020-05-06 | 2023-02-14 | Cisco Technology, Inc. | Zero-touch deployment (ZTD) of cellular IoT devices and associated trust model |
| US11588856B2 (en) * | 2020-05-08 | 2023-02-21 | Rockwell Automation Technologies, Inc. | Automatic endpoint security policy assignment by zero-touch enrollment |
-
2020
- 2020-10-02 US US17/062,348 patent/US11563579B2/en active Active
-
2021
- 2021-07-08 JP JP2021113368A patent/JP7708599B2/en active Active
- 2021-09-26 CN CN202111130653.8A patent/CN114389833B/en active Active
- 2021-09-26 CN CN202411210795.9A patent/CN119155076A/en active Pending
- 2021-10-01 DE DE102021125507.4A patent/DE102021125507A1/en active Pending
-
2022
- 2022-11-16 US US18/056,068 patent/US12341890B2/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005348164A (en) | 2004-06-03 | 2005-12-15 | Nippon Telegr & Teleph Corp <Ntt> | Client terminal, gateway device, and network system including these |
| JP2009521744A (en) | 2005-12-22 | 2009-06-04 | アクシス アクチボラグ | Method for connecting a monitoring system and a monitoring device to a service server |
| JP2007043750A (en) | 2006-11-02 | 2007-02-15 | Nomura Research Institute Ltd | Method for performing encrypted communication with authentication, authentication system and method |
| US20110067095A1 (en) | 2009-09-14 | 2011-03-17 | Interdigital Patent Holdings, Inc. | Method and apparatus for trusted authentication and logon |
| JP2013069245A (en) | 2011-09-26 | 2013-04-18 | Kddi Corp | Terminal management device, application distribution system, terminal management method and program |
| JP2020523806A (en) | 2017-06-16 | 2020-08-06 | クリプトグラフィ リサーチ, インコーポレイテッド | Internet of Things (IOT) device management |
Also Published As
| Publication number | Publication date |
|---|---|
| US11563579B2 (en) | 2023-01-24 |
| CN114389833A (en) | 2022-04-22 |
| US12341890B2 (en) | 2025-06-24 |
| US20220109569A1 (en) | 2022-04-07 |
| DE102021125507A1 (en) | 2022-04-07 |
| US20230076915A1 (en) | 2023-03-09 |
| JP2022060152A (en) | 2022-04-14 |
| CN119155076A (en) | 2024-12-17 |
| CN114389833B (en) | 2024-09-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11765239B2 (en) | Secure reporting of platform state information to a remote server | |
| US9461994B2 (en) | Trusted computing base evidence binding for a migratable virtual machine | |
| US9912474B2 (en) | Performing telemetry, data gathering, and failure isolation using non-volatile memory | |
| US20150244717A1 (en) | Trusted virtual computing system | |
| US9858412B2 (en) | Secure trusted execution environment data store | |
| CN115470530A (en) | Multi-key cryptographic memory protection | |
| US20170185789A1 (en) | Method and apparatus for hardware based file/document expiry timer enforcement | |
| US20210311798A1 (en) | Dynamic microservices allocation mechanism | |
| US12500867B2 (en) | Cloud-hosted remote access using secure tunnel triggered by edge devices | |
| US20230188341A1 (en) | Cryptographic operations in edge computing networks | |
| CN114202054A (en) | Predictive control using one or more neural networks | |
| US20250168018A1 (en) | Techniques to implement confidential computing with a remote device via use of trust domains | |
| US12341890B2 (en) | Token-based zero-touch enrollment for provisioning edge computing applications | |
| EP4530901A1 (en) | Platform resiliency authority | |
| US20250307356A1 (en) | License distribution and management in a firmware framework | |
| US20250307406A1 (en) | Operating system discovery of, and interaction with, firmware framework devices | |
| US20250307198A1 (en) | Handling node policies in a firmware framework | |
| US10795829B2 (en) | Device, method and system to selectively provide data validation functionality | |
| US12549357B2 (en) | Managing key rotation for endpoint devices using re-keying rules | |
| US20250310129A1 (en) | Endpoint device management using validation rules | |
| US20240348458A1 (en) | System and method for efficient verification of authority for invocation of operations | |
| US20240364734A1 (en) | System and method for security management in distributed systems | |
| US20250301522A1 (en) | Multi-link communication path management system and method for a heterogeneous computing platform | |
| CN120610602A (en) | Processor clock scaling technology |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240411 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250205 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250401 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250630 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20250702 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250703 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7708599 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |