(57)【要約】本発明はデバッグ回路（２０）に関し、特にデバッグ回路（２０）のセキュリティを確保する方法及び装置に関する。一の実施形態では、複数の不揮発性素子（３８）を使用して、デバッグ回路（２０）の少なくとも一部を選択的にディスエーブルにし、そして再イネーブルする。認証も使用することができる。本発明は、ＩＥＥＥが規定するＪＴＡＧデバッグインターフェースのような標準デバッグインターフェースを含むどのようなデバッグインターフェースも使用することができる。
2007502462.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ回路のセキュリティを確保する方法であって、
デバッグ回路をイネーブルの状態にする工程と、
第１不揮発性素子に書き込みを行なってデバッグ回路をディスエーブルにする工程と、
第１不揮発性素子に書き込みを行なった後に第２不揮発性素子に書き込みを行なって、デバッグ回路を再イネーブルする操作およびデバッグ回路を永久的にディスエーブルにする操作の内の一つを実行する工程と、
からなる方法。
【請求項２】
第１不揮発性素子に書き込みを行なった後で、かつ第２不揮発性素子に書き込みを行なう前に、デバッグ回路を、認証操作に応答して選択的にイネーブルにすることができる請求項１記載の方法。
【請求項３】
デバッグ回路のセキュリティを確保する方法であって、
デバッグ回路を、認証操作に応答して選択的にイネーブルにすることができるセキュアデバッグ状態にする工程と、
デバッグ回路を認証操作に応答してイネーブルにする工程と、
デバッグ回路を認証操作に応答してイネーブルにした後、第１不揮発性素子に書き込みを行なう工程と、からなる方法。
【請求項４】
更に、第１不揮発性素子に書き込みを行なった後に第２不揮発性素子に書き込みを行ない、第２不揮発性素子に書き込みを行なった後、デバッグ回路は再びイネーブルセキュアデバッグ状態になり、同再びイネーブルセキュアデバッグ状態では、デバッグ回路を認証操作に応答して選択的にイネーブルにすることができる請求項３記載の方法。
【請求項５】
更に、第２不揮発性素子に書き込みを行なった後に第３不揮発性素子に書き込みを行なって、デバッグ回路を永久的にディスエーブルにする請求項４記載の方法。
【請求項６】
デバッグ回路のセキュリティを確保する方法であって、
デバッグ回路を認証操作に応答してイネーブルにする工程と、
デバッグ回路をイネーブルにした後、所定長の時間が経過したときデバッグ回路をディスエーブルにする工程と、からなる方法。
【請求項７】
デバッグ回路を認証操作に応答してイネーブルにする前に、更に、
デバッグ回路をイネーブル状態にする工程と、
第１不揮発性素子に書き込みを行なってデバッグ回路をディスエーブルにする工程と、からなる請求項６記載の方法。
【請求項８】
デバッグ回路と、
第１不揮発性素子と、
第２不揮発性素子と、
第１不揮発性素子及び第２不揮発性素子に基づいて、デバッグイネーブル表示子をデバッグ回路に供給するデバッグイネーブル回路と、を備え、
第１不揮発性素子は、デバッグ回路が、認証操作に応答して選択的にイネーブルにすることができるセキュアデバッグ状態にあるかどうかを示し、
第２不揮発性素子は、第１不揮発性素子による設定を無効にすべきかどうかを示す、集積回路。
【請求項９】
第２不揮発性素子は、第１不揮発性素子による設定を無効にすべきかどうかについて、デ
バッグ回路を再イネーブルすることができるバイパスセキュリティ状態にデバッグ回路があるかどうかを示すことにより示す、請求項８記載の集積回路。
【請求項１０】
第２不揮発性素子は第１不揮発性素子による設定を無効にすべきかどうかについて、デバッグ回路を永久的にディスエーブルにするかどうかを示すことにより示す、請求項８記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデバッグ回路に関し、特にデバッグ回路のセキュリティを確保する方法及び装置に関する。
【背景技術】
【０００２】
集積回路のセキュリティは、集積回路のセキュリティがより重要になる用途に使用されるようになるに従って重要性が増してきている。このような用途の例としては、スマートカード、携帯電話、インターネット通信機器などがある。特に、多くの場合、集積回路の一つ以上の部分への悪意のある、または無許可のアクセスに対してセキュリティを確保することが望ましい。多くの集積回路は、情報を集積回路に入力し、情報を集積回路から出力するために使用することができる端子を備える。このような入力／出力端子は、集積回路の一つ以上の部分への無許可のアクセスの経路となり得る。更に、集積回路の或る入力／出力端子を使用してデバッグやエミュレーション、テストに使用することができ、かつこれらの入力／出力端子は集積回路の一つ以上の部分への無許可のアクセスの経路ともなり得る。
【０００３】
集積回路のデバッグ、エミュレーション、及びテストに使用される一つの共通標準は、公知のＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ）１１９４．１テストアクセスポート及びバウンダリスキャン（ｂｏｕｎｄａｒｙ  ｓｃａｎ）アーキテクチャである。標準ＪＴＡＧインターフェースに加えて、集積回路に使用される非常に多岐に渡る他のデバッグインターフェース、エミュレーションインターフェース、及び／又はテストインターフェースがある。
【特許文献１】米国特許番号１０／１００，４６２
【発明を実施するための最良の形態】
【０００４】
“ａｓｓｅｒｔ（アサート）”及び“ｎｅｇａｔｅ（ネゲート）”という用語は、信号、ステータスビット、または同様な手段をそれぞれその論理的に真の状態または論理的に偽の状態にする操作を指す場合に使用する。論理的に真の状態が論理レベル１である場合、論理的に偽の状態は論理レベル０である。更に、論理的に真の状態が論理レベル０である場合、論理的に偽の状態は論理レベル１である。また、“ｌｏｇｉｃ  ｌｅｖｅｌ（論理レベル）”及び“ｌｏｇｉｃ  ｓｔａｔｅ（論理状態）”という用語は本明細書では同じ意味に使用される。本明細書において使用する“ｄｅｂｕｇ（デバッグ）”という用語は非常に広い意味に用いれられ、エミュレーション機能及びテスト機能も含む。
当業者であれば、これらの図における構成要素が説明を簡単かつ明瞭にするために示され、そして必ずしも寸法通りには描かれていないことが分かるであろう。例えば、これらの図における幾つかの構成要素の寸法を他の構成要素に対して誇張して描いて本発明の実施形態を理解し易くしている。
【０００５】
図１は、本発明の一の実施形態による集積回路（ＩＣ）１０をブロック図として示している。一の実施形態では、ＩＣ１０はデバッグポート２０及び保護対象機能回路１２を含む。一の実施形態では、保護対象機能回路１２はプロセッサ１４、他の回路１６、及び入力／出力（Ｉ／Ｏ）回路１８を含み、これらの回路は通信信号２６を通して双方向通信可能にし、更にデバッグポート２０に接続される。一の実施形態では、プロセッサ１４はどのようなタイプの命令も実行するプロセッサとすることができ、例えば中央処理ユニット、デジタル信号プロセッサ、タイマー処理ユニットなどを挙げることができる。一の実施形態では、他の回路１６は、ＩＣ１０の所望の機能の内の一つ以上を実行するが、所望の
機能を実行するために命令を実行する必要が必ずしもある訳ではない回路とすることもできる。保護対象機能回路１２の別の実施形態は、プロセッサ１４のみ、他の回路１６のみ、またはプロセッサ１４及び他の回路１６の両方を含むことができる。一の実施形態では、Ｉ／Ｏ回路１８は一つ以上のＩＣ端子２４に接続されてＩＣ１０の外部の回路（図示せず）と信号の授受を行なう。本発明の別の実施形態では、Ｉ／Ｏ回路１８はいずれかのタイプの外部バス構造を含むことができ、これらの外部バス構造としては、データ／アドレス／制御バス構造を挙げることができる。ＩＣ１０の更に別の実施形態は、Ｉ／Ｏ回路１８及びＩＣ端子２４さえも有する必要がなく、例えばシングルチップモードで動作するＩＣ１０は外部バスを持たない。本発明の一の実施形態では、デバッグポート２０は双方向通信可能に一つ以上のＩＣ端子２２に接続され、これらの端子によって、デバッグポート２０はＩＣ１０の外部に位置するデバイス群（図示せず）と信号の授受を行なうことができる。
【０００６】
図２は、本発明の一の実施形態による、図１のデバッグポート２０の一部をブロック図として示している。一の実施形態では、デバッグポート２０は制御回路４６を含み、この制御回路は不揮発性素子３８に接続されて不揮発性素子３８の制御及び／又は書き込みを行なう。本発明の一の実施形態では、不揮発性素子３８の内の一つ以上の素子は、ワンタイムプログラマブルメモリのようなワンタイムプログラム回路を使用して形成することができる。本発明の別の実施形態では、不揮発性素子３８の内の一つ以上の素子は、いずれかのタイプのフューズを使用して形成することができる。ここで、不揮発性素子３８は１タイプのみの不揮発性素子を使用して形成することができる、または別の構成として、複数の異なるタイプの不揮発性素子を使用して形成することができる。図２に示す実施形態では、不揮発性素子３８はイネーブルセキュアデバッグ素子（ｅｎａｂｌｅ  ｓｅｃｕｒｅ  ｄｅｂｕｇ  ｅｌｅｍｅｎｔ）３０と、バイパスセキュアデバッグ素子（ｂｙｐａｓｓ  ｓｅｃｕｒｅ  ｄｅｂｕｇ  ｅｌｅｍｅｎｔ）３２と、再イネーブルセキュアデバッグ素子（ｒｅ−ｅｎａｂｌｅ  ｓｅｃｕｒｅ  ｄｅｂｕｇ  ｅｌｅｍｅｎｔ）３４と、そしてディスエーブルデバッグ素子（ｄｉｓａｂｌｅ  ｄｅｂｕｇ  ｅｌｅｍｅｎｔ）３６と、を含む。本発明の別の実施形態は、いずれかの数の不揮発性素子３８を使用することができる。制御回路４６を使用して不揮発性素子３８の論理状態を変える。本発明の一の実施形態では、制御回路４６はカウンタ４７を含み、このカウンタを使用して所定長の時間を提供する。
【０００７】
デバッグイネーブル回路４０は信号を不揮発性素子３８及び認証回路４４から受信し、そしてこれらの受信信号に基づいて、デバッグイネーブル回路４０はイネーブルデバッグ信号５８を選択的にアサートする。イネーブルデバッグ信号５８はデバッグイネーブル回路４０からデバッグロジック４３に供給される。デバッグロジック４３はデバッグ回路４２を含み、このデバッグ回路はイネーブルデバッグ信号５８の影響を受ける。本発明の別の実施形態では、デバッグ回路４２はデバッグロジック４３の全て、または一部のみを含むことができる。或る実施形態では、デバッグロジック４３は、デバッグ目的に使用する他の回路を含むことができ、他の回路はイネーブルデバッグ信号５８によってイネーブルにならない、またはディスエーブルされる。イネーブルデバッグ信号５８はデバッグ回路４２が使用して、デバッグ回路４２が実行する一つ以上のデバッグ機能をイネーブルにする。デバッグ回路４２を使用してＩＣ１０の保護対象機能回路１２の一つ以上の部分をデバッグすることができる（図１参照）。
【０００８】
ここで、認証回路４４はいずれかのタイプの認証を、ハードウェア及びソフトウェアのいずれかの組合せを使用して行なうことができることに注目されたい。更に、本発明の或る実施形態は、認証回路４４を全く使用しないようにすることもできる。本発明に使用することができる認証の一例に関しては、本出願の譲受人に譲渡され、かつここで参照することによってその内容が本発明の開示に含まれることになる、「集積回路セキュリティ及
びセキュリティを確保する方法」と題する２００２年３月１８日出願の米国特許番号１０／１００，４６２を参照されたい。
【０００９】
図示の実施形態では、デバッグイネーブル回路４０は、ＯＲゲート５０、ＡＮＤゲート５２、及びＡＮＤゲート５４を使用する形で用いられる。本発明の別の実施形態は、いずれかの所望の回路を使用するデバッグイネーブル回路４０を用いることができる。図２に示す特定のゲート群は、デバッグイネーブル回路４０に使用できる単なる一つの実施形態に過ぎない。図２に示すデバッグイネーブル回路の実施形態では、ＡＮＤゲート５４は第１入力をバイパスセキュアデバッグ素子３２から受信し、そして第２入力を再イネーブルセキュアデバッグ素子３４から受信する。ＯＲゲート５０は第１入力を認証回路４４から受信し、第２入力をイネーブルセキュアデバッグ素子３０から受信し、そして第３入力をＡＮＤゲート５４の出力から受信する。ＡＮＤゲート５２は第１入力をＯＲゲート５０の出力から受信し、そして第２入力をディスエーブルデバッグ素子３６から受信する。ゲート５０，５２，及び５４を使用するデバッグイネーブル回路４０の特定の実施形態では、イネーブルセキュアデバッグ素子３０は最初は論理レベル１であり、バイパスセキュアデバッグ素子３２は最初は論理レベル０であり、再イネーブルセキュアデバッグ素子３４は最初は論理レベル１であり、そしてディスエーブルデバッグ素子３６は最初は論理レベル０である。
【００１０】
認証回路４４を利用する本発明の実施形態では、認証回路４４は双方向通信可能に制御回路４６に接続される。本発明の或る実施形態では、認証回路４４は通信信号２６及び／又はＩＣ端子２２に接続することができる。本発明の或る実施形態では、デバッグロジック４３は通信信号２６及び／又はＩＣ端子２２に接続することができる。
【００１１】
図３は、本発明の一の実施形態による、図２のデバッグ回路４２に対するセキュリティを段階的にイネーブルにし、そしてディスエーブルにする方法を状態図として示している。この状態図を使用するために、不揮発性素子３８にはフューズを用いることを前提とするが、本発明の他の実施形態は、不揮発性素子３８を実現するためにどのような所望の回路も使用することができる。図３に示す状態図はＳＴＡＴＥ  Ａから始まる。本発明の一の実施形態では、ＳＴＡＴＥ  ＡはＩＣ１０の製造後の初期状態である。図示のＳＴＡＴＥ  Ａでは、デバッグ回路４２をイネーブルにし、そして保護対象機能回路１２（図１参照）に対するフルデバッグアクセスを利用することができる。或る実施形態では、ＳＴＡＴＥ  Ａから出るためには認証を必要とするようにすることができ、そして他の実施形態では、ＳＴＡＴＥ  Ａから出るためには認証を必要としないようにすることができる。ＳＴＡＴＥ  ＢにはＳＴＡＴＥ  Ａから入ることができ、この操作は、イネーブルセキュアデバッグフューズ３０を飛ばすことにより行われ、フューズを飛ばすことによって、論理レベル１から論理レベル０への永久的な遷移が行われる。
【００１２】
初期セキュア状態のＳＴＡＴＥ  Ｂでは、デバッグ回路４２の安全が確保され、保護対象機能回路１２へのデバッグアクセス（図１参照）は利用することができない。次に認証を使用してＳＴＡＴＥ  ＢからＳＴＡＴＥ  Ｃへの遷移を行なう。ここでもまた、いずれかのタイプの認証を使用することができる。ここで、ＳＴＡＴＥ  ＢからＳＴＡＴＥ  Ｃへの遷移を行なうために使用する認証は、ＳＴＡＴＥ  Ａから出るために使用するかどうかは任意の認証と同じとする、または認証とは異ならせることができることに留意されたい。
【００１３】
本発明の一の実施形態では、ＳＴＡＴＥ  Ｃは安全なデバッグを実行することができる状態である。図示のＳＴＡＴＥ  Ｃでは、デバッグ回路４２をイネーブルにし、そして保護対象機能回路１２（図１参照）へのフルデバッグアクセスを利用することができる。ここで、本発明の別の実施形態では、デバッグロジック４３の内、ＳＴＡＴＥ  Ｃでイネー
ブルにする一つ以上の部分は、デバッグロジック４３の内、ＳＴＡＴＥ  Ａでイネーブルにする一つ以上の部分と同じとする、またはこれらの部分とは異ならせることができることに留意されたい。
【００１４】
ＳＴＡＴＥ  ＣからＳＴＡＴＥ  Ｂに戻るかどうかは任意である。ＳＴＡＴＥ  ＣからＳＴＡＴＥ  Ｂへの戻りが行なわれる場合、この戻りは、例えばハードウェアリセット、ソフトウェアリセット、デバッグ命令、または状態変化を自動的に生じさせるタイムアウトのようないずれかの所望のメカニズムにより生じさせることができる。タイムアウトを使用してＳＴＡＴＥ  Ｂに戻る場合、デバッグ回路４２を再イネーブルした後、所定の（固定の、またはユーザが書き込むことができる形式の）長さの時間が経過したときにデバッグ回路４２をディスエーブルにする。カウンタ４７（図２参照）を使用して所定長の時間を制御回路４６に供給することができる。一つの採用可能な例では、カウンタ４７に所定（固定の、またはユーザが書き込むことができる形式の）の値を読み込み、次にこの値をゼロまでカウントダウンして所定長の時間を供給する。別の実施形態では、いずれかの所望の方法を使用して所定長の時間を供給することができる。
【００１５】
ＳＴＡＴＥ  ＤにはＳＴＡＴＥ  Ｃから入ることができ、この操作は、バイパスセキュアデバッグフューズ３２を飛ばすことにより行われ、フューズを飛ばすことによって、論理レベル０から論理レベル１への永久的な遷移が行われるので、正しい入力が図２に示すデバッグイネーブル回路４０の実施形態に供給される。本発明の一の実施形態では、ＳＴＡＴＥ  Ｄは認証を得ることなく到達するセキュリティ状態である。図示のＳＴＡＴＥ  Ｄでは、デバッグ回路４２をイネーブルにし、そして保護対象機能回路１２（図１参照）に対するフルデバッグアクセスを利用することができる。ここでもまた、本発明の別の実施形態は、ＳＴＡＴＥ  Ｄを使用して、デバッグロジック４３の全てではなく、デバッグロジック４３の一つ以上の部分をイネーブルにすることができる。デバッグ回路４２は単に、デバッグロジック４３の内、特定の時間にディスエーブルにする、そして／または再イネーブルすることができる一つ以上の部分を表わすだけである。或る実施形態では、ＳＴＡＴＥ  Ｄから出るためには認証が必要になるようにすることができ、そして他の実施形態では、ＳＴＡＴＥ  Ｄから出るためには認証が必要ではないようにすることができる。ここで、認証を使用してＳＴＡＴＥ  Ｄから出る場合、ＳＴＡＴＥ  Ｄから出るために使用する認証は、ＳＴＡＴＥ  Ａから出るために使用するかどうかは任意の認証と同じとする、または認証とは異ならせることができ、そして／またはＳＴＡＴＥ  ＢからＳＴＡＴＥ  Ｃへの遷移を行なうために使用する認証と同じとする、または認証とは異ならせることができることに留意されたい。ここで、本発明の別の実施形態では、デバッグロジック４３の内、ＳＴＡＴＥ  Ｄでイネーブルにする一つ以上の部分は、デバッグロジック４３の内、ＳＴＡＴＥ  Ａ及び／又はＳＴＡＴＥ  Ｃでイネーブルにする一つ以上の部分と同じとする、またはこれらの部分とは異ならせることができることに留意されたい。
【００１６】
ＳＴＡＴＥ  ＥにはＳＴＡＴＥ  Ｄから入ることができ、この操作は、再イネーブルセキュアデバッグフューズ３４を飛ばすことにより行われ、フューズを飛ばすことによって、論理レベル１から論理レベル０への永久的な遷移が行われるので、正しい入力が図２に示すデバッグイネーブル回路４０の実施形態に供給される。本発明の一の実施形態では、ＳＴＡＴＥ  Ｅは再度イネーブルになるセキュア状態である。図示のＳＴＡＴＥ  Ｅでは、デバッグ回路４２の安全が確保され、かつ保護対象機能回路１２（図１参照）に対するデバッグアクセスは利用することができない。次に認証を使用してＳＴＡＴＥ  ＥからＳＴＡＴＥ  Ｆへの遷移を行なう。ここでもまた、いずれかのタイプの認証を使用することができる。ここで、ＳＴＡＴＥ  ＥからＳＴＡＴＥ  Ｆへの遷移を行なうために使用する認証は、ＳＴＡＴＥ  Ａから出るために使用するかどうかは任意の認証と同じとする、または認証とは異ならせることができ、そして／またはＳＴＡＴＥ  ＢからＳＴＡＴＥ  Ｃへの遷移を行なうために使用する認証と同じとする、または認証とは異ならせることがで
きることに留意されたい。
【００１７】
本発明の一の実施形態では、ＳＴＡＴＥ  Ｆは安全なデバッグを実行することができる状態である。図示のＳＴＡＴＥ  Ｆでは、デバッグ回路４２をイネーブルにし、そして保護対象機能回路１２（図１参照）へのフルデバッグアクセスを利用することができる。ここで、本発明の別の実施形態では、デバッグロジック４３の内、ＳＴＡＴＥ  Ｆでイネーブルにする一つ以上の部分は、デバッグロジック４３の内、ＳＴＡＴＥ  Ａ及び／又はＳＴＡＴＥ  Ｃ及び／又はＳＴＡＴＥ  Ｄでイネーブルにする一つ以上の部分と同じとする、またはこれらの部分とは異ならせることができることに留意されたい。
【００１８】
ＳＴＡＴＥ  ＦからＳＴＡＴＥ  Ｅに戻るかどうかは任意である。ＳＴＡＴＥ  ＦからＳＴＡＴＥ  Ｅへの戻りを行なう場合、この戻りは、例えばハードウェアリセット、ソフトウェアリセット、デバッグ命令、または状態変化を自動的に生じさせるタイムアウトのようないずれかの所望のメカニズムにより生じさせることができる。タイムアウトを使用してＳＴＡＴＥ  Ｅに戻る場合、デバッグ回路４２を再イネーブルした後、所定の（固定の、またはユーザが書き込むことができる形式の）長さの時間が経過したときにデバッグ回路４２をディスエーブルにする。カウンタ４７（図２参照）を使用して所定長の時間を制御回路４６に供給することができる。一つの採用可能な例として、カウンタ４７に所定の（固定の、またはユーザが書き込むことができる形式の）値を読み込み、次にこの値をゼロまでカウントダウンして所定長の時間を供給する。別の実施形態では、いずれかの所望の方法を使用して所定長の時間を供給することができる。
【００１９】
本発明の一の実施形態では、ＳＴＡＴＥ  Ｇはディスエーブル状態である。ＳＴＡＴＥ
Ｇは、ＳＴＡＴＥ  Ａ，ＳＴＡＴＥ  Ｅ，またはＳＴＡＴＥ  Ｆのいずれか一つから入ることができ、この操作は、ディスエーブルデバッグフューズ３６を飛ばすことにより行われ、フューズを飛ばすことによって、論理レベル１から論理レベル０への永久的な遷移が行われて、正しい入力が図２に示すデバッグイネーブル回路４０の実施形態に供給される。図示のＳＴＡＴＥ  Ｇでは、デバッグ回路４２をディスエーブルするので、保護対象回路１２（図１参照）へのデバッグアクセスは利用することができない。本発明の一の実施形態では、ＳＴＡＴＥ  Ｇは、そこから出ることができない最終状態として設けられる。
【００２０】
上に記載したＳＴＡＴＥ  Ｅ，Ｆ，及びＧは任意選択であり、これらの状態の内の一つ以上は本発明の種々の実施形態において用いることができる。従って、本発明の或る実施形態では、再イネーブルセキュアデバッグ素子３４及び／又はディスエーブルデバッグ素子３６は用いないで済む。また、本発明の別の実施形態では、バイパスセキュアデバッグ素子３２及び再イネーブルセキュアデバッグ素子３４は用いないで済む。それに代わる形で、ディスエーブルデバッグ素子３６を使用してＳＴＡＴＥ  ＣからＳＴＡＴＥ  Ｇへの直接遷移が可能になる。
【００２１】
図３に記載する状態図は、いずれかのタイプの回路を制御回路４６及びデバッグイネーブル回路４０の中に使用する形で実現することができる。従って、図３の機能を状態図の形式で記載してきたが、図３の機能は、クロック論理を使用するステートマシンとして、組合せ論理として、またはステートマシン及び組合せ論理のいずれかの組合せとして用いることができる。前に述べたように、不揮発性素子３８はいずれかのタイプの不揮発性回路を使用する形で用いることができ、フューズは単なる一例に過ぎない。
【００２２】
図３に記載する特定の実施形態を使用する一つの考えられる利点は、他の利点の中でも特に、不揮発性素子３８が、どのような所望の認証アプローチと組み合わせた形でも任意に使用することができることである。これにより、ＩＣ１０を初期状態（ＳＴＡＴＥ  Ａ
）で製造することが可能になり、この初期状態によってＩＣ１０の製品開発フェーズの間におけるフルデバッグアクセスが可能になる。従って、ＩＣ１０を大元の機器製造業者（例えば、携帯電話、自動車などの製造業者）に対して販売する前に、イネーブルセキュアデバッグ素子３０の論理状態を変えて、回路１２へのデバッグ回路４２を通してのデバッグアクセスの全て、または一部がディスエーブルになる（ＳＴＡＴＥ  Ｂ）ようにする。しかしながら普通、「大元の機器製造業者（相手先ブランドによる委託生産を受託し、相手先の商標を付けて製品を供給する製造業者：ｏｒｉｇｉｎａｌ  ｅｑｕｉｐｍｅｎｔ  ｍａｎｕｆａｃｔｕｒｅｒ：ＯＥＭ）及び／又はＩＣ製造業者」（本明細書では一括して製造業者と呼ぶ）が保護対象回路１２にデバッグ回路４２を通してアクセスすることができるようにして、ＩＣ１０を使用する製品が販売された後に、製造業者がＩＣ１０、またはＩＣ１０を使用する製造業者の製品またはシステムをデバッグすることができるようにすることが望ましい。しかしながら、製造業者は多くの場合、製造業者だけが保護対象回路１２にデバッグ回路４２を通してアクセスすることができるように認証手順（ＳＴＡＴＥ  ＢからＳＴＡＴＥ  Ｃへの遷移）が必要となるような形態を希望する。従って、製造業者はデバッグ操作をＳＴＡＴＥ  Ｃ及び／又はＳＴＡＴＥ  Ｄにおいて自由に行なうことができる。
【００２３】
ＳＴＡＴＥ  Ｃに関する一の使用方法では、ＳＴＡＴＥ  Ｄに入ることができる前に認証が必要となるようにする。ＳＴＡＴＥ  Ｃに関する別の使用方法では、デバッグができる状態にし、次に、使用するデバッグツールまたは他のソフトウェアツールが、必要な認証プロセスの実行を処理する機能を備える場合にＳＴＡＴＥ  Ｂへの戻りを可能にする。認証を必要とすることが望ましい場合、システムは、デバッグ操作の実行が必要になるまでＳＴＡＴＥ  Ｂに留まることができる。この時点で、認証を実行してＳＴＡＴＥ  Ｃへの遷移を行ってデバッグ機能を実行することができる。それとは逆に、製造業者が後の時点で、デバッグ操作の実行のために認証を必要としないことが望ましいと判断することができるので、回路をＳＴＡＴＥ  Ｄにして、デバッグ操作を実行するためには認証が必要ではない状態にすることができる。状態Ｄに関する一の使用方法では、製造業者は、認証プロセスを認識しない市販のデバッグツール及び他のソフトウェアツールデバッグツールを使用することができる。ＳＴＡＴＥ  Ｃから、製造業者はＳＴＡＴＥ  Ｄに遷移することができ、この場合、認証プロセスを認識しないソフトウェアツールは自由に動作することができる。本発明の一の実施形態では、バイパスセキュアデバッグ素子３２の論理状態を遷移させてＳＴＡＴＥ  ＣからＳＴＡＴＥ  Ｄにする。
【００２４】
ＳＴＡＴＥ  Ｄからは、製造業者が一旦、製造業者の製品開発を終え、そして製造業者の製品をカスタマーに供給する準備が整うと、製造業者は再イネーブルセキュアデバッグ素子３４の論理状態を変えて、回路１２へのデバッグ回路４２を通しての全てのアクセスがディスエーブル（ＳＴＡＴＥ  Ｅ）になるようにすることができる。ここで、本発明の或る実施形態に関しては、上の方法ではなく、製造業者はＳＴＡＴＥ  Ｃから永久的ディスエーブル状態（例えばＳＴＡＴＥ  Ｇ）への直接遷移を希望することができることに注目されたい。永久的ディスエーブル状態（例えばＳＴＡＴＥ  Ｇ）にする目的の一つは、保護対象機能回路１２へのデバッグ回路４２を通してのアクセスが更に行われることを防止することができることである。しかしながら、製造業者の電子機器に対するサービス、修理、または不良解析を更に行なうためには、永久的ではないディスエーブル状態（ＳＴＡＴＥ  Ｅ）が必要となる。永久的ではないディスエーブル状態（ＳＴＡＴＥ  Ｅ）を使用する場合、保護対象機能回路１２へのデバッグ回路４２を通してのアクセスは再び、所定の認証プロセス（認証によってＳＴＡＴＥ  ＥからＳＴＡＴＥ  Ｆへの状態遷移が行われる）を完了させることにより行なうことができる。ここで、ＳＴＡＴＥ  Ａ，Ｃ，Ｄ，及びＦで利用して実際にＩＣ１０をデバッグする、または解析することができる或るデバッグソフトウェア及び／又はエミュレーションソフトウェアは、全てのパスワードまたはキーを含む認証プロセスを認識する必要がないようにしなければならないことに留意され
たい。認証プロセスはデバッグソフトウェア及び／又はエミュレーションソフトウェアから切り離すことができる。認証プロセスは、デバッグ回路４２から切り離されたハードウェア及び／又はソフトウェアを含むことができ、ハードウェア及び／又はソフトウェアを使用して「デバッグアクセスを利用することができない」状態から「デバッグアクセスを利用することができる」状態への遷移を行なう（ＳＴＡＴＥ  ＢからＳＴＡＴＥ  Ｃからの遷移、及びＳＴＡＴＥ  ＥからＳＴＡＴＥ  Ｆへの遷移を示す図３を参照）。
【００２５】
ここで、或る実施形態では、次の不揮発性素子３８をアサートすることにより、既にアサートしている不揮発性素子３８による設定を無効にすることができるという効果があることに注目されたい。例えば、バイパスセキュアデバッグ素子３２をアサートすることにより、イネーブルセキュアデバッグ素子３０による設定を無効にすることができるという効果がある。同様に、再イネーブルセキュアデバッグ素子３４をアサートすることにより、バイパスセキュアデバッグ素子３２による設定を無効にすることができるという効果がある。
【００２６】
これまでの明細書では、本発明について特定の実施形態を参照しながら記載してきた。しかしながら、この技術分野の当業者であれば、種々の変形及び変更を、以下の請求項に示す本発明の技術範囲を逸脱しない範囲において加え得ることが分かるであろう。例えば、デバッグ回路４２（図２参照）は、例えばＪＴＡＧインターフェースまたはプロトコルのような一つ以上の標準のデバッグインターフェース、エミュレーションインターフェース、またはテストインターフェースを用いる回路を含むことができる。一の実施形態では、ＩＣ端子２２は、ＪＴＡＧ  ＴＤＯ（ｔｅｓｔ  ｄａｔａ  ｏｕｔ）信号及びＴＤＩ（ｔｅｓｔ  ｄａｔａ  ｉｎ）信号を含むことができる。
【００２７】
従って、明細書及び図は制限的な意味ではなく例示として捉えられるべきであり、かつこのような変形の全ては本発明の技術範囲に含まれるべきものと考えられる。
効果、他の利点、及び問題解決法が特定の実施形態に関連する形で上に記載されてきた。しかしながら、効果、利点、問題解決法、及びこのような効果、利点、または問題解決法をもたらし、またはさらに顕著にさせるすべての要素（群）が、いずれかの請求項または全ての請求項の必須の、必要な、または基本的な特徴、或いは要素であると考えられるべきではない。この明細書で使用されるように、「ｃｏｍｐｒｉｓｅｓ」、「ｃｏｍｐｒｉｓｉｎｇ」という用語、または他のすべてのこれらの変形は包括的な意味を指すものであり、例えば一連の要素を備えるプロセス、方法、製品、または装置がこれらの要素のみを含む、ということではなく、明らかには挙げられていない、またはそのようなプロセス、方法、製品、または装置に固有の他の要素を含むことができる。
追加のテキスト：
〔請求項１〕  デバッグ回路のセキュリティを確保する方法であって、
デバッグ回路を、デバッグ回路がイネーブルになった状態とし、
第１不揮発性素子に書き込みを行なってデバッグ回路をディスエーブルにし、そして
第１不揮発性素子に書き込みを行なった後に、第２不揮発性素子に書き込みを行なって、デバッグ回路を再イネーブルする操作及びデバッグ回路を永久的にディスエーブルにする操作の内の一つの操作を実行する、方法。
〔請求項２〕  第１不揮発性素子に書き込みを行なった後に、かつ第２不揮発性素子に書き込みを行なう前に、デバッグ回路を、認証操作に応答する形で選択的にイネーブルにすることができる、請求項１記載の方法。
〔請求項３〕  第２不揮発性素子に書き込みを行なってデバッグ回路を再イネーブルする、請求項１記載の方法。
〔請求項４〕  更に、
第２不揮発性素子に書き込みを行なった後に第３不揮発性素子に書き込みを行なってデバッグをディスエーブルにし、第３不揮発性素子に書き込みを行なった後、デバッグ回路を
、認証操作に応答する形で選択的にイネーブルにすることができる、請求項３記載の方法。
〔請求項５〕  第１不揮発性素子は第１フューズを含み、第２不揮発性素子は第２フューズを含み、そして第３不揮発性素子は第３フューズを含み、そして
第１不揮発性素子に対する書き込みでは第１フューズを飛ばし、
第２不揮発性素子に対する書き込みでは第２フューズを飛ばし、そして
第３不揮発性素子に対する書き込みでは第３フューズを飛ばす、請求項４記載の方法。
〔請求項６〕  更に、
第３不揮発性素子に書き込みを行なった後に第４不揮発性素子に書き込みを行なって、デバッグ回路を永久的にディスエーブルにする、請求項４記載の方法。
〔請求項７〕  第２不揮発性素子に書き込みを行なって、デバッグ回路を永久的にディスエーブルにする、請求項１記載の方法。
〔請求項８〕  第１不揮発性素子は第１フューズを含み、そして第２不揮発性素子は第２フューズを含み、更に第１不揮発性素子に対する書き込みでは第１フューズを飛ばし、そして第２不揮発性素子に対する書き込みでは第２フューズを飛ばす、請求項１記載の方法。
〔請求項９〕  デバッグ回路のセキュリティを確保する方法であって、
デバッグ回路を、デバッグ回路を認証操作に応答する形で選択的にイネーブルにすることができるセキュアデバッグ状態にし、
デバッグ回路を認証操作に応答する形でイネーブルにし、そして
デバッグ回路を認証操作に応答する形でイネーブルにした後、第１不揮発性素子に書き込みを行なう、方法。
〔請求項１０〕  第１不揮発性素子に書き込みを行なった後、デバッグ回路がバイパスセキュリティ状態になり、このバイパスセキュリティ状態ではデバッグ回路をイネーブルにする、請求項９記載の方法。
〔請求項１１〕  更に、
第１不揮発性素子に書き込みを行なった後に第２不揮発性素子に書き込みを行ない、第２不揮発性素子に書き込みを行なった後、デバッグ回路は再イネーブルセキュアデバッグ状態になり、この再イネーブルセキュアデバッグ状態では、デバッグ回路を認証操作に応答する形で選択的にイネーブルにすることができる、請求項９記載の方法。
〔請求項１２〕  第１不揮発性素子は第１フューズを含み、そして第２不揮発性素子は第２フューズを含み、更に第１不揮発性素子に対する書き込みでは第１フューズを飛ばし、そして第２不揮発性素子に対する書き込みでは第２フューズを飛ばす、請求項１１記載の方法。
〔請求項１３〕  更に、
第２不揮発性素子に書き込みを行なった後に第３不揮発性素子に書き込みを行なって、デバッグ回路を永久的にディスエーブルにする、請求項１１記載の方法。
〔請求項１４〕  デバッグ回路のセキュリティを確保する方法であって、
デバッグ回路を認証操作に応答する形でイネーブルにし、そして
デバッグ回路をイネーブルにした後、所定長の時間が経過したときにデバッグ回路をディスエーブルにする、方法。
〔請求項１５〕  所定長の時間はカウンタが供給する、請求項１４記載の方法。
〔請求項１６〕  デバッグ回路をディスエーブルにする操作は、カウンタのカウント終了に応答する形で実行する、請求項１５記載の方法。
〔請求項１７〕  所定長の時間はユーザが書き込むことができる、請求項１４記載の方法。
〔請求項１８〕  デバッグ回路を認証操作に応答する形でイネーブルにする前に、更に、
デバッグ回路をイネーブル状態にし、そして
第１不揮発性素子に書き込みを行なってデバッグ回路をディスエーブルにする、請求項１
４記載の方法。
〔請求項１９〕  デバッグ回路と、
第１不揮発性素子と、
第２不揮発性素子と、そして
デバッグイネーブル表示子をデバッグ回路に、第１不揮発性素子及び第２不揮発性素子に基づいて供給するデバッグイネーブル回路と、を備え、
第１不揮発性素子は、デバッグ回路が、デバッグ回路を認証操作に応答する形で選択的にイネーブルにすることができるセキュアデバッグ状態にあるかどうかを示し、そして
第２不揮発性素子は、第１不揮発性素子による設定を無効にすべきかどうかを示す、集積回路。
〔請求項２０〕  第２不揮発性素子は第１不揮発性素子による設定を無効にすべきかどうかについて、デバッグ回路を再イネーブルすることができるバイパスセキュリティ状態にデバッグ回路があるかどうかを示すことにより示す、請求項１９記載の集積回路。
〔請求項２１〕  更に、第２不揮発性素子による設定を無効にすべきかどうかを示す第３不揮発性素子を備える、請求項２０記載の集積回路。
〔請求項２２〕  第３不揮発性素子は第２不揮発性素子による設定を無効にすべきかどうかについて、デバッグ回路を認証操作に応答する形で選択的にイネーブルにすることができる再イネーブルセキュアデバッグ状態にデバッグ回路があるかどうかを示すことにより示す、請求項２１記載の集積回路。
〔請求項２３〕  更に、デバッグ回路を永久的にディスエーブルにするかどうかについて示す第４不揮発性素子を備える、請求項２２記載の集積回路。
〔請求項２４〕  第３不揮発性素子は第２不揮発性素子による設定を無効にすべきかどうかについて、デバッグ回路を永久的にディスエーブルにするかどうかを示すことにより示す、請求項２１記載の集積回路。
〔請求項２５〕  第２不揮発性素子は第１不揮発性素子による設定を無効にすべきかどうかについて、デバッグ回路を永久的にディスエーブルにするかどうかを示すことにより示す、請求項１９記載の集積回路。
〔請求項２６〕  第１不揮発性素子は第１フューズを含み、そして第２不揮発性素子は第２フューズを含む、請求項１９記載の集積回路。
【図面の簡単な説明】
【００２８】
本発明は例を通して示され、かつ添付の図によって制限されるものではない。これらの図においては、同様の参照記号は同様の構成要素を指す。
【図１】本発明の一の実施形態による集積回路１０のブロック図。
【図２】本発明の一の実施形態による、図１のデバッグポート２０の一部の部分ブロック図及び部分模式図。
【図３】本発明の一の実施形態による、図２のデバッグ回路４２に対するセキュリティを段階的にイネーブルにし、そしてディスエーブルにする方法の状態図。
【図１】
2007502462.tif 000003
【図２】
2007502462.tif 000004
【図３】
2007502462.tif 000005
【国際調査報告】
2007502462.tif 000006
2007502462.tif 000007