(57)【要約】  一意の識別子を生成するための方法および装置が提供される。1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施する。次いで、1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、1つまたは複数の試験を1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して繰り返す。1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認する。次いで、1つまたは複数のデータ依存型回路経路について確認された複数のしきい値周波数および/またはしきい値電圧に基づいて識別子を生成してよい。
2016510498.tif 000002
【特許請求の範囲】
【請求項１】
一意の識別子を生成するための、処理回路において動作可能な方法であって、
1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施するステップと、
前記1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、前記1つまたは複数の試験を前記1つまたは複数の回路の前記1つまたは複数のデータ依存型回路経路に対して繰り返すステップと、
前記1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認するステップと、
前記1つまたは複数のデータ依存型回路経路について確認された複数の前記しきい値周波数および/またはしきい値電圧に基づいて識別子を生成するステップとを含む方法。
【請求項２】
前記識別子が、前記処理回路を含むプラットフォームに関連付けられる、請求項1に記載の方法。
【請求項３】
ソフトウェアアプリケーションのインストールを前記識別子に関連付けるステップと、
前記処理回路上での前記ソフトウェアアプリケーションの実行を前記識別子を首尾よく検証することにバインドするステップとをさらに含む、請求項1に記載の方法。
【請求項４】
前記識別子を首尾よく検証するために、前記識別子の元のインスタンスを前記識別子のその後生成されたインスタンスと比較してそれらの前記インスタンスが同じであることを確認する、請求項3に記載の方法。
【請求項５】
前記1つまたは複数の回路は、汎用計算構成要素である、請求項1に記載の方法。
【請求項６】
前記1つまたは複数の回路は、非識別子専用計算構成要素である、請求項1に記載の方法。
【請求項７】
前記1つまたは複数の回路は、非記憶回路および/または非メモリ回路である、請求項1に記載の方法。
【請求項８】
前記動作周波数および/または動作電圧は、
前記試験の繰返しごとに前記動作周波数を高くすること、
前記試験の繰返しごとに前記動作電圧を低下させること、および/または
前記試験の繰返しごとに前記動作周波数と動作電圧の組合せを調整することのうちの少なくとも1つによって調整される、請求項1に記載の方法。
【請求項９】
前記1つまたは複数の回路は、
1つまたは複数の内部計算構成要素、
1つまたは複数の外部計算構成要素、および/または
内部計算構成要素と外部計算構成要素の組合せのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項１０】
前記しきい値周波数は、所与のデータ依存型回路経路に関する試験が前記試験に対する誤った応答を示す周波数である、請求項1に記載の方法。
【請求項１１】
前記しきい値周波数は、所与のデータ依存型回路経路に関する試験に対する予想される応答が予想されない応答に変化する周波数である、請求項1に記載の方法。
【請求項１２】
前記識別子は、
1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づく、請求項1に記載の方法。
【請求項１３】
前記識別子は、
2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づく、請求項1に記載の方法。
【請求項１４】
前記識別子を後で検証できるように記憶するステップをさらに含む、請求項1に記載の方法。
【請求項１５】
あらかじめ記憶された識別子を取り込むステップと、
前記生成された識別子を前記あらかじめ記憶された識別子と比較して、それらの前記識別子が同じであるかどうかを確認するステップとをさらに含む、請求項1に記載の方法。
【請求項１６】
1つまたは複数の回路と、
前記1つまたは複数の回路に結合された処理回路であって、
1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施することと、
前記1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、前記1つまたは複数の試験を前記1つまたは複数の回路の前記1つまたは複数のデータ依存型回路経路に対して繰り返すことと、
前記1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認することと、
前記1つまたは複数のデータ依存型回路経路について確認された複数の前記しきい値周波数および/またはしきい値電圧に基づいて識別子を生成することとを行うように適合された処理回路とを備える装置。
【請求項１７】
前記識別子は、前記処理回路を含むプラットフォームに関連付けられる、請求項16に記載の装置。
【請求項１８】
前記処理回路は、
ソフトウェアアプリケーションのインストールを前記識別子に関連付けることと、
前記処理回路上での前記ソフトウェアアプリケーションの実行を前記識別子を首尾よく検証することにバインドすることとを行うようにさらに適合される、請求項16に記載の装置。
【請求項１９】
前記識別子を首尾よく検証するために、前記識別子の元のインスタンスを前記識別子のその後生成されたインスタンスと比較してそれらの前記インスタンスが同じであることを確認する、請求項18に記載の装置。
【請求項２０】
前記1つまたは複数の回路は、汎用計算構成要素である、請求項16に記載の装置。
【請求項２１】
前記1つまたは複数の回路は、非識別子専用計算構成要素である、請求項16に記載の装置。
【請求項２２】
前記1つまたは複数の回路は、非記憶回路および/または非メモリ回路である、請求項16に記載の装置。
【請求項２３】
前記動作周波数および/または動作電圧は、
前記試験の繰返しごとに前記動作周波数を高くすること、
前記試験の繰返しごとに前記動作電圧を低下させること、および/または
前記試験の繰返しごとに前記動作周波数と動作電圧の組合せを調整することのうちの少なくとも1つによって調整される、請求項16に記載の装置。
【請求項２４】
前記1つまたは複数の回路は、
1つまたは複数の内部計算構成要素、
1つまたは複数の外部計算構成要素、および/または
内部計算構成要素と外部計算構成要素の組合せのうちの少なくとも1つを含む、請求項16に記載の装置。
【請求項２５】
前記しきい値周波数は、所与のデータ依存型回路経路に関する試験が前記試験に対する誤った応答を示す周波数である、請求項16に記載の装置。
【請求項２６】
前記しきい値周波数は、所与のデータ依存型回路経路に関する試験に対する予想される応答が予想されない応答に変化する周波数である、請求項16に記載の装置。
【請求項２７】
前記識別子は、
1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づく、請求項16に記載の装置。
【請求項２８】
前記識別子は、
2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づく、請求項16に記載の装置。
【請求項２９】
1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施するための手段と、
前記1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、前記1つまたは複数の試験を前記1つまたは複数の回路の前記1つまたは複数のデータ依存型回路経路に対して繰り返すための手段と、
前記1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認するための手段と、
前記1つまたは複数のデータ依存型回路経路について確認された複数の前記しきい値周波数および/またはしきい値電圧に基づいて識別子を生成するための手段とを備える装置。
【請求項３０】
前記動作周波数および/または動作電圧は、
前記試験の繰返しごとに前記動作周波数を高くすること、
前記試験の繰返しごとに前記動作電圧を低下させること、および/または
前記試験の繰返しごとに前記動作周波数と動作電圧の組合せを調整することのうちの少なくとも1つによって調整される、請求項29に記載の装置。
【請求項３１】
前記1つまたは複数の回路は、
1つまたは複数の内部計算構成要素、
1つまたは複数の外部計算構成要素、または
内部計算構成要素と外部計算構成要素の組合せのうちの1つを含む、請求項29に記載の装置。
【請求項３２】
前記しきい値周波数および/またはしきい値電圧は、それぞれ、所与のデータ依存型回路経路に関する試験に対する予想される応答が予想されない応答に変化する周波数および/または電圧である、請求項29に記載の装置。
【請求項３３】
前記識別子は、
少なくとも1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づく、請求項29に記載の装置。
【請求項３４】
少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施することと、
前記1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、前記1つまたは複数の試験を前記1つまたは複数の回路の前記1つまたは複数のデータ依存型回路経路に対して繰り返すことと、
前記1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認することと、
前記1つまたは複数のデータ依存型回路経路について確認された複数の前記しきい値周波数および/またはしきい値電圧に基づいて識別子を生成することとを行わせる命令が記憶された機械可読記憶媒体。
【請求項３５】
前記動作周波数および/または動作電圧は、
前記試験の繰返しごとに前記動作周波数を高くすること、
前記試験の繰返しごとに前記動作電圧を低下させること、および/または
前記試験の繰返しごとに前記動作周波数と動作電圧の組合せを調整することのうちの少なくとも1つによって調整される、請求項34に記載の機械可読記憶媒体。
【請求項３６】
前記1つまたは複数の回路は、
1つまたは複数の内部計算構成要素、
1つまたは複数の外部計算構成要素、または
内部計算構成要素と外部計算構成要素の組合せのうちの1つを含む、請求項34に記載の機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
米国特許法第119条に基づく優先権の主張
本出願は、参照により本明細書に明確に組み込まれている、2012年12月20日に出願された「Unique  and  Unclonable  Platform  Identifiers  Using  Data-Dependent  Circuit  Path  Responses」という名称の米国仮出願第61/740333号の優先権を主張する。
【０００２】
様々な特徴は、一意でクローン化不能な識別子を生成することに関し、より詳細には、物理的な回路または構成要素の固有の特性に基づく識別子に関する。
【背景技術】
【０００３】
ソフトウェア保護は、ソフトウェアの許可されないコピーを防止するために使用される一種のコンピュータセキュリティ技法である。言い換えれば、ソフトウェアは、ユーザがそのソフトウェアを使用するための適切なライセンスを有しているかどうかを判定し、有している場合にのみ実行できるようにしなければならない。
【０００４】
ソフトウェア保護に関する別の問題は、ソフトウェアが実行されるチップ(たとえば、半導体デバイス)またはプラットフォームが偽造チップであるかどうかをどのように特定するかである。偽造チップが増加しており、電子機器サプライチェーンに危険をもたらす。偽造半導体による製品に対する付随的影響としては、呼断のようなささいな問題からはるかに重大な問題まで広範囲の問題が生じ得る。したがって、電子機器サプライチェーンにおける偽造チップの使用を特定して抑制することが重要である。
【０００５】
ソフトウェア知的財産およびコンテンツ保護に関する最大の問題の1つは、保護されるソフトウェアが実行されるハードウェアプラットフォームを特定できるようにすることである。既存のチップ設計に特別な論理を追加する必要がなく、すでに製造されているチップに適用することもできるゼロコスト解決手段を設計する必要がある。
【０００６】
したがって、特別な論理および/または特定専用回路構成要素の必要なしに、ソフトウェアが、実行されるハードウェアプラットフォームを一意に特定するのを可能にする解決手段が必要である。
【発明の概要】
【課題を解決するための手段】
【０００７】
一意の識別子を生成するための、処理回路において動作可能な方法が提供される。1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施してよい。様々な例において、1つまたは複数の回路は、(a)汎用計算構成要素、(b)非識別子専用計算構成要素、および/または(c)非記憶回路および/または非メモリ回路であってよい。他の例において、1つまたは複数の回路は、(a)1つまたは複数の内部計算構成要素、(b)1つまたは複数の外部計算構成要素、および/または(c)内部計算構成要素と外部計算構成要素の組合せのうちの少なくとも1つを含んでよい。
【０００８】
1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、1つまたは複数の試験を1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して繰り返してよい。(a)試験の繰返しごとに動作周波数を高くすること、(b)試験の繰返しごとに動作電圧を低下させること、および/または(c)試験の繰返しごとに動作周波数と動作電圧の組合せを調整することのうちの少なくとも1つによって動作周波数および/または動作電圧を調整する。
【０００９】
1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認してよい。一例では、しきい値周波数は、所与のデータ依存型回路経路に関する試験が試験に対する誤った応答を示す周波数であってよい。別の例では、しきい値周波数は、所与のデータ依存型回路経路に関する試験に対する予想される応答が予想されない応答に変化する周波数であってよい。
【００１０】
次いで、1つまたは複数のデータ依存型回路経路について確認された複数のしきい値周波数および/またはしきい値電圧に基づいて識別子を生成してよい。一例では、識別子を処理回路を含むプラットフォームに関連付けてよい。別の例では、この方法は、(a)ソフトウェアアプリケーションのインストールを識別子に関連付けること、および/または処理回路上でのソフトウェアアプリケーションの実行を識別子を首尾よく検証することにバインドすることをさらに行ってよい。識別子を首尾よく検証するには、識別子の元のインスタンスを識別子のその後生成されたインスタンスと比較してそれらのインスタンスが同じであることを確認してよい。いくつかの例では、識別子は、(a)1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧あるいは(b)2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づいてよい。識別子をその後検証できるように記憶してよい。検証プロセスの間に、あらかじめ記憶された識別子を取り込んでよい。生成された識別子を次いで、あらかじめ記憶された識別子と比較して、それらの識別子が同じであるかどうかを確認してよい。
【００１１】
一意の識別子を生成するための、処理回路に結合された1つまたは複数の回路を備える装置を提供することができる。(a)1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施すること、(b)1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を繰り返すこと、(c)1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認すること、ならびに/あるいは(d)1つまたは複数のデータ依存型回路経路について確認された複数のしきい値周波数および/またはしきい値電圧に基づいて識別子を生成することを行うように処理回路を適合してよい。
【００１２】
一例では、識別子を処理回路を含むプラットフォームに関連付けてよい。別の例では、ソフトウェアアプリケーションのインストールを識別子に関連付けてよく、処理回路上でのソフトウェアアプリケーションの実行を識別子を首尾よく検証することにバインドする。識別子を首尾よく検証するには、識別子の元のインスタンスを識別子のその後生成されたインスタンスと比較してそれらのインスタンスが同じであることを確認してよい。
【００１３】
様々な例では、1つまたは複数の回路は、(a)汎用計算構成要素、(b)非識別子専用計算構成要素、ならびに/あるいは非記憶回路および/または非メモリ回路であってよい。
【００１４】
(a)試験の繰返しごとに動作周波数を高くすること、(b)試験の繰返しごとに動作電圧を低下させること、および/または(c)試験の繰返しごとに動作周波数と動作電圧の組合せを調整することのうちの少なくとも1つによって動作周波数および/または動作電圧を調整してよい。
【００１５】
1つまたは複数の回路は、(a)1つまたは複数の内部計算構成要素、(b)1つまたは複数の外部計算構成要素、ならびに/あるいは(c)内部計算構成要素と外部計算構成要素の組合せのうちの少なくとも1つを含んでよい。
【００１６】
しきい値周波数は、(a)所与のデータ依存型回路経路に関する試験において試験に対する誤った応答が示され、ならびに/あるいは(b)所与のデータ依存型回路経路に関する試験に対する予想される応答が予想されない応答に変化する周波数であってよい。
【００１７】
この識別子は、(a)1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧ならびに/あるいは(b)2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づいてよい。
【００１８】
様々な特徴、性質、および利点は、下記の詳細な説明を図面と併せ読めば明らかになるであろう。図中、同様の参照符号は、全体を通じて同様の部分を表す。
【図面の簡単な説明】
【００１９】
【図１】搭載構成要素もしくは回路または非搭載構成要素もしくは回路のデータ依存型回路経路応答情報を利用することによって識別子(ID)を抽出する方法を示す図である。
【図２】複数の搭載構成要素もしくは回路または非搭載構成要素もしくは回路のデータ依存型回路経路応答情報を利用することによってプラットフォーム識別子(ID)を抽出する方法を示す図である。
【図３】様々な動作周波数における1組の入力ベクトルの例示的な結果を示す表である。
【図４】様々な動作電圧における1組の入力ベクトルの例示的な結果を示す表である。
【図５】様々な動作周波数-電圧対における1組の入力ベクトルの例示的な結果を示す表である。
【図６】データ依存型回路経路に基づいて一意でクローン化不能な識別子を算出するように適合することのできる例示的な処理回路を示す図である。
【図７】1つまたは複数の搭載構成要素、回路、および/または半導体ならびに/あるいは1つまたは複数の非搭載構成要素、回路、および/または半導体のデータ依存型回路経路応答情報を利用することによって一意でクローン化不能なプラットフォーム識別子(ID)を算出する方法を示す図である。
【発明を実施するための形態】
【００２０】
以下の説明では、本開示の様々な態様の完全な理解を提供するために具体的な詳細が与えられる。しかしながら、態様はこれらの具体的な詳細を伴わずに実施され得ることが当業者により理解されるだろう。たとえば、態様が不要な詳細で不明瞭になるのを避けるために、回路がブロック図で示されることがある。他の場合には、本開示の態様を不明瞭にしないように、よく知られている回路、構造および技法を詳細に示さないことがある。
【００２１】
「例示的な」という言葉は、「例、事例、または例示として機能する」ことを意味するように本明細書で使用される。「例示的な」として本明細書で説明されるいかなる実装形態または態様も、必ずしも本開示の他の態様よりも好ましいまたは有利なものと解釈されるべきではない。同様に、「態様」という用語は、本開示のすべての態様が、論じられた特徴、利点または動作モードを含むことを必要とするとは限らない。
【００２２】
概要
第1の態様は、各半導体回路に固有の一意の特性を使用して、実行時にソフトウェアによって抽出することができ、ソフトウェアが予想されるかまたは対象となる半導体回路上で実行されているかどうかまたはその代わりにシミュレータ環境または偽造プラットフォーム上で実行されているかどうかを判定するのに使用することができる一意でクローン化不能なプラットフォーム識別子を生成するのを可能にする。半導体製造におけるばらつきに起因して、同じ半導体回路の2つのインスタンスにおける同じ回路経路が異なる応答(たとえば、経路遅延、周波数応答、電圧応答など)を有し得る。たとえば、同じ設計の各データ依存型経路の安定した動作に関するしきい値周波数が(ただしそれぞれに異なる半導体回路において)異なり得る。同じ設計を有する半導体回路間のこのようなばらつきを、各半導体回路を特徴付け一意でクローン化不能な識別子を生成するために使用することができる。
【００２３】
第2の態様は、それぞれに異なる入力ベクトルを生成し適用してそれぞれに異なるデータ依存型回路経路をシミュレートし、次いでデータ依存型回路経路ごとの周波数特性を抽出するのを可能にする。一例では、1組の命令が所与の入力を使用して様々な演算(たとえば、それぞれに異なる数学演算など)を実行することができる。使用される入力に応じて、実行される演算は、それぞれに異なる回路経路(すなわち、データ依存型経路)を使用してよい。したがって、入力ベクトルは、一意でクローン化不能なプラットフォーム識別子を生成するように特徴付けることができる複数のデータ依存型経路を導入する働きをすることができる。複数の入力ベクトルを使用することによって、各データ依存型回路経路は、回路経路ごとの結果が不安定になる(たとえば、試験結果が前の試験から変化するかまたは正しくなくなる)まで繰返し試験される。あらかじめ規定された試験に関する直前の既知の安定した電圧/周波数が一意の識別子を生成するために使用される。
【００２４】
第3の態様は、複数の異なる半導体回路間で、ならびに/あるいは複数の内部分岐回路もしくは構成要素および/または外部分岐回路もしくは構成要素にわたってデータ依存型回路経路を特徴付けるのを可能にする。様々な半導体回路、分岐回路、および/または構成要素における2つ以上のデータ依存型回路経路の特徴付けを使用して一意でクローン化不能な識別子を生成する。
【００２５】
一意でクローン化不能な識別子の例示的な生成
物理的構成要素(たとえば、半導体デバイス、電気経路、電気的構成要素など)の固有のばらつきおよびデータ依存型回路経路の使用に基づいてハードウェアデバイスの一意でクローン化不能な識別子を生成するための機構が提供される。たとえば、複数の半導体デバイスを製造する際、複雑な半導体プロセスによって、製造者または設計者の制御を超えたわずかなばらつきが導入される。同じシリコンウェハから2つの半導体デバイスが製造される場合でも、同じになるように設計された電線/電気経路はおそらく幅が数ナノメートル異なる。シリコンの表面における微視的な違いも、電気経路の曲率のほぼトリビアルなばらつきを導入することがある。さらに、半導体デバイスをプリント回路板に半田付けすると、容量/インピーダンスなどの差が生じることがある。これらの一意の特性は制御不能で物理的構成要素(たとえば、半導体デバイス)に固有の特性であり、これらの特性を定量化すると固有の一意でクローン化不能な識別子を生成することができる。さらに、(たとえば、1つまたは複数の半導体デバイスを通過する)1つまたは複数のデータ依存型回路経路を使用して識別子の固有性をさらに向上させる。
【００２６】
本手法は、半導体設計に特別な論理(たとえば、回路構成要素、トランジスタなど)を追加する必要のないゼロコスト解決手段を実現することができ、場合によってはすでに製造されている半導体デバイスに適用することができる。
【００２７】
図1は、搭載構成要素もしくは回路または非搭載構成要素もしくは回路のデータ依存型回路経路応答情報を利用することによって識別子(ID)を抽出する方法を示す。この例では、構成要素または回路104を、入力ベクトル102と識別子ジェネレータ106を備える識別子生成モジュールによって試験する。いくつかの例によれば、構成要素または回路は、(a)電気的に受動的な構成要素および電気的に能動的な構成要素を有するプリント回路板、(b)半導体デバイス、および/または(c)処理デバイスを含んでよい。構成要素または回路104は、その動作周波数110および/またはその動作電圧112を調整することによって動的に構成可能であってよい。
【００２８】
ここで説明するように、構成要素または回路104は、複数のデータ依存型回路経路A114、B116、C118、およびD120を含んでよい。たとえば、構成要素または回路104は、与えられる入力データに応じて異なるように演算を実行する信号プロセッサ、演算モジュールなどであってよい。たとえば、加算と乗算演算は、演算モジュールにおいて異なる経路を取ってよい。さらに、より大きい数の加算演算は、より小さい数の加算演算とは異なる経路を取ってよい。そのような「経路」は、たとえば、構成要素または回路104において特定の演算が実行されるトランジスタおよび/または電気的トレースを指してよい。
【００２９】
入力ベクトル102は、ある演算および/または計算を構成要素または回路104によって実行させる1つまたは複数の命令および/またはデータ入力を含んでよい。入力ベクトルの様々な例は、D1および/またはD2に対するより複雑な演算のうちで特に、D1+D2、D1×D2、D1/D2、log(D1)、ビット単位のD1  AND  D2、D1  XOR  D2の演算を実行することを含んでよく、この場合、D1およびD2はデータ入力(たとえば、数、ビットストリングなど)である。入力ベクトルは、構成要素をそれぞれに異なる動作モードで動作させる任意の制御信号または構成であってよい。
【００３０】
繰返しごとに構成要素または回路104の動作周波数110および/または電圧112が調整される(たとえば、周波数を高くすること、電圧を低下させることなど)ので、単一の入力ベクトルを数回実行することができる。繰返しごとに、構成要素/回路104が依然として安定していることを確認するための検査を実行する(たとえば、入力ベクトルに対して予想される応答/結果または正しい応答/結果を与える)。データ依存型回路経路応答/結果が変化するしきい値動作周波数(またはしきい値動作電圧)が特定されるまでこのプロセスを繰り返す。しきい値周波数および/またはしきい値電圧が特定された後、データ依存型回路経路に対するその特定の入力ベクトルの実行を停止または終了する。次いで、その特定の入力ベクトルに関するそのようなしきい値周波数を(たとえば、1つまたは複数の他の入力ベクトルに関するしきい値周波数と組み合わせて)使用して構成要素または回路の識別子を生成してよい。
【００３１】
しきい値周波数および/またはしきい値電圧は多数の方法で確認されてよい。第1の例では、動作周波数110を増分的に高くし、一方、動作電圧112を一定に維持する。しきい値電圧および/またはしきい値周波数は、入力ベクトルに対する応答/結果が変化するかまたは正しくなくなるしきい値電圧および/またはしきい値周波数である。
【００３２】
第2の例では、動作電圧112を増分的に低下させ、それに応じて動作周波数110を低下させる。たとえば、結果/応答が変化するまで、入力ベクトルの繰返しごとに動作電圧112を増分的に低減(低下)させてよい。動作電圧112を低減させると、これによって動作周波数も低減することに留意されたい。特定の入力ベクトルに対する正しい結果/応答を与える直前の最低電圧(または得られる動作周波数)を(たとえば、1つまたは複数の他の入力ベクトルの最低電圧と組み合わせて)使用して構成要素または回路の識別子を生成する。
【００３３】
第3の例では、動作電圧112を増分的に低下させ、一方、動作周波数110を増分的に高くする。たとえば、しきい値周波数/電圧(たとえば、特定のデータ経路が安定でなくなる周波数/電圧対)が特定されるまで、(たとえば、あらかじめ規定された周波数/電圧対に従って)周波数と電圧の両方の組合せを調整してよい。
【００３４】
識別子ジェネレータ106は、試験ベクトルごとの最高安定動作周波数(または最低安定動作電圧)を記録してよく、次いでこれらを使用して構成要素、回路、または半導体の一意でクローン化不能な識別子を算出する。
【００３５】
一例では、構成要素、回路、または半導体の最高動作周波数を最長(臨界)回路経路遅延(たとえば、最大レイテンシを有するチェーンにおいて接続された一連のそれぞれに異なるゲートまたは論理デバイス)によって求めてよい。このことは、構成要素、回路、または半導体が、特定の試験ベクトルにおいてそれが計算するデータ値に依存するそれぞれに異なる経路遅延を有するより短い経路を有することも意味する。回路経路遅延に対する半導体プロセスばらつきの影響に起因して、同じ設計であるがそれぞれに異なる構成要素、回路、または半導体における各データ依存型臨界経路の最高周波数/最低電圧はランダムなばらつきを有する。このことは、各データ依存型回路経路のこれらの最高周波数(または最低電圧)情報を特徴付けることによって、特定の構成要素、回路、および/または半導体の識別情報が適切に得られることも意味する。
【００３６】
いくつかの実装形態では、データ依存型回路経路は、入力を受け取り出力を供給する動的回路経路であってよい。したがって、データ依存型回路経路は非記憶回路経路および/または非メモリ回路経路である。
【００３７】
図2は、複数の搭載構成要素もしくは回路または非搭載構成要素もしくは回路のデータ依存型回路経路応答情報を利用することによってプラットフォーム識別子(ID)を抽出する方法を示す。この態様は、図1において説明した手法と同様に働くが、複数の構成要素または回路204、206、および208を使用して1つまたは複数の入力ベクトル202を実行する。各構成要素または回路204、206、および208について、構成要素または回路204、206、および208ごとに対応する動作電圧および/または動作周波数を繰返し調整しつつ入力ベクトルを実行してよい。
【００３８】
一実装形態では、第1の構成要素または回路204の動作周波数を高くして第1の構成要素または回路204における1つまたは複数のデータ依存型経路の最高安定周波数を確認してよい。一方、第2の構成要素または回路206の動作電圧を低下させて第2の構成要素または回路206における1つまたは複数のデータ依存型経路の最低安定電圧を確認してよい。同様に、第3の構成要素または回路208の動作周波数/電圧対を調整して第3の構成要素または回路208における1つまたは複数のデータ依存型経路のしきい値安定周波数/電圧対を確認してよい。識別子ジェネレータは次いで、複数の構成要素または回路204、206、および208に関するこの応答情報を使用してプラットフォーム(たとえば、各構成要素または回路の組合せ)の一意でクローン化不能な固有の識別子を算出してよい。
【００３９】
図3は、様々な動作周波数における1組の入力ベクトルの例示的な結果を示す表である。これらの入力ベクトルは、1つまたは複数の構成要素、回路、および/または半導体デバイスに対して実施されていてよい。1つまたは複数の周波数Freq-A、Freq-B、Freq-C、Freq-D、Freq-E、および/またはFreq-Fにわたって動作周波数を増分的に調整し(たとえば、高くし)つつ、入力ベクトル(たとえば、試験a、試験b、試験c、試験d)の各々を繰返し実行することができる。諒解されるように、入力ベクトルは、入力ベクトルごとのデータ依存型回路経路に応じて、最高/しきい値動作周波数まで合格または不合格になり得る。合格は、データ依存型回路経路が特定の動作周波数で入力ベクトルに対して予想通りに応答するかまたは正しく応答したことを意味する。不合格は、データ依存型回路経路が特定の動作周波数で入力ベクトルに応答して誤った応答または予想されない応答をするかあるいは応答が変化したことを意味する。たとえば、試験cでは、合格から不合格への遷移がFreq-CとFreq-Dとの間に行われる。したがって、しきい値周波数はFreq-CまたはFreq-Dとして選択されてよい。入力ベクトルが合格から不合格に遷移するこのしきい値周波数を記録しかつ使用してプラットフォームに関連する一意でクローン化不能な識別子を生成してよい。
【００４０】
図4は、様々な動作電圧における1組の入力ベクトルの例示的な結果を示す表である。これらの入力ベクトルは、1つまたは複数の構成要素、回路、および/または半導体デバイスに対して実施されていてよい。1つまたは複数の電圧Volt-A、Volt-B、Volt-C、Volt-D、Volt-E、および/またはVolt-Fにわたって動作電圧を増分的に調整し(たとえば、低下させ)つつ、入力ベクトル(たとえば、試験a、試験b、試験c、試験d)の各々を繰返し実行することができる。諒解されるように、入力ベクトルは、入力ベクトルごとのデータ依存型回路経路に応じて、最低/しきい値動作電圧まで合格または不合格になり得る。合格は、データ依存型回路経路が特定の動作電圧で入力ベクトルに対して予想通りに応答するかまたは正しく応答したことを意味する。不合格は、データ依存型回路経路が特定の動作電圧で入力ベクトルに応答して誤った応答または予想されない応答をするかあるいは応答が変化したことを意味する。たとえば、試験aでは、合格から不合格への遷移がVolt-DとVolt-Eとの間に行われる。したがって、しきい値電圧はVolt-DまたはVolt-Eとして選択されてよい。入力ベクトルが合格から不合格に遷移するこのしきい値電圧を記録しかつ使用してプラットフォームに関連する一意でクローン化不能な識別子を生成してよい。
【００４１】
図5は、様々な動作周波数-電圧対における1組の入力ベクトルの例示的な結果を示す表を示す。これらの入力ベクトルは、1つまたは複数の構成要素、回路、および/または半導体デバイスに対して実施されていてよい。1つまたは複数の周波数/電圧対Freq/Volt-A、Freq/Volt-B、Freq/Volt-C、Freq/Volt-D、Freq/Volt-E、および/またはFreq/Volt-Fにわたって動作周波数/電圧対を増分的に調整し(たとえば、高くしまたは低下させ)つつ、入力ベクトル(たとえば、試験a、試験b、試験c、試験d)の各々を繰返し実行することができる。諒解されるように、入力ベクトルは、入力ベクトルごとのデータ依存型回路経路に応じて、しきい値動作周波数/電圧対まで合格または不合格になり得る。合格は、データ依存型回路経路が特定の動作周波数/電圧対での入力ベクトルに対して予想通りに応答するかまたは正しく応答したことを意味する。不合格は、データ依存型回路経路が特定の動作周波数/電圧対での入力ベクトルに応答して誤った応答または予想されない応答をするかあるいは応答が変化したことを意味する。たとえば、試験dでは、合格から不合格への遷移がFreq/Volt-BとFreq/Volt-Cとの間に行われる。したがって、しきい値周波数/電圧対はVolt-BまたはVolt-Cとして選択されてよい。入力ベクトルが合格から不合格に遷移するこのしきい値周波数/電圧対を記録しかつ使用してプラットフォームに関連する一意でクローン化不能な識別子を生成してよい。
【００４２】
図6は、データ依存型回路経路に基づいて一意でクローン化不能な識別子を算出するように適合することのできる例示的な処理回路を示す。一例では、1つまたは複数のデータ依存型回路経路の特性に基づいて一意の識別子の生成を実行するための命令を含む外部記憶デバイス604に処理回路602を結合してよい。別の例では、1つまたは複数のデータ依存型回路経路の特性に基づいて一意の識別子の生成を実行するために記憶デバイス604を処理回路602と一体化してよい。処理回路602は、1つまたは複数の内部分岐回路610、612、および/または614ならびに/あるいは1つまたは複数の外部構成要素616、618、および620の動作周波数を調整するのを可能にするプログラム可能な周波数モジュール622(たとえば、クロックジェネレータなど)を含んでもよい。さらに、処理回路602は、1つまたは複数の内部分岐回路610、612、および/または614ならびに/あるいは1つまたは複数の外部構成要素616、618、および620の動作電圧を調整するのを可能にするプログラム可能な電圧モジュール624を含んでもよい。
【００４３】
処理回路602は、1つまたは複数の内部分岐回路610、612、および/または614ならびに/あるいは1つまたは複数の外部構成要素616、618、および620のデータ依存型経路応答情報を確認するための記憶デバイス604からの1つまたは複数の命令を含むかまたは得てよい。分岐回路610、612、614および/または構成要素616、618、620に対して1つまたは複数の演算を実行または実施するために、1つまたは複数の入力ベクトル606が処理回路によって使用されてよい。これらの入力ベクトルは、データ依存型回路経路ごとにしきい値周波数および/またはしきい値電圧が確認されるまで、試験中の分岐回路610、612、614および/または構成要素616、618、620の各々の動作周波数および/または動作電圧を増分的に調整しつつ、複数回実行されてよい。次に、識別子ジェネレータ608が、試験された複数のデータ依存型経路の、得られたしきい値周波数および/またはしきい値電圧を使用して一意の識別子622を生成する。
【００４４】
一例では、処理回路602、内部/外部回路610、612、614、および/または構成要素616、618、および620を含むプラットフォームに一意に識別子を関連付ける。
【００４５】
別の例では、一意の識別子を処理回路上でのソフトウェアアプリケーションのインストールまたは実行に関連付ける。
【００４６】
さらに別の例では、処理回路602上のソフトウェアアプリケーションの実行を一意の識別子を首尾よく検証することにバインドしてよい。たとえば、ソフトウェアアプリケーションが実行されるたびに、検証を実行し、一意の識別子に基づいて、ソフトウェアアプリケーションがインストールされたときと同じプラットフォーム上でまだ実行されていることを確認する。一意の識別子を首尾よく検証するには、一意の識別子の元のインスタンスを一意の識別子のその後生成されたインスタンスと比較してそれらのインスタンスが同じであることを確認してよい。
【００４７】
図7は、1つまたは複数の搭載構成要素、回路、および/または半導体ならびに/あるいは1つまたは複数の非搭載構成要素、回路、および/または半導体のデータ依存型回路経路応答情報を利用することによって一意でクローン化不能なプラットフォーム識別子(ID)を算出する方法を示す。1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験(たとえば、入力ベクトル、計算動作など)を実施してよい(702)。1つまたは複数の回路が識別子専用回路ではなく、汎用回路であってよいことに留意されたい。いくつかの例では、1つまたは複数の回路は、非記憶回路および/または非メモリ回路である。
【００４８】
1つまたは複数の試験は、1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して繰り返されてよい(704)。たとえば、1つまたは複数の回路の各々の動作周波数を高くし、ならびに/あるいは1つまたは複数の回路の動作電圧を低下させてよい。1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認してよい(706)。たとえば、そのようなしきい値周波数またはしきい値電圧は、特定の試験で不合格になり始まる(たとえば、結果/応答が変化する)最高周波数または最低電圧であってよい。
【００４９】
次いで、1つまたは複数のデータ依存型回路経路について確認された複数のしきい値周波数および/またはしきい値電圧に基づいて識別子が生成されてよい(708)。一例では、識別子は、1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づいて(たとえば、生成されて)よい。別の例では、識別子は、2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づいてよい。
【００５０】
識別子が最初に生成された場合、後で検証できるように(たとえば、非揮発性メモリに)記憶されてよい(710)。たとえば、ソフトウェアアプリケーションは、プラットフォーム上にインストールされるときに第1の識別子を得て記憶してよく、それによって、ソフトウェアのインストールをプラットフォーム用の1つまたは複数の特定の回路、マイクロプロセッサ、および/または半導体デバイスにバインドする。
【００５１】
識別子を検証する場合、あらかじめ記憶されている識別子を取り込む(712)。(ステップ708からの)新たに生成された識別子を次いで、あらかじめ記憶された識別子と比較し、それらの識別子が同じであるかどうかを確認する(714)。それらの識別子が同じである場合、記憶されている識別子と新たに生成された識別子の両方を生成するために使用されたプラットフォームは同じであり、検証は成功したと結論付けてよい。そうでない場合、新たに生成された識別子と記憶されている識別子が異なる場合、検証は失敗である。たとえば、それ以後のソフトウェアアプリケーションの起動時に、新たに生成された識別子をあらかじめ記憶されている識別子に対して検証し、それによってソフトウェアのインストールをプラットフォーム用の1つまたは複数の専用回路、マイクロプロセッサ、および/または半導体デバイスにバインドすることによって、ソフトウェアアプリケーションが元のプラットフォーム上で実行されていることを検証してよい。
【００５２】
システムオンチッププラットフォームに対して2つの例示的な実装形態シナリオを定義してよい。第1の例では、プラットフォーム識別子抽出制御ソフトウェアを有するプロセッサ、プログラマブルクロックジェネレータ、およびオンチップバスに結合されプロセッサと通信するオンチップ計算構成要素。オンチップ計算構成要素は、識別子を生成するために識別子抽出制御ソフトウェアによって使用することができる1つまたは複数のデータ依存型回路経路を実現してよい。第2の例では、プラットフォーム識別子抽出制御ソフトウェアを有するプロセッサ、プログラマブルクロックジェネレータ、およびプロセッサと通信するオフチップ計算構成要素。ここで、オフチップ計算構成要素は、識別子を生成するために識別子抽出制御ソフトウェアによって使用することができる1つまたは複数のデータ依存型回路経路を実現してよい。
【００５３】
どちらの例示的な実装形態シナリオでも、プロセッサは指定された周波数で安定した状態で動作してよく、いくつかのステップを実行する。第1に、制御ソフトウェアは、それぞれに異なるデータ依存型回路経路にアドレス指定してオン/オフチップ計算構成要素を第1の動作周波数で試験することのできる試験(入力)ベクトルの集合とともに実行されてよい。第2に、制御ソフトウェアは次いで、試験(入力)ベクトルとともに実行されてよく、同時に、データ依存型回路経路ごとのしきい値周波数(たとえば、最高周波数)が確認されならびに/あるいは記録されるまで、クロック周波数ジェネレータが、試験中の計算構成要素に供給されるクロック周波数(たとえば、動作周波数)を高くするかまたは低下させるように調整される。次いで、比較定量化手順を使用して、プラットフォーム識別子であってもよい一意の識別子を生成してよい。プラットフォームが複数のオンチップ計算構成要素および/またはオフチップ計算構成要素を有する場合、複数の抽出された識別子を組み合わせて単一のプラットフォーム識別子を得てよい。
【００５４】
この手法は、多くが、低電力消費が可能な融通性に富んだクロック周波数制御機構をすでに有する、既存のプロセッサ、半導体、および/またはチップに適用可能であってよい。さらに、一意の識別子を生成するためのこの手法は、外部の高価な試験セットアップおよび手順を使用する必要のないハードウェアにバインドされる。さらに、特別なハードウェア論理を追加することによって現在のチップ設計を変更する必要がなく、ソフトウェア要求によってこの手法の機能を有効化することができ、したがって、この手法はゼロコスト解決手段である。
【００５５】
図面に示す構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴、または機能に再構成および/または結合されてよく、あるいは、いくつかの構成要素、ステップまたは機能に組み込まれてもよい。本発明から逸脱することなしに、さらなる要素、構成要素、ステップ、および/または機能を追加することもできる。図に示す装置、デバイス、および/または構成要素は、図に記載した方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。また、本明細書で説明したアルゴリズムは、効率的にソフトウェアに実装されてもよく、かつ/またはハードウェアに組み込まれてもよい。
【００５６】
その上、本開示の一態様では、図に示す処理回路は、図に記載したアルゴリズム、方法、および/またはステップを行うように特に設計かつ/または配線接続される専用プロセッサ(たとえば、特定用途向け集積回路(たとえば、ASIC))であり得る。したがって、そのような専用プロセッサ(たとえば、ASIC)は、図に記載したアルゴリズム、方法、および/またはステップを実行するための手段の一例であり得る。コンピュータ可読記憶媒体はまた、専用プロセッサ(たとえば、ASIC)によって実行されるとき、図に記載したアルゴリズム、方法、および/またはステップを専用プロセッサに行わせる、プロセッサ可読命令を記憶することもできる。
【００５７】
また、本開示の態様は、フローチャート、流れ図、構造図またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは動作を逐次プロセスとして説明し得るが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並び替えられ得る。プロセスは、その動作が完了したときに終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応する場合がある。処理が関数に対応する場合、その終了は、関数が、関数の呼び出しまたはmain関数に戻ることに対応する。
【００５８】
その上、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、ならびに/または、情報を記憶するための他の機械可読媒体、およびプロセッサ可読媒体、および/もしくはコンピュータ可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表し得る。「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語は、限定はされないが、ポータブルもしくは固定記憶デバイス、光記憶デバイス、ならびに、命令および/もしくはデータを記憶、格納または搬送することが可能な様々な他の媒体のような、非一時的媒体を含み得る。したがって、本明細書で説明される様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」および/または「プロセッサ可読媒体」に記憶され、1つまたは複数のプロセッサ、機械および/またはデバイスによって実行され得る命令および/またはデータによって、完全にまたは部分的に実装され得る。
【００５９】
さらに、本開示の態様は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶され得る。プロセッサは必要なタスクを実行することができる。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、かつ/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して、渡され、転送され、または送信され得る。
【００６０】
本明細書で開示される例に関して説明される様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明される機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替としてプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００６１】
本明細書で開示される例に関して説明される方法またはアルゴリズムは、ハードウェアで、プロセッサによって実行可能なソフトウェアモジュールで、または両方の組合せで、処理ユニット、プログラミング命令、または他の指示の形態で直接具現化されてよく、単一のデバイスに含まれるかまたは複数のデバイスにわたって分散されてよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体に存在し得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、かつその記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサと一体であり得る。
【００６２】
さらに、本明細書で開示される態様に関して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者は諒解するだろう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上記では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。
【００６３】
本明細書で説明する本発明の様々な特徴は、本発明から逸脱することなく様々なシステムで実装され得る。上記の本開示の態様は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。本開示の態様の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置に容易に適用することができ、多くの代替形態、変更形態、および変形形態が当業者には明らかであろう。
【符号の説明】
【００６４】
102  入力ベクトル
104  構成要素または回路
106  識別子ジェネレータ
110、118  動作周波数
112、120  動作電圧
114、116、118、120  データ依存型回路経路
202  入力ベクトル
204、206、208  構成要素または回路
602  処理回路
604  外部記憶デバイス
606  入力ベクトル
608  識別子ジェネレータ
610、612、614  内部分岐回路
616、618、620  外部構成要素
622  プログラム可能な周波数モジュール、識別子
624  プログラム可能な電圧モジュール
【図１】
2016510498.tif 000003
【図２】
2016510498.tif 000004
【図３】
2016510498.tif 000005
【図４】
2016510498.tif 000006
【図５】
2016510498.tif 000007
【図６】
2016510498.tif 000008
【図７】
2016510498.tif 000009
【国際調査報告】
2016510498.tif 000010
2016510498.tif 000011
2016510498.tif 000012