(57)【特許請求の範囲】
【請求項１】
第１の状態、第２の状態、および第２の状態の複製バリアントを含む複数の状態を有する、集積回路（ＩＣ）の有限状態機械（ＦＳＭ）と、
前記ＦＳＭに結合された、前記ＩＣの制御ロジックと、
前記ＦＳＭに結合された、前記ＩＣのイベントジェネレータと、
前記制御ロジックおよび前記イベントジェネレータに結合された前記ＩＣのロバスト物理的複製不可能機能（ＰＵＦ）回路であって、前記イベントジェネレータから入力を受信し、これに応答して、前記ＦＳＭおよび前記制御ロジックに出力を与え、前記ＦＳＭの前記第１の状態から前記第２の状態への遷移、または前記第２の状態ではなく前記第２の状態の前記複製バリアントへの遷移と、前記ＦＳＭへの出力により前記ＦＳＭが前記第１の状態から前記第２の状態ではなく前記第２の状態の前記複製バリアントに遷移したときの、前記第２の状態の前記複製バリアントから出る前記ＦＳＭの遷移とをそれぞれ制御するように構成されたロバストＰＵＦ回路とを備え、
前記イベントジェネレータは、前記ＦＳＭの現在の状態を表す前記ＦＳＭからの第１の信号、および、前記ＩＣの外部のソースからの第２の信号に、少なくとも部分的に基づいて、前記ロバストＰＵＦ回路に対する前記入力を生成し、
前記ロバストＰＵＦ回路は、
アービタに結合された第１および第２の遅延経路であって、特定の入力に対して、前記第１および第２の遅延経路それぞれの出力の間に遅延マージンを生成するように構成された、第１および第２の遅延経路と、
前記第１のおよび／または第２の経路によって使用される追加遅延経路と、
を含む、装置。
【請求項２】
前記ロバストＰＵＦ回路および前記制御ロジックに結合され、キーを記憶するように構成されたメモリであって、前記ロバストＰＵＦ回路からの前記出力に応答して前記制御ロジックへの入力として前記キーを与えて、前記ＦＳＭへの出力により前記ＦＳＭが前記第１の状態から前記第２の状態ではなく前記第２の状態の前記複製バリアントに遷移したときの、前記第２の状態の前記複製バリアントから出る前記ＦＳＭの遷移を制御するように構成されたメモリをさらに備えた、請求項１に記載の装置。
【請求項３】
前記第２の状態の前記複製バリアントは、ブラックホール状態またはグレーホール状態の選択された一方である、請求項１に記載の装置。
【請求項４】
前記ロバストＰＵＦが、メインＰＵＦ、および前記メインＰＵＦに結合された遅延ＰＵＦを備えている、請求項１に記載の装置。
【請求項５】
前記第１および第２の経路が、偶数のインバータ、またはタップ付き遅延ラインの少なくとも１つを備えている、請求項１に記載の装置。
【請求項６】
携帯電話、ノート型パソコン、またはデスクトップパソコンのうちの選択された１つを備えた、請求項１に記載の装置。
【請求項７】
集積回路を制御する方法であって、
プロセッサおよびメモリを有するコンピュータデバイスによって、イベントジェネレータに集積回路（ＩＣ）のロバスト物理的複製不可能機能（ＰＵＦ）回路に対するイベントを生成させ、前記ロバストＰＵＦに有限状態機械（ＦＳＭ）および前記ＩＣの制御ブロックに対する出力を生成させ、第１の状態から第２の状態、または前記第２の状態ではなく前記第２の状態の複製バリアントのいずれかへの前記ＦＳＭの遷移と、前記第２の状態の複製バリアントから出る前記ＦＳＭの遷移とをそれぞれ制御するために、前記ＩＣの前記イベントジェネレータへの入力用データを決定すること、および
前記データを前記コンピュータデバイスによって、前記ＩＣに送信して、前記ＩＣを制御することを含み、
決定することは、前記コンピュータデバイスによって、
ランダムに選択された現在のチャレンジで開始すること、および
各反復で現在のチャレンジに対する１のハミング距離の全てのチャレンジＣｉが評価される反復改善パラダイムを暗示することを含む、δ安定入力チャレンジを探索することを含み、
より高い安定性を有する少なくとも１つのＣｉチャレンジがある場合、新しい現在の解決法が、最も安定したＣｉチャレンジとして選択され、
このようなチャレンジがない場合、前記現在のチャレンジから２、３、またはそれ以上のハミング距離上にあるチャレンジを含むように、探索を向上させる、方法。
【請求項８】
前記データを前記ＩＣに送信することは、前記ＩＣの活動化または非活動化を遠隔制御するように前記データを前記ＩＣにワイヤレス送信することを含む、請求項７に記載の方法。
【請求項９】
前記データを前記ＩＣに送信することは、前記ＩＣの選択された機能の遠隔活動化または非活動化を引き起こすように前記データを前記ＩＣに送信することを含む、請求項７に記載の方法。
【請求項１０】
前記現在のチャレンジと新しいチャレンジの間のハミング距離、
前記反復パラダイムに対する最大実行時間、
最大測定可能δが達成される瞬間、および
満足なδ値が見出されたこと、の１つまたは複数の終了基準を利用して、前記反復パラダイムを終了させることをさらに含む、請求項７に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
集積回路（ＩＣ）技術での進歩により、ＩＣが多くの応用例に広く採用されるようになった。さまざまな理由、たとえば知的財産の保護、模造品の防止などのために、各応用例では、ＩＣの活動化および非活動化（deactivation）が制御されること、特に遠隔および／またはワイヤレスで制御されることが望ましい可能性がある。
【０００２】
現代の製造におけるランダムなプロセス変動は、集積回路内の固有の変動性（inherent variability）に通じる可能性がある。この変動性により、各集積回路に特有の複製不可能な物理構造に通じる可能性がある。複製不可能な物理構造を使用して、入力として知られる一セットのチャレンジを、応答として知られる対応するセットの出力にＰＵＦからマッピングする物理的複製不可能機能（physically unclonable function）（ＰＵＦ）を規定することができる。ＰＵＦの一例は、一意の遅延特徴を有するＰＵＦを含むチップを与えることができる遅延ベースシリコンＰＵＦであってもよい。しかし、多くのＰＵＦは比較的不安定であり、動作条件、たとえば温度、老化、電圧源の変化などに敏感である可能性がある。
【発明の概要】
【０００３】
本開示はとりわけ、ＩＣの活動化および／または非活動化を含む、集積回路（ＩＣ）を制御することに概して関する方法、システム、デバイス、および／または装置を対象としている。
【０００４】
さまざまな実施形態では、装置は、集積回路（ＩＣ）の有限状態機械（ＦＳＭ）を備えることができ、第１の状態、第２の状態、および第２の状態の複製バリアント（replicated variant）を含むいくつかの状態を有する。装置はまた、ＦＳＭに結合されたＩＣの制御ロジックと、ＩＣのイベントジェネレータと、制御ロジックおよびイベントジェネレータに結合されたＩＣのロバスト物理的複製不可能機能（ＰＵＦ）回路とを備えることができる。ロバストＰＵＦ回路は、イベントジェネレータから入力を受信し、これに応答して、ＦＳＭおよび制御ロジックに出力を与え、ＦＳＭの第１の状態から第２の状態への遷移、または第２の状態ではなく第２の状態の複製バリアントへの遷移と、ＦＳＭへの出力によりＦＳＭが第１の状態から第２の状態ではなく第２の状態の複製バリアントに遷移したときの、第２の状態の複製バリアントから出るＦＳＭの遷移とをそれぞれ制御するように構成することができる。
【０００５】
さまざまな実施形態では、装置はさらに、ロバストＰＵＦ回路および制御ロジックに結合され、キーを記憶するように構成されたメモリを備えることができる。メモリは、ロバストＰＵＦ回路からの出力に応答して制御ロジックへの入力としてキーを与えて、ＦＳＭへの出力によりＦＳＭが第１の状態から第２の状態ではなく第２の状態の複製バリアントに遷移したときの、第２の状態の複製バリアントから出るＦＳＭの遷移を制御するように構成することができる。
【０００６】
さまざまな実施形態では、イベントジェネレータは、ＩＣの外部のソースからのデータに応答してイベントを生成するように構成する、またはさらにＦＳＭに結合させ、ＦＳＭの特定の状態に応答してイベントを生成するように構成することができる。
【０００７】
さまざまな実施形態では、第２の状態の複製バリアントは、ブラックホール状態またはグレーホール状態の選択された一方であってもよい。さまざまな実施形態では、ロバストＰＵＦは、メインＰＵＦ、およびメインＰＵＦに結合された遅延ＰＵＦを備えている。他の実施形態では、ロバストＰＵＦ回路は、アービタに結合された第１および第２の遅延経路を備えており、第１および第２の遅延経路は、特定の入力に対して、第１および第２の遅延経路それぞれの出力の間に遅延マージンを生成するように構成されている。さまざまな実施形態では、第１および第２の経路は、偶数のインバータ、またはタップ付き遅延ラインの少なくとも１つを備えている。さまざまな実施形態では、装置はさらに、第１のおよび／または第２の経路によって使用される追加遅延経路を備えることができる。さまざまな実施形態では、装置は、携帯電話、ノート型パソコン、またはデスクトップパソコンのうちの選択された１つであってもよい。
【０００８】
さまざまは実施形態では、集積回路（ＩＣ）を制御する方法は、コンピュータデバイスによって、ＩＣ内に埋め込まれたロバスト物理的複製不可能機能（ＰＵＦ）回路によって生成されたいくつかの値を受信すること、およびコンピュータデバイスによって、受信されたいくつかの値、およびＩＣの有限状態機械（ＦＳＭ）の第１の状態、第２の状態、および第２の状態の複製バリアントに関連する遷移情報を使用して、ＦＳＭが第２の状態ではなく第２の状態の複製バリアントへ第１の状態から遷移したときの、第２の状態の複製バリアントから出るＦＳＭの遷移を制御するためのキーを生成することを含むことができる。さまざまな実施形態では、この方法はさらに、ＩＣを制御するために使用するために、コンピュータデバイスによってキーを出力することを含むことができる。
【０００９】
さまざまな実施形態では、コンピュータデバイスによって、ロバストＰＵＦ回路によって生成されたいくつかの値を受信することは、一部にはＩＣの固有の製造変動性、ＩＣの意図的な製造変動性、または両方の組み合わせに対する応答によって生成されるロバストＰＵＦ回路の出力を受信することを含むことができる。さまざまな実施形態では、第２の状態は機能のセットを含むことができ、第２の状態の複製バリアントは機能の縮小セットを含むことができ、受信されたいくつかの値および遷移情報を使用してキーを生成することは、受信されたいくつかの値および遷移情報を使用して、ＦＳＭが機能の縮小セットを有する第２の状態の複製バリアントに第１の状態から遷移したときの、機能の縮小セットを有する第２の状態の複製バリアントから出るＦＳＭの遷移を制御することを含むことができる。
【００１０】
さまざまな実施形態では、この方法はさらに、ＩＣのメモリ内にキーを記憶することを含むことができる。メモリは、ロバストＰＵＦおよびＩＣの制御ブロックに結合させ、第２の状態の複製バリアントから出るＦＳＭの遷移を制御するための制御ブロックに対して、ロバストＰＵＦの出力に応答して制御ブロックにキーを出力するように構成することができる。
【００１１】
さまざまな実施形態では、集積回路（ＩＣ）を制御する方法は、コンピュータデバイスによって、イベントジェネレータにＩＣのロバスト物理的複製不可能機能（ＰＵＦ）回路に対するイベントを生成させ、ロバストＰＵＦに有限状態機械（ＦＳＭ）およびＩＣの制御ブロックに対する出力を生成させ、第２の状態、または第２の状態ではなく第２の状態の複製バリアントのいずれかへの第１の状態からのＦＳＭの遷移と、第２の状態の複製バリアントから出るＦＳＭの遷移とをそれぞれ制御するために、集積回路（ＩＣ）のイベントジェネレータへの入力用データを決定することを含むことができる。さまざまな実施形態では、この方法はさらに、データをコンピュータデバイスによって、ＩＣに送信して、ＩＣを制御することを含むことができる。
【００１２】
さまざまな実施形態では、データをＩＣに送信することは、集積回路の活動化または非活動化を遠隔制御するようにデータをＩＣにワイヤレス送信することを含むことができる。他の実施形態では、データをＩＣに送信することは、ＩＣの選択された機能の遠隔活動化または非活動化を引き起こすようにデータをＩＣに送信することを含むことができる。さまざまな実施形態では、決定することは、コンピュータデバイスによって、ランダムに選択された現在のチャレンジで開始すること、および各反復で現在のチャレンジに対する１のハミング距離の全てのチャレンジＣｉが評価される反復改善パラダイムを暗示することを含むδ安定入力チャレンジを探索することを含むことができる。さまざまな実施形態では、より高い安定性を有する少なくとも１つのＣｉチャレンジがある場合、新しい現在の解決法が、最も安定したＣｉチャレンジとして選択される。また、このようなチャレンジがない場合、この方法は、現在のチャレンジから２、３、またはそれ以上のハミング距離上にあるチャレンジを含むように、探索を向上させることを含むことができる。さまざまな実施形態では、この方法はさらに、現在のチャレンジと新しいチャレンジの間のハミング距離、反復パラダイムに対する最大実行時間、最大測定可能δが達成される瞬間、または満足なδ値が見出されたこと、の１つまたは複数の終了基準を利用して、反復パラダイムを終了させることを含む。
【００１３】
さまざまな実施形態では、製造品は、有形のコンピュータ読取可能媒体と、有形のコンピュータ読取可能媒体内に記憶されたいくつかのプログラミング命令とを含むことができる。命令は、装置のプロセッサによって実行されたとき、装置に、ＩＣ内に埋め込まれたロバスト物理的複製不可能機能（ＰＵＦ）回路によって生成されたいくつかの値を受信すること、および受信されたいくつかの値、およびＩＣの有限状態機械（ＦＳＭ）の第１の状態、第２の状態、および第２の状態の複製バリアントに関連する遷移情報を使用して、ＦＳＭが第１の状態から第２の状態ではなく第２の状態の複製バリアントに遷移したときの、第２の状態の複製バリアントから出るＦＳＭの遷移を制御するためのキーを生成することを含む、いくつかの動作を行わせることができる。さまざまな実施形態では、動作はさらに、ＩＣを制御するために使用するために、コンピュータデバイスによってキーを出力することを含むことができる。さまざまな実施形態では、ロバストＰＵＦ回路によって生成されたいくつかの値を受信することは、一部にはＩＣの固有の製造変動性、ＩＣの意図的な製造変動性、または両方の組み合わせに対する応答によって生成されるロバストＰＵＦ回路の出力を受信することを含むことができる。
【００１４】
さまざまな実施形態では、命令は、装置のプロセッサによって実行されたとき、イベントジェネレータにＩＣのロバスト物理的複製不可能機能（ＰＵＦ）回路に対するイベントを生成させ、ロバストＰＵＦに有限状態機械（ＦＳＭ）およびＩＣの制御ブロックに対する出力を生成させ、第２の状態、または第２の状態の複製バリアントのいずれかへの第１の状態からのＦＳＭの遷移と、第２の状態の複製バリアントから出るＦＳＭの遷移とをそれぞれ制御するために、集積回路（ＩＣ）のイベントジェネレータへの入力用データを決定することを含めて、いくつかの動作を装置に行わせることができる。さまざまな実施形態では、動作はさらに、データをＩＣに送信して、ＩＣを制御することを含むことができる。さまざまな実施形態では、実行されたとき、命令は、装置にデータをＩＣにワイヤレス送信して、ＩＣの活動化または非活動化を遠隔制御させることができる。
【００１５】
前述の要約は、単に例示的なものであり、任意の方法で限定することを意図したものではない。上に記載した例示的な態様、実施形態および特性に加えて、別の態様、実施形態および特性は、図面および以下の詳細な説明を参照して明らかになるだろう。
【００１６】
主題は、明細書の結論部で特に指摘され、明確に特許請求されている。本開示の前述の他の特性は、添付の図面と合わせて、以下の説明および添付の特許請求の範囲からより十分明らかになるだろう。これらの図面が、開示によっていくつかの実施形態だけを示し、したがって、その範囲を制限するものではないと考えられることを理解されたい。開示は、添付の図面の使用により、追加の特異性および詳細が説明される。
【図面の簡単な説明】
【００１７】
【図１】本開示のさまざまな実施形態により構成された、ＰＵＦを含む集積回路を有するデバイスを示したブロック図である。
【図２】本開示のさまざまな実施形態により構成された、図１のブロック図のさまざまな構成要素をさらに詳細に示す図である。
【図３】本開示のさまざまな実施形態により構成された、図１および２のブロック図に関連する例示的な方法を示すフローチャートである。
【図４】本開示のさまざまな実施形態により構成された、図１および２の実施形態に含めることができるロバストＰＵＦの一例を示す図である。
【図５】本開示のさまざまな実施形態により構成された、図１および２の実施形態に含めることができるロバストＰＵＦアーキテクチャの一例を示す図である。
【図６】本開示のさまざまな実施形態により構成された、図１および２の実施形態に含めることができるロバストＰＵＦアーキテクチャの別の例を示す図である。
【図７】本開示のさまざまな実施形態により構成された、例示的なコンピュータシステムを示す図である。
【図８】本開示のさまざまな実施形態により構成された、コンピュータプログラム製品を有する例示的な製造品を示す図である。
【発明を実施するための形態】
【００１８】
以下の説明は、特許請求されている主題を完全に理解するために、特定の詳細と共にさまざまな例を記載している。しかし、当業者によって、特許請求されている主題は、特定の詳細のいくつかまたは複数を本明細書に開示することなく実施することができることが理解されるだろう。さらに、いくつかの状況では、よく知られている方法、手順、システム、構成要素および／または回路は、特許請求されている主題を不必要に曖昧にするのを避けるために、詳細には記載していない。以下の詳細な説明では、その一部を形成する添付の図面に言及する。図面では、内容でそうでないと示されていない限り、同様の記号は典型的には同様の構成要素を特定している。詳細な説明、図面および特許請求の範囲に記載された例示的な実施形態は、限定することを意図したものではない。他の実施形態を利用することができ、ここで提示した主題の精神または範囲を逸脱することなく他の変更を行うことができる。本明細書に全体的に記載され、図面に示しているように、本開示の態様は、幅広い範囲のさまざまな構成で配置し、置換し、組み合わせ、設計することができ、その全てが明示的に考えられ、本開示の一部を構成することが容易に理解されよう。
【００１９】
以下の説明では、コンピュータおよび／またはコンピュータシステムメモリ内などの、コンピュータシステム内に記憶されたデータビットおよび／またはバイナリデジタル信号上の、動作のアルゴリズムおよび／または記号表示を提示することができる。アルゴリズムは普通、一貫したシーケンスの動作および／または同様の処理であると考えられ、これは動作が、記憶し、伝送し、組み合わせ、比較し、および／または他の方法で操作することが可能である電気、磁気および／または電磁信号の形をとることができる物理量の物理操作を必要とする可能性がある所望の結果につながる。さまざまなコンテンツで、このような信号は、ビット、データ、値、素子、記号、文字、用語、数字、数値などと呼ぶことができる。しかし、当業者は、このような用語を物理量を暗示するように使用することができることが分かるだろう。したがって、「記憶する」、「処理する」、「探索する」、「算出する」、「決定する」などの用語が本明細書で使用されている場合、これらは、コンピュータプラットフォームのプロセッサ、メモリ、レジスタなど内の電子および／または磁気量を含む物理量として示されたデータを操作および／または変換する、コンピュータまたは携帯電話などの同様の電子計算デバイスなどのコンピュータプラットフォームの動作のことを言う可能性がある。
【００２０】
本開示のさまざまな実施形態による、ＰＵＦ１０４を含む集積回路１０２を有するデバイス１００を示すブロック図である、図１を次に参照する。いくつかの実施形態では、デバイス１００は、図示するように互いに結合された、ＰＵＦ１０４を有する集積回路（ＩＣ）１０２と、有限状態機械（ＦＳＭ）１１２と、イベントジェネレータ１１０とを備えることができる。いくつかの実施形態では、ＰＵＦ１０４は、ロバストＰＵＦであってもよく、所望の範囲の動作条件、たとえば、温度、老化、電圧供給の変化内で確定的にまたは予測的に動作するという意味である。ロバスト性は、以下により十分に記載するように、名目ＰＵＦを形成するコア素子に対する補助回路素子で達成することができる。いくつかの実施形態では、デバイス１００は、携帯電話、デスクトップまたはノート型パソコンなどのコンピュータ、ＲＦＩＤデバイス、または他のデバイスなどであってもよい。図示するように、ＰＵＦ１０４は、イベントジェネレータ１１０から入力１１１を受信するために結合させることができる。いくつかの実施形態では、入力１１１は、以下により十分記載するように、ＰＵＦ１０４に、出力または応答１１４をＦＳＭ１１２に与えて、ＦＳＭ１１２の状態遷移を制御させる１つまたは複数のチャレンジを含むことができる。
【００２１】
いくつかの実施形態では、デバイス１００はまた、図示するように、互いに、およびＰＵＦ１０４、ＦＳＭ１１２およびイベントジェネレータ１１０に結合された、メモリ１０６および制御ロジック１０８を備えることができる。実施形態では、ＰＵＦ１０４はまた、応答１１４をメモリ１０６に与えるように構成することができる。メモリ１０６は、記憶したキー１０７を含むことができる。いくつかの実施形態では、応答１１４は、メモリ１０６に記憶されたキー１０７に対応する可能性がある。キー１０７は、値１２９を制御ロジック１０８に与えることができる。制御ロジック１０８は、値１２９に応答して、制御信号１１６をＦＳＭ１１２に与えることができる。いくつかの実施形態では、制御信号１１６は、これも以下にさらに十分説明するように、ＦＳＭ１１２の１つまたは複数の状態の間の１つまたは複数の遷移を制御することができる。
【００２２】
さまざまな実施形態では、記憶したキー１０７の１つまたは複数は、ＩＣ１０２の固有の製造変動性、ＩＣ１０２の意図的な製造変動性、または両方の組み合わせから得られる、ＰＵＦ１０４の一意の応答から、たとえばコンピュータデバイスを使用して決定することができる。したがって、いくつかの実施形態では、ＰＵＦ１０４によって受信されるチャレンジを含む一意の入力１１１は、ＰＵＦ１０４によって生成または提供される一意の応答１１４につながる可能性がある。
【００２３】
さまざまな実施形態では、そのように決定された１つまたは複数のキー１０７は、ＩＣ１０２の製造時にメモリ１０６内に記憶させることができる。他の実施形態では、そのように決定された１つまたは複数のキー１０７は、後の時間にメモリ１０６内に記憶させることができる。
【００２４】
さらに、図示するように、いくつかの実施形態では、イベントジェネレータ１１０は、第１の信号１２０および／または第２の信号１２２を受信するように結合させることができる。いくつかの実施形態では、以下により詳細に論じるように、ＦＳＭ１１２は、第１の信号１２０をイベントジェネレータ１１０に提供することができ、ここで第１の信号はＦＳＭ１１２の特定の状態を示すＦＳＭデータを含む。第１の信号１２０に応答して、イベントジェネレータ１１０はその後、特定のイベントを生成することができる。他の実装形態では、外部ソースは、第２の信号１２２をイベントジェネレータ１１０に提供することができる。いくつかの実施形態では、第２の信号１２２は外部データを含むことができ、したがって、イベントジェネレータ１１０はその後、外部データに応答して特定のイベントを生成することができる。イベントジェネレータ１１０は、特定のイベントに応答して、ＰＵＦ１０４に対する入力１１１を与えることができる。図２に関してさらに論じるように、ＦＳＭ１１２のさまざまな状態は、ＩＣ１０２をロックまたはアンロックすることによって、ＩＣ１０２を活動化または非活動化させることができる。いくつかの実施形態では、したがってＩＣ１０２集積回路に入力を送信することは、有線またはワイヤレス接続を介して集積回路の活動化または非活動化を遠隔制御することを含むことができる。
【００２５】
図２は、本開示のさまざまな実施形態による、図１のブロック図のさまざまな構成要素をさらに詳細に示している。特に、図示した実施形態では、ＦＳＭ１１２は、ＩＣ１０２の機能設計の一部である例示的状態Ｓ０〜Ｓ６と、３つの例示的複製状態を含むことができ、Ｓ２’、Ｓ２’’、およびＳ２’’’はＩＣを制御する目的で、機能設計に導入された状態Ｓ２の複製バリアントである。いくつかの実施形態では、例示的状態Ｓ０〜Ｓ６と、複製バリアント状態Ｓ２’、Ｓ２’’、およびＳ’’’はそれぞれ、それぞれのセットの機能に関連付けることができる。さまざまな実施形態では、複製バリアント状態Ｓ２’、Ｓ２’’、およびＳ’’’はそれぞれ、状態Ｓ２に関連する機能のサブセットを含むことができる。いくつかの実施形態では、ＦＳＭ１１２は、実線２３０で示した経路のさまざまなセグメントに沿ってＳ０〜Ｓ６の間で遷移することができる。いくつかの実施形態では、Ｓ０〜Ｓ６の中断されない遷移は、ＩＣ１０２のアンロック状態または動作状態を示すことができる。
【００２６】
いくつかの実施形態では、図１に関して論じるように、イベントジェネレータ１１０は、第１の信号１２０および第２の信号１２２の一方または両方を受信するように結合させることができる。第１の信号１２０または第２の信号１２２の一方または両方に応答して、イベントジェネレータ１１０はイベントを生成することができる。イベントから、イベントジェネレータ１１０は、入力１１１を決定し、これをＰＵＦ１０４に送信することができる。いくつかの実施形態では、入力１１１は、適当なセットのチャレンジを含むことができ、それによってＰＵＦ１０４は、入力１１１を受信する際に、対応する応答１１４をＦＳＭ１１２に提供して、ＦＳＭ１１２が状態Ｓ１から、状態Ｓ２に、または状態Ｓ２ではなくＳ２、Ｓ２’、Ｓ２’’またはＳ２’’’の複製バリアント状態の１つに遷移するかどうかを制御または決定することができる。いくつかの実施形態では、状態Ｓ２とは異なり、状態Ｓ２’およびＳ２’’は、制御信号１１６がこのような遷移を認めない限り、Ｓ３には遷移しない状態である可能性がある。さまざまな実施形態では、前に暗示したように、Ｓ２はＩＣ１０２に対するフルセットの機能を含む状態であり、Ｓ２’、Ｓ２’’および／またはＳ２’’’は、状態Ｓ２に関連する機能の少ないまたは限られたセットを含む状態Ｓ２のバリアントに対応する可能性がある。さまざまな実施形態では、Ｓ２’’’は、ＩＣ１０２のロックされたまたは無効にされた状態を示す可能性がある、ヌルセットの機能に関連している可能性がある。
【００２７】
したがって、さまざまな実施形態では、ＩＣ１０２は、状態Ｓ２’、Ｓ２’’またはＳ２’’’の１つで部分的にまたは完全にロックすることができ、制御信号１１６が受信されるまでアンロックすることができない。いくつかの実施形態では、ＦＳＭ１１２は「ブラックホール」状態（たとえば、Ｓ２’’’）を含むことができ、それによって、ＦＳＭ１１２がＰＵＦ回路１０４によって与えられた応答１１４によりＳ１からＳ２’’’まで移動すると、ＦＳＭ１１２はＳ２’’’からＳ３まで遷移することができない。したがって、さまざまな実施形態では、ＦＳＭ１１２は永久的にロックされ、回復不可能な状態に留まる、またブラックホール状態と呼ばれる可能性がある。状態Ｓ２’またはＳ２’’は、「グレーホール」状態と呼ばれ、ここでＦＳＭ１１２は、正しいキー２０７がメモリ２０６内に記憶されている前提で、Ｓ３に次第に遷移する可能性がある。
【００２８】
図３は、本開示のさまざまな実施形態による、図１および２のブロック図に関連する例示的な方法３００を示すフローチャートである。図３に示すプロセス、および本明細書に記載する他のプロセスは、処理ステップ、機能動作、イベントおよび／または動作などとして記載することができ、ハードウェア、ソフトウェア、またはその任意の組み合わせによって行うことができる、さまざまな機能ブロックを記載している。当業者は、本開示を鑑みて、図３に示す機能ブロックの多くの代替をさまざまな実装形態で行うことができることが分かるだろう。
【００２９】
ブロック３０１（ＰＵＦによって生成された値を受信する）では、いくつかの実施形態では、ＩＣ１０２に埋め込まれたＰＵＦ１０４によって生成された１つまたは複数の値または応答１１４をコンピュータデバイスによって受信することができる。これらの応答１１４は、入力１１１に応答して、ＰＵＦ１０４によって生成または提供させることができる。これらの入力１１１は独自であってもよく、ＰＵＦ１０４へのチャレンジを含むこともできる。いくつかの実施形態では、この方法はブロック３０１からブロック３０２（ＰＵＦによって生成された値に応答してキーを計算する）に進むことができる。ブロック３０２では、コンピュータデバイスを使用して、ＰＵＦ１０４によって生成された値に応じたキーを決定または計算することができる。さまざまな実施形態では、この方法は、ブロック３０２からブロック３０４（集積回路にキーを記憶する）に進むことができる。ブロック３０４では、キーの１つまたは複数をＩＣ１０２に記憶させることができる。いくつかの実施形態では、図１の記憶したキー１０７などの記憶したキーは、ＩＣ１０２内のＦＳＭ１１２の特定の遷移、すなわち、ＩＣ１０２の特定の機能に対応することができる。いくつかの実施形態では、この方法は、ブロック３０４からブロック３０８（ＩＣの動作中に、信号をイベントジェネレータに送信して、ＩＣの機能を活動化または非活動化させる）に進むことができる。ブロック３０８では図示するように、信号をイベントジェネレータ１１０に送信して、ＩＣ１０２の活動化または非活動化を制御することができる。いくつかの実施形態では、ＩＣ１０２の動作中に信号を送信することができる。いくつかの実施形態では、ＩＣ１０２の非活動化を、ＦＳＭ１１２の状態間の、たとえばＳ１からＳ２’、Ｓ２’’またはＳ２’’’への、機能を無効化させる遷移に応答して行うことができる。いくつかの実施形態では、ＩＣ１０２の動作は、ＦＳＭ１１２の状態間の、たとえばＳ１からＳ２への、機能を有効化する遷移に応答して行うことができる。したがって、さまざまな実施形態では、ＩＣ上でＦＳＭの第１の状態と第２の状態の間の遷移を制御することは、ＩＣ１０４上で入力をイベントジェネレータに遠隔で加えることを含むことができる。
【００３０】
図４は、本開示のさまざまな実施形態による、図１および２の実施形態に含めることができるロバストＰＵＦ４００の一例を示している。いくつかの実施形態では、ＰＵＦ４００は、ＰＵＦ４００の出力または応答の安定性を向上させるために構成された直線遅延ベースＰＵＦであってもよい。すなわち、ＰＵＦ４００は、いくつかの実施形態では、ＰＵＦ４００への所与の入力に対応する応答が、同じ入力でほぼ同じであるという可能性を高くするように変更することができる。
【００３１】
いくつかの実施形態では、ＰＵＦ４００は、ＩＣ１０２に埋め込まれたシリコン遅延ベースＰＵＦであってもよい。図示した実施形態では、ＰＵＦ４００は、ｎ個のカスケード式スイッチを含む１ビット遅延ベースＰＵＦであってもよい。さまざまな実施形態では、スイッチ１からｎをカスケード式にして、構造による同様の遅延を招くことが予測される経路４１５および４２０などの経路を作り出すことができる。しかし、製造変動性により、２つの経路４１５および４２０それぞれに加えられた信号４０５は、経路４１５および４２０にさまざまな遅延を同時に与えることができる。実施形態では、最後のスイッチｎの出力は、経路４１５および４２０の端部に接続させることができる２入力／１出力アービタ４１０などのアービタに接続させることができる。
【００３２】
図４から分かるように、各スイッチは、左側に２つの入力、右側に２つの入力、およびセレクタラインを有することができる。したがって、たとえば、スイッチ１は、上側入力４０４ａ、下側入力４０４ｂ、上側出力４０４ｃ、および下側出力４０４ｄを含むことができる。いくつかの実施形態では、スイッチ１は、セレクタビット用のセレクタライン４０３を含むことができる（スイッチ２からｎの入力、出力、およびセレクタラインは、図４を曖昧にするのを防ぐために記していないことに留意されたい）。セレクタビットは、ＰＵＦ４００へのチャレンジを示すことができる。いくつかの実施形態では、セレクタビットの値がゼロである場合、スイッチの上側入力をスイッチの上側出力に直接接続させることができ、スイッチの下側入力をスイッチの下側出力に直接接続させることができる。たとえば、スイッチ１では、セレクタビットの値がゼロの場合、上側入力４０４ａは上側出力４０４ｃに接続させることができ、下側出力４０４ｂは下側出力４０４ｄに接続させることができる。いくつかの実施形態では、セレクタビットの値が１である場合、上側入力（たとえば、４０４ａ）は下側出力（たとえば、４０４ｄ）にリンクさせることができ、下側入力（たとえば、４０４ｂ）は上側出力（たとえば、４０４ｃ）にリンクさせることができる。いくつかの実施形態では、上側経路４２０上の信号４０５が下側経路４１５からの信号４０５より早くアービタ４１０に到達する場合、アービタ４１０の出力はゼロである可能性がある。そうでなければ、アービタ４１０の出力は１である可能性がある。
【００３３】
したがって、さまざまな実施形態では、上に記したように、アービタ４１０は遅延差を検出することができ、アービタ４１０の出力は、下側経路４１５または上側経路４２０がより速いかどうかを示す。いくつかの実施形態では、ｄは、下側経路４１５と上側経路４２０の間の遅延差を示している。いくつかの状況では、極めて小さいｄにより、同じ入力に対するＰＵＦ４００から受信された応答の不安定性につながることがある。いくつかの実施形態では、遅延差は、アービタ４１０などのアービタを実装するために使用されるラッチの感度により生じ、このような感度は環境変化、ランダム変動、および／または経年老化の関数である可能性がある。前の図で示したように、ＰＵＦからの応答をＩＣ設計の制御部に一体化させることができるので、誤った応答は、正しいキーがある場合でさえもロックされた（機能異常の）回路につながる可能性がある。したがって、いくつかの実施形態では、選択されたチャレンジに対する遅延差は、応答安定性を維持するのに十分大きいように選択することができる。いくつかの実施形態では、入力は、ＰＵＦ４００に対して安定出力を提供することができる十分大きいｄを作り出すために選択されたチャレンジビットを含むことができる。さまざまな実施形態では、ｄは設計者が選択した遅延マージンδと少なくとも同じ大きさである可能性がある。いくつかの実施形態では、ＰＵＦ応答安定性を改善するための１対のδロバスト性回路４１２および４１３はそれぞれ、上側経路４２０に追加することができるインバータ４１２ａおよび４１２ｂ、下側経路４１５に追加することができるインバータ４１３ａおよび４１３ｂなどの追加のインバータを含むことができる。いくつかの実施形態では、ＰＵＦは、偶数のインバータ、および／またはタップ付き遅延ラインの少なくとも１つを備えることができる。
【００３４】
いくつかの実施形態では、アービタ４１４およびアービタ４１７はそれぞれ、インバータ４１２ａおよび４１２ｂ、およびインバータ４１３ａおよび４１３ｂの出力に追加することができる。図４では、インバータ４１２ａおよび４１２ｂ、またはインバータ４１３ａおよび４１３ｂの累積遅延は、遅延マージンδによって示すことができる。δロバスト性基準を満たすのに十分な遅延がもたらされる可能性があるチャレンジは、ＰＵＦテスト段階中に見出すことができる。いくつかの実施形態では、テスト中、さまざまなチャレンジをＰＵＦ４００に入力することができ、アービタ４１０および４１４からの対応する出力を読み取ることができる。図４では、ＯｔおよびＯｕはそれぞれ、アービタ４１４およびアービタ４１７の出力を示すことができる。Ｏｕに対してゼロ値を作り出すことができるチャレンジでは、δに加えられた上側経路４２０の遅延（ｄｕによって示す）は、下側経路４１５の遅延（ｄｌによって示す）より小さい可能性がある。いくつかの実施形態では、この結果は、ｄｕがｄｌより少なくともδ長いことを暗示することができる。他の実施形態では、一連のインバータおよびアービタを、下側経路４１５または上側経路４２０に加えて、両方ゼロ、両方１を含む応答を生成することができる。
【００３５】
δロバスト性条件を満たすチャレンジを加えることによって、チャレンジに対する安定した応答につながる可能性がある。δロバストチャレンジは、以下の条件の１つを満たすことができる。
ｄｌ−ｄｕ＞δ（上側経路に加えられる追加のアービタおよびインバータがゼロ出力を生成する場合）
ｄｕ−ｄｌ＞δ（下側経路に加えられる追加のアービタおよびインバータが１出力を生成する場合）
【００３６】
いくつかの実施形態では、δロバスト性回路４１２の遅延自体は極めて低く、ロバスト性をテストした全ての経路に対して２つ（以上）のインバータおよびアービタによって生じるオーバヘッドを含む可能性がある。さらに、マルチプレクサを使用して、さまざまな経路の間でロバスト性回路を共有することができる。いくつかの実施形態では、マルチプレクサ選択ラインの値を、テストに使用される入力に加えることができる。
【００３７】
図５は、本開示のさまざまな実施形態により、図１および２の実施形態に含めることができるロバストＰＵＦの別の例を示している。図５は、例示的な遅延ＰＵＦ５１２に結合させることができるメインＰＵＦ５０２を含む。さまざまな実施形態では、メインＰＵＦ５０２は、さまざまなアーキテクチャであってもよい。いくつかの実施形態では、遅延ＰＵＦ５１２はリニアＰＵＦであってもよい。いくつかの実施形態では、遅延マージンδを生成するために、図４のインバータ４１２ａおよび４１２ｂではなく、遅延ＰＵＦ５１２を使用することができる。いくつかの実施形態では、固定入力を、メインＰＵＦ５０２のセレクタビットに対する選択ライン５０６に加えることができる。遅延ＰＵＦ５０４は、５０３、５０５および５０７でチャレンジビットを加え、一次不等式系を形成することによって、リバースエンジニアリングすることができる。線形計画法を使用して不等式系を解いてδＰＵＦセグメントの遅延を与えることができる。いくつかの実施形態では、遅延ＰＵＦ５１２に対して経路セグメント遅延が知られている場合に、さまざまなδマージン値を生成することができる。記載した方法は、メインＰＵＦ５０２に対する任意のアーキテクチャに適用することができる。さまざまな実施形態では、追加の遅延素子をそれぞれ上側および下側経路に結合させることができる。これらの遅延素子の出力、および上側および下側経路はその後、上側および下側経路の相対速度または遅延を決定するのを容易にするために、それぞれアービタ５１５および５１７と並列に結合させることができる。
【００３８】
いくつかの実施形態では、遅延ＰＵＦ５１２などのロバスト性回路は、出力または他所で、アービタのほぼそれぞれに加えることができる。たとえば、図６は、本開示のさまざまな実施形態による、図１および２の実施形態に含めることができるフィードフォワードＰＵＦアーキテクチャ６００を示している。フィードフォワードＰＵＦ６０２では、６１３でのいくつかの内部遅延セグメントを、追加されたアービタ、たとえば内部アービタ６２５ｇ〜６２５ｉによってインターセプトすることができる。内部アービタ６２５ｇの出力は、（フォワードスイッチ６３５に対する）セレクタビット用セレクタライン６３０として使用することができる。いくつかの実施形態では、ＰＵＦ６０２の安定性を大きくするために、内部セグメント間の遅延差はδより大きい可能性がある。いくつかの実施形態では、δロバストであるチャレンジを求めることができるように、いくつかのカスケード式ステージを、フィードフォワードまたは内部アービタ６２５の前に挿入することができる。いくつかの実施形態では、いくつかのカスケード式ステージは、δ以上の遅延差を許容するいくつかのステージを含むことができる。いくつかの実施形態では、追加の遅延素子をそれぞれ、アービタ６２５ａおよび６２５ｄにつながる上側および下側経路に結合させることができる。各場合で、対応する上側または下側経路のどれがより長い遅延を有するかを決定することを容易にするために、遅延素子の出力および対応する上側および下側経路をそれぞれ、アービタ６２５ｂおよび６２５ｃと６２５ｅおよび６２５ｆに並列に結合させることができる。
【００３９】
さまざまな実施形態では、高いδ安定入力チャレンジの探索を、さまざまな方法で行うことができる。１つの選択肢は、ランダムに選択されたチャレンジで開始すること、および各ステップで現在のチャレンジに対して１のハミング距離を有する全てのチャレンジＣｉに挑戦する反復改善パラダイムを暗示することである。より高い安定性（上部および底部信号経路の間の遅延差）を有する少なくとも１つのＣｉチャレンジがある場合、新しい現在の解決法が、最も安定したＣｉチャレンジとして選択される。その後、手順を反復することができる。このようなチャレンジがない場合、現在のチャレンジから２、３、またはそれ以上のハミング距離上にあるチャレンジを含むように、探索を改善することができる。
【００４０】
さまざまな実施形態では、プロセスの終了基準は、以下の選択肢の１つまたは複数を利用することができる。
（ｉ）現在のチャレンジと、考えられる新しいチャレンジとの間の考えられる最大ハミング距離（たとえば、２、３、または４などの小さい値）。
（ｉｉ）手順のユーザ設定最大実行時間。
（ｉｉｉ）最大測定可能δが達成される瞬間。
（ｉｖ）ユーザ設定の満足なδ値が見出されたこと。
【００４１】
図７は、本開示の実施形態により構成された例示的なコンピュータデバイスを示すブロック図である。極めて基本的な構成７０１では、コンピュータデバイス７００は典型的には、１つまたは複数のプロセッサ７１０およびシステムメモリ７２０を備えている。メモリバス７３０は、プロセッサ７１０とシステムメモリ７２０の間で通信するために使用することができる。システムメモリ７２０は、本開示のＰＵＦの１つまたは複数の実施形態を組み込んだＲＯＭ／ＲＡＭを備えることができる。
【００４２】
所望の構成に応じて、プロセッサ７１０は、これに限らないが、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタル信号プロセッサ（ＤＳＰ）、またはその任意の組み合わせを含む任意のタイプであってもよい。プロセッサ７１０は、レベル１キャッシュ７１１およびレベル２キャッシュ１２、プロセッサコア７１３、およびレジスタ７１４などのキャッシングの１つまたは複数のレベルを含むことができる。例示的なプロセッサコア７１３は、算術演算ユニット（ＡＬＵ）、浮動小数点ユニット（ＦＰＵ）、デジタル信号処理コア（ＤＳＰコア）、またはその任意の組み合わせを含むことができる。例示的なメモリコントローラ７１５はまた、プロセッサ７１０で使用することができる、またはいくつかの実装形態では、メモリコントローラ７１５は、プロセッサ７１０の一体部であってもよい。所望の構成に応じて、システムメモリ７２０は、これに限らないが、揮発性メモリ（ＲＡＭなど）、不揮発性メモリ（ＲＯＭ、フラッシュメモリなど）、またはその任意の組み合わせを含む任意のタイプであってもよい。システムメモリ７２０は、オペレーティングシステム７２１、１つまたは複数のアプリケーション７２２、およびプログラムデータ７２４を含むことができる。
【００４３】
コンピュータデバイス７００は、基本的構成７０１と任意の所望のデバイスおよびインターフェイスの間の通信を容易にするために、追加の機構または機能、および追加のインターフェイスを有することができる。たとえば、バス／インターフェイスコントローラ７４０を使用して、記憶インターフェイスバス７４１を介した基本的構成７０１と１つまたは複数のデータ記憶デバイス７５０の間の通信を容易にすることができる。データ記憶デバイス７５０は、取外し式記憶デバイス７５１、非取外し式記憶デバイス７５２、またはその組み合わせであってもよい。取外し式記憶デバイスおよび非取外し式記憶デバイスの例としては、いくつか挙げるとすると、フレキシブルディスクドライブおよびハードディスクドライブ（ＨＤＤ）などの磁気ディスクデバイス、コンパクトディスク（ＣＤ）ドライブまたはデジタル多用途ディスク（ＤＶＤ）ドライブなどの光ディスク、ソリッドステートドライブ（ＳＳＤ）、およびテープドライブを挙げることができる。例示的なコンピュータ記憶媒体としては、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性、取外し可能および取外し不可能媒体を挙げることができる。
【００４４】
システムメモリ７２０、取外し式記憶装置７５１および非取外し式記憶装置７５２は全て、コンピュータ記憶媒体の例である。コンピュータ記憶媒体はこれに限らないが、ＲＡＭ、ＲＯＭ，ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、コンピュータデバイス７００によってアクセスすることができる任意の他の媒体が挙げられる。任意のこのようなコンピュータ記憶媒体は、デバイス７００の一部であってもよい。
【００４５】
コンピュータデバイス７００はまた、バス／インターフェイスコントローラ７４０を介した基本的構成７０１へのさまざまなインターフェイスデバイス（たとえば、出力インターフェイス、周辺インターフェイス、および通信インターフェイス）からの通信を容易にするためのインターフェイスバス７４２を備えることができる。例示的な出力デバイス７６０は、１つまたは複数のＡ／Ｖポート７６３を介したディスプレイまたはスピーカなどのさまざまな外部デバイスに通信するように構成することができる、グラフィックス処理ユニット７６１および音声処理ユニット７６２を備えている。例示的な周辺インターフェイス７７０は、１つまたは複数のＩ／Ｏポート７７３を介して入力デバイス（たとえば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど）などの外部デバイス、または他の周辺デバイス（たとえば、プリンタ、スキャナなど）と通信するように構成することができる、シリアルインターフェイスコントローラ７７１またはパラレルインターフェイスコントローラ７７２を備えている。例示的な通信デバイス７８０は、１つまたは複数の通信ポート７８２を介したネットワーク通信リンク上での１つまたは複数の他のコンピュータデバイス７９０との通信を容易にするために配置することができる、ネットワークコントローラ７８１を備えている。
【００４６】
ネットワーク通信リンクは、通信媒体の一例であってもよい。通信媒体は典型的には、コンピュータ読取可能命令、データ構造、プログラムモジュール、または搬送波または他の輸送機構などの変調データ信号内の他のデータによって具体化することができ、任意の情報担持媒体を含むことができる。「変調データ信号」は、信号内の情報を符号化するようにその特性の１つまたは複数が設定または変更された信号とすることができる。例として、これに限らないが、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音響、無線周波数（ＲＦ）、マイクロ波、赤外線（ＩＲ）および他のワイヤレス媒体などのワイヤレス媒体を含むことができる。本明細書で使用されるようなコンピュータ読取可能媒体という用語は、記憶媒体および通信媒体の両方を含むことができる。
【００４７】
コンピュータデバイス７００は、携帯電話、携帯情報端末（ＰＤＡ）、パーソナルメディアプレーヤデバイス、ワイヤレスウェブウォッチデバイス、パーソナルヘッドセットデバイス、特定用途向けデバイス、または上記機能のいずれかを含むハイブリッドデバイスなどの小型要素携帯（または移動）電子デバイスの一部として実施することができる。コンピュータデバイス７００はまた、ノートパソコンおよび非ノートパソコン構成の両方を含むパソコンとして実装することができる。
【００４８】
さまざまな実施形態では、コンピュータデバイス７００のさまざまな構成要素は、本開示のいくつかの実施形態によるＰＵＦ７０４を含むことができる。たとえば、システムメモリ７２０はＰＵＦ７０４を備えることができ、ＰＵＦ７０４は、本開示のさまざまな実施形態により、ＰＵＦ７０４の出力または応答の安定性を改善させるための構成を含むことができる。追加のまたは代替実施形態では、システムメモリ７２０の他に、プロセッサ７１０、グラフィックス処理ユニット７６１、音声処理ユニット７６２、および／または記憶デバイス７５０の制御回路、バスインターフェイスコントローラ７４０、直列インターフェイスコントローラ７７１、並列インターフェイスコントローラ７７２、およびネットワークコントローラ７８１に使用される特定用途向け集積回路またはフィールドプログラマブル回路の１つまたは複数もまた、ＰＵＦ７０４の実施形態を含むことができる。いくつかの実施形態では、ＰＵＦ７０４はイベントジェネレータから入力を受信するように結合させることができ、入力はコンピュータシステム７００の構成要素の１つまたは複数内で集積回路を有効または無効にするための１つまたは複数のチャレンジを含むことができる。
【００４９】
図８は、本開示のさまざまな実施形態による、コンピュータプログラム製品を有する例示的な製品を示している。例示的なコンピュータプログラム製品８００は、コンピュータ読取可能記憶媒体８３２と、コンピュータ読取可能記憶媒体８３２内に記憶されたいくつかのプログラミング命令８３４とを備えることができる。これらの実施形態のさまざまなものでは、プログラミング命令８３４は、ＩＣを制御するためにＩＣのＰＵＦの出力に応答するようにＩＣ内に記憶させるキーを決定する命令を含むことができる。さまざまな実施形態では、プログラミング命令８３４は、加えてまたは別の方法では、イベントジェネレータに、出力を供給するためのＰＵＦのイベントを生成させるように、ＩＣのイベントジェネレータに入力を与える命令を含むことができる。
【００５０】
いくつかの実施形態は、図８に示す命令のいくつかまたは全てを有することができる。コンピュータプログラム製品８００の実施形態は、本明細書に記載する実施形態による他の命令を有することができる。コンピュータ読取可能媒体８３２は、これに限らないが、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ソリッドステートドライブ、ハードドライブなどの揮発性および持続性メモリを含むさまざまな形をとることができる。実施形態は、１つまたは複数の任意のタイプのコンピュータプログラム製品に限るものではない。
【００５１】
特許請求されている主題は、本明細書に記載する特定の実装に範囲を限るものではない。たとえば、デバイスまたはデバイスの組み合わせ上で動作するものなどハードウェアで実装されることも、ソフトウェアおよび／またはファームウェアで実装されることもある。同様に、特許請求されている主題はこれに関して範囲を限るものではないが、いくつかの実装形態は、１つまたは複数の記憶媒体などの１つまたは複数の物体を含むことができる。たとえばＣＤ−ＲＯＭ、コンピュータディスク、フラッシュメモリなどのこのような記憶媒体は、たとえばコンピュータシステム、コンピュータプラットフォームまたは他のシステムなどのシステムよって実行されたときに、たとえば前に記載した実装形態の１つなどの特許請求されている主題によるプロセッサの実行につながる可能性がある、上に記憶された命令を有することができる。１つの可能性として、コンピュータプラットフォームは、１つまたは複数の処理ユニットまたはプロセッサ、ディスプレイ、キーボードおよび／またはマウスなどの１つまたは複数の入力／出力デバイス、および静的ランダムアクセスメモリ、動的ランダムアクセスメモリ、フラッシュメモリ、および／またはハードドライブなどの１つまたは複数のメモリを含むことができる。
【００５２】
明細書内での「実装形態」、「１つの実装形態」、「いくつかの実装形態」、または「他の実装形態」という言及は、１つまたは複数の実装形態に関連して記載した特定の機構、構造または特徴を、必ずしも全ての実装形態ではなく、少なくともいくつかの実装形態に含めることができることを意味する可能性がある。前述の説明内での「実装形態」、「１つの実装形態」、または「いくつかの実装形態」のさまざまな登場は、必ずしも全て同じ実装形態のことを言及しているわけではない。さらに、「結合された」または「応答」または「に応答して」または「と通信して」などの用語または表現が本明細書または以下の特許請求の範囲で使用される場合、これらの用語は広義に解釈すべきものである。たとえば、「結合された」という表現は、この表現が使用される内容に適当であるように、通信可能に、電気的に、および／または動作可能に結合されることを言うことができる。
【００５３】
前述の説明では、特許請求されている主題のさまざまな態様が記載されている。説明する目的で、特許請求されている主題を完全に理解するために、特定の数、システムおよび／または構成が記載されている。しかし、当業者および本開示の利点を有する者には、特許請求されている主題は特定の詳細なしで実施することができることが明らかであろう。他の例では、特許請求されている主題を曖昧にしないように、よく知られている機構を省略および／または単純化した。特定の機構が本明細書に図示および／または記載されているが、多くの変形、置換、変更および／または同等物が、現在または将来、当業者には思い付くだろう。したがって、添付の特許請求の範囲は、特許請求されている主題の真の精神内にあるこのような変形形態および／または変更形態全てを含むことを意図していることを理解されたい。
【００５４】
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に（いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で）コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび／またはシステムおよび／または他の技術をもたらすことができるさまざまな達成手段があり（たとえば、ハードウェア、ソフトウェア、および／またはファームウェア）、好ましい達成手段は、プロセスおよび／またはシステムおよび／または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび／またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および／またはファームウェアのなんらかの組み合わせを選択することができる。
【００５５】
前述の詳細な説明では、ブロック図、フローチャート、および／または例の使用によって、装置および／またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および／または例が１つまたは複数の機能および／または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および／または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらの全ての組み合わせにより、個別におよび／または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、１つまたは複数のコンピュータ上で動作する１つまたは複数のコンピュータプログラムとして（たとえば、１つまたは複数のコンピュータシステム上で動作する１つまたは複数のプログラムとして）、１つまたは複数のプロセッサ上で動作する１つまたは複数のプログラムとして（たとえば、１つまたは複数のマイクロプロセッサ上で動作する１つまたは複数のプログラムとして）、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに／またはソフトウェアおよび／もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号送信媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号送信媒体の例には、フロッピー（登録商標）ディスク、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および／またはアナログ通信媒体（たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）の通信タイプの媒体が含まれるが、それらには限定されない。
【００５６】
本明細書で説明したやり方で装置および／またはプロセスを記載し、その後そのように記載された装置および／またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および／またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインターフェイス、およびアプリケーションプログラムのうちの１つもしくは複数、タッチパッドもしくはスクリーンなどの１つもしくは複数の相互作用装置、ならびに／またはフィードバックループおよびコントロールモータを含むコントロールシステム（たとえば、位置検知用および／もしくは速度検知用フィードバック、コンポーネントの移動用および／もしくは数量の調整用コントロールモータ）を含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング／通信システムおよび／またはネットワークコンピューティング／通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。
【００５７】
本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の２つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および／もしくは物理的に相互作用するコンポーネント、ならびに／またはワイヤレスに相互作用可能な、および／もしくはワイヤレスに相互作用するコンポーネント、ならびに／または論理的に相互作用する、および／もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【００５８】
本明細書における実質的に全ての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。さまざまな単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００５９】
通常、本明細書において、特に添付の特許請求の範囲（たとえば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（たとえば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む発明に限定する、ということを示唆していると解釈されるべきではない（たとえば、「ａ」および／または「ａｎ」は、通常、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（たとえば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、通常、少なくとも２つの記載、または２つ以上の記載を意味する）。さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。「Ａ、Ｂ、またはＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、またはＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、など���有するシステムを含むが、それに限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【図１】
0005485397.tif 000002
【図２】
0005485397.tif 000003
【図３】
0005485397.tif 000004
【図４】
0005485397.tif 000005
【図５】
0005485397.tif 000006
【図６】
0005485397.tif 000007
【図７】
0005485397.tif 000008
【図８】
0005485397.tif 000009