(57)【要約】  マイクロプロセッサの無防備なストレージ領域（例えば、パブリックメモリ、レジスタ、キャッシュ）に保存される、取扱注意情報へのアクセスを保護するための方法および装置に関する。外部リセット命令を受信するリセットポートを備えるマイクロプロセッサは、選択的に有効になるリセットダイバージョン回路を備える。マイクロプロセッサは、オープンモードまたはセキュアモードで動作し、無防備なストレージ領域内の秘密情報が存在しないまたは存在の可能性があることをそれぞれ示す。オープンモードにおいて、リセットダイバージョン回路は、外部リセットがハードウェアリセットのトリガを要求するように、無効にされる。セキュアモードでは、秘密情報は無防備なストレージ領域に記録される。リセットダイバージョン回路は、外部リセット要求を、ソフトウェアコードの実行をトリガする割り込みに転換するために有効にされる。ソフトウェアコードが実行されると、リセットの前に無防備なストレージ領域を消去するためのセキュアードシステムクリーンアップルーチンを実行する。
2011512581.tif 000002
【特許請求の範囲】
【請求項１】
装置であって：
リセット信号を受信するリセットポート；
セキュアモードを含む複数のモードのいずれにおいても動作可能なステートマシン；
セキュアードシステムクリーンアップルーチンを保存するメモリ；および
ステートマシンがセキュアモードで動作しようとする場合に有効になるリセットダイバージョン回路を含み、リセットダイバージョン回路が、リセットポートでリセット信号が受信された場合にセキュアードシステムクリーンアップルーチンの実行を初期化するように構成される、前記装置
【請求項２】
セキュアードシステムクリーンアップルーチンが実行されると、秘密情報を保存するメモリの一部を消去する、請求項１に記載の装置。
【請求項３】
セキュアードシステムクリーンアップルーチンが実行されると、秘密情報を保存するレジスタをクリアする、請求項１に記載の装置。
【請求項４】
セキュアードシステムクリーンアップルーチンが実行されると、任意のバッファ、スクラッチメモリ、または秘密情報に関連するメモリを示すポインターをクリアする、請求項１に記載の装置。
【請求項５】
ステートマシンがセキュアモードに入る時に、リセットダイバージョン回路を有効にするセキュアアクセスモジュールをさらに含む、請求項１に記載の装置。
【請求項６】
装置をリセットするハードウェアリセットをさらに含み、ハードウェアリセットは、リセットポートでリセット信号が受信され、リセットダイバージョン回路が無効になる時にトリガされる、請求項５に記載の装置。
【請求項７】
複数のモードがさらにオープンモードを含み、
オープンモードにおいて装置リセット時にステートマシンが初期化され、
セキュアードシステムクリーンアップルーチンが完了する時にハードウェアリセットがトリガされる、請求項６に記載の装置。
【請求項８】
セキュアアクセスモジュールが、メモリの読み込み専用部分に保存され、セキュアエントリーサービスルーチンを含む、請求項５に記載の装置。
【請求項９】
リセットダイバージョン回路によるセキュアードシステムクリーンアップルーチンの実行の初期化が有効にされた場合は、ノンマスカブルである、請求項１に記載の装置。
【請求項１０】
装置がさらに：
メモリアドレスを保存するためのプログラムカウンターレジスタ；
少なくとも一部がメモリアドレスで示される位置にあるメモリに保存されるルーチンを実行する論理ユニット；および
イベントアドレスを保存するイベントベクターテーブルを含み、イベントアドレスは、セキュアードシステムクリーンアップルーチンのメモリ内の位置を示し、
リセットダイバージョン回路は、プログラムカウンターレジスタに保存されたメモリアドレスを、イベントベクターテーブルに保存されたイベントアドレスで更新することにより、セキュアードシステムクリーンアップルーチンの実行を初期化する、請求項１に記載の装置。
【請求項１１】
マイクロプロセッサの動作方法であって、
外部リセット命令を受信すること、および
セキュアードシステムクリーンアップルーチンの実行をトリガするために、外部リセット命令をハードウェアリセットのトリガから選択的に転換することを含み、
転換は、マイクロプロセッサのリソースへのセキュアアクセスを要求するセキュアモードにおいてマイクロプロセッサが動作する場合に選択的に有効にされ、また、転換は、オープンモードにおいてマイクロプロセッサが動作する場合に選択的に無効にされるものである、前記動作方法。
【請求項１２】
転換が選択され有効にされた場合に、転換がノンマスカブルである、請求項１１に記載の方法。
【請求項１３】
セキュアードシステムクリーンアップルーチンのメモリ位置を参照するアドレスを保存することをさらに含む、請求項１１に記載の方法。
【請求項１４】
セキュアードシステムクリーンアップルーチンの実行をトリガすることが、転換が選択され有効にされた場合に、セキュアードシステムクリーンアップルーチンのアドレスをプログラムカウンターレジスタにロードすることを含む、、請求項１３に記載の方法。
【請求項１５】
マイクロプロセッサであって：
リセット信号を受信するリセットポート；
秘密情報を保存するメモリ領域；
メモリ領域から秘密情報を消去するセキュアードシステムクリーンアップモジュール；および
リセットダイバージョンモジュールを含み、前記リセットダイバージョンモジュールは、マイクロプロセッサが、マイクロプロセッサのリソースへのアクセスを保証するセキュアモードである間に、イネーブルステートで動作するように構成され、リセットダイバージョンモジュールは、リセット信号がリセットポートによって受信される場合に、セキュアードシステムクリーンアップモジュールの実行をトリガするようにイネーブルステートに構成される、前記マイクロプロセッサ。
【請求項１６】
マイクロプロセッサをリセットするハードウェアリセットモジュールをさらに含み、
リセットダイバージョンモジュールがさらに、マイクロプロセッサがオープンモードの間にディスエーブルステートで動作するように構成され、ディスエーブルステートに構成されたリセットダイバージョンモジュールが、リセット信号を許可し、リセットポートにより受信される場合に、ハードウェアリセットモジュールがマイクロプロセッサのリセットをトリガするように構成される、請求項１５に記載のマイクロプロセッサ。
【請求項１７】
ハードウェアリセットモジュールがハードウェアリセット回路であり、リセットダイバージョンモジュールがリセットダイバージョン回路である、請求項１５に記載のマイクロプロセッサ。
【請求項１８】
リセットダイバージョンモジュールが、セキュアードシステムクリーンアップモジュールの実行をトリガするノンマスカブル割り込みを出力する、請求項１５に記載のマイクロプロセッサ。
【請求項１９】
メモリ領域が第１メモリ領域であり、マイクロプロセッサがさらに
論理ユニット；および
ROM領域を含み、
セキュアードシステムクリーンアップモジュールが、論理ユニットにより実行可能なコードを含み、実行可能なコードがROM領域に保存される、請求項１５に記載のマイクロプロセッサ。
【請求項２０】
マイクロプロセッサがさらに、
論理ユニットによる実行のためのアドレスを保存するイベントアドレスストア；および
セキュアードシステムクリーンアップモジュールのメモリアドレスを保存するイベントアドレスストアを含み、
リセット信号がリセットポートにより受信され、リセットダイバージョンモジュールがイネーブルステートで動作する場合に、メモリアドレスがイベントアドレスストアからプログラムカウンターレジスタにロードされる、請求項１９に記載のマイクロプロセッサ。
【請求項２１】
メモリ領域が、レジスタ、またはマイクロプロセッサのキャッシュである、請求項１５に記載のマイクロプロセッサ。
【請求項２２】
リセットダイバージョンモジュールが、ノンマスカブル割り込みが有効である場合のみ、イネーブルステートに構成される、請求項１５に記載のマイクロプロセッサ。
【請求項２３】
プロセッサ内の情報を保護する方法であって、
（a）ハードウェアリセットトリガを受信する動作、
（b）動作（a）の後に、ソフトウェア割り込みをアクティブにする動作、
（c）動作（b）の後に、プロセッサのストレージ領域から情報を消去する動作、および
（d）動作（c）の後に、プロセッサのリセットを実行することにより、ハードウェアリセットトリガを行う動作
を含む、前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
１．発明の分野
本発明は、一般的にコンピュータセキュリティーの分野に関する。
２．関連技術の説明
リセットは、コンピュータデバイスを統制の下で初期ステートまたは標準状態にするために、コンピュータで利用される機構である。これは、いくつかの理由で望まれる。例えば、コンピュータデバイスのステート（state）が不明になる時、コンピュータデバイスが無反応になる時、またはプロセッサを事前設定されたステートに戻す好都合な手段である。
リセットの結果、システムレジスタは、事前設定（例えば、デフォルト）された状態にリストアされるであろう。システムクロック（例えば、局部発振器）もまた再初期化されてもよい。
リセットは、例えば、ユーザー入力によりまたは付属されたデバイスを介して、外部からアクティブにされてもよい。コンピュータデバイスは、例えば、それにより外部リセットがアクティブにされる、リセットピンまたはリセットボタンを備えてもよい。
リセットはまた、内部機構により開始されてもよい。コンピュータデバイスは、ソフトウェアを介したリセット命令をサポートしてもよい。システムクラッシュまたはハングした時に、ウォッチドッグタイマーが終了し、リセットをトリガする。
【発明の概要】
【０００２】
概要
外部リセット命令を受信するリセットポートを備えるマイクロプロセッサは、選択的に有効にされ得るリセットダイバージョン回路（reset diversion circuit）を備えてもよい。マイクロプロセッサは、オープンモード（例えば、デフォルトステート）またはセキュアモードにおいて動作してもよい。セキュアモードにおいて、秘密情報は無防備なストレージ領域に記録されてもよい。マイクロプロセッサがオープンモードで動作する場合、、外部リセット要求がハードウェアリセットを直ちに引き起こすように、リセットダイバージョン回路は無効にされる。マイクロプロセッサがセキュアモードで動作する場合、外部リセット要求をソフトウェアコードの実行をトリガし得る割り込み要求に転換するために、リセットダイバージョン回路は有効にされる。そのソフトウェアコードは、例えば、リセットの前に無防備なストレージ領域を消去するためのセキュアードシステムクリーンアップルーチン（secured system clean-up routine）を実行してもよい。
【０００３】
いくつかの態様では、本発明は、リセットポート、ステートマシン、メモリ、およびリセットダイバージョン回路を含む装置に関する。リセットポートは、リセット信号を受信するように構成される。ステートマシンは、複数のモードのどれかにおいて動作可能であり、複数のモードはセキュアモードを含む。メモリは、セキュアードシステムクリーンアップルーチンを保存するように構成される。リセットダイバージョン回路は、ステートマシンがセキュアモードで動作する場合に有効にされる。リセットダイバージョン回路は、リセット信号がリセットポートで受信される場合に、セキュアードシステムクリーンアップルーチンの実行を初期化するように構成される。
別の態様では、本発明は、マイクロプロセッサの動作方法に関する。方法は、外部リセット命令を受信すること、およびセキュアードシステムクリーンアップルーチンの実行をトリガするために、外部リセット命令をハードウェアリセットのトリガから選択的に転換することを含む。マイクロプロセッサのリソースへのセキュアアクセス（secured access）を要求するセキュアモードにおいてマイクロプロセッサが動作する場合に、転換を有効にすることが選択され、また、オープンモードにおいてマイクロプロセッサが動作する場合に、転換は無効にされることが選択される。
【０００４】
別の態様では、本発明は、リセットポート、メモリ領域、セキュアードシステムクリーンアップモジュール（secured system clean-up module）およびリセットダイバージョン回路を含むマイクロプロセッサに関する。リセットポートはリセット信号を受信するように構成される。メモリ領域は秘密情報を保存するように構成される。セキュアードシステムクリーンアップモジュールは、メモリ領域から秘密情報を消去するように構成される。リセットダイバージョンモジュール（reset diversion module）は、マイクロプロセッサが、マイクロプロセッサのリソースへのアクセスを安全にするセキュアモードである間は、イネーブルステート（enabled state）で動作するように構成される。リセットダイバージョンモジュールは、イネーブルステートにおいて、リセット信号がリセットポートによって受信された時に、セキュアードシステムクリーンアップモジュールの実行をトリガするように構成される。
さらに別の態様では、本発明は、プロセッサ内の情報を保護する方法に関する。方法は、（a）ハードウェアリセットトリガを受信する動作；（b）動作（a）の後に、ソフトウェア割り込みをアクティブにする動作；（c）動作（b）の後に、プロセッサのストレージ領域から情報を消去する動作；および（d）動作（c）の後に、プロセッサのリセットを実行することにより、ハードウェアリセットトリガを行う動作を含む。
【図面の簡単な説明】
【０００５】
本発明およびその態様は、添付の図と併せて以下の詳細な説明を読むことでよりよく理解される。図において、要素は必ずしも縮尺通りに描かれているとは限らない。一般的には、複数の図に現れる同様の要素は、同様な参照記号により示される。図において：
【図１】図１は、いくつかの態様に従ったマイクロプロセッサのブロック図である。
【図２】図２は、いくつかの態様に従ったマイクロプロセッサのブロック図である。
【図３】図３は、セキュアステートマシンの図である。
【図４】図４は、いくつかの態様に従ったマイクロプロセッサの機能ブロック図である。
【図５Ａ】図５Ａは、いくつかの態様に従った方法のためのブロック図である。
【図５Ｂ】図５Ｂは、いくつかの態様に従った方法のためのブロック図である。
【図６Ａ】図６Ａは、いくつかの態様に従ったリセットダイバージョン回路の論理図である。
【図６Ｂ】図６Ｂは、いくつかの態様に従ったリセットダイバージョン回路の論理図である。
【図７Ａ】図７Ａは、いくつかの態様に従った埋め込みシステムのブロック図である。
【図７Ｂ】図７Ｂは、いくつかの態様に従ったマイクロプロセッサに接続されるホストのブロック図である。
【図７Ｃ】図７Ｃは、いくつかの態様に従った埋め込みシステムに接続されるホストのブロック図である。
【発明を実施するための形態】
【０００６】
詳細な説明
マイクロプロセッサの外部リセットは、動作中にいつでも起こり得る、潜在的にコントロール不能なイベントである。リセットは一般的に、マイクロプロセッサを、例えば最小のセキュリティー対策またはセキュリティー対策無しでのオープン動作モードのような、デフォルトステートに戻す。これは、顧客またはユーザーの取扱注意、秘密、および／または財産的情報が、オープンモードにおいて公的にアクセス可能なマイクロプロセッサの領域に保存され得る場合に、セキュリティーリスクを引き起こす。例えば、セキュアモードにおいて動作しているマイクロプロセッサは、外部読み込み要求を拒否することで、レジスタ内のメモリに保存された情報を保護してもよい。しかしながら、リセットを行うことで、マイクロプロセッサは、そのような保護がないかもしれないオープンモードに戻される。悪意のある団体が、例えば、エミュレーションポート（例えば、IEEE1149.1標準“JTAG”ポート）を介して、メモリおよびレジスタへのアクセスを得るかもしれない。そのような状況では、保護されることを目的とする資産が改ざんされるかもしれない。本方法および本装置は、そのような“リセットアタック”を防止するために提供される。
【０００７】
外部リセット命令を受信するリセットポートを備えるマイクロプロセッサは、選択的に有効にされ得るリセットダイバージョン回路を備えてもよい。オープンモードにおいて、リセットダイバージョン回路は、外部リセットがハードウェアリセットのトリガを直ちに要求するように無効にされてもよい。しかしながらセキュアモードにおいては、無防備なストレージ領域に取扱注意情報が記録されているかもしれない場合であっても、リセットダイバージョン回路は、任意の外部リセット要求を、ソフトウェアコードの実行をトリガする割り込みに転換するために有効にされてもよい。ソフトウェアコードは、例えば、リセットの前に無防備なストレージ領域を消去するためのセキュアードシステムクリーンアップルーチンを実行してもよい。
【０００８】
マイクロプロセッサ
図１は、マイクロプロセッサ100の態様を示す。マイクロプロセッサ100は、論理ユニット110、レジスタ120、メモリ130、ハードウェアリセット論理ユニット170、リセットダイバージョン回路180、および入力／出力（I/O）ポート190を備えてもよい。
論理ユニット110（例えば、中央演算処理装置）は、マイクロプロセッサ100内の命令を実行する。論理ユニットにより実行可能な命令は、一連の実行可能な命令を含み得るソフトウェアから生じてもよい。
メモリ130は、実行可能なコードおよび／または任意の種類のデジタルデータを保存するために利用されてもよい。各メモリの場所は、メモリアドレスと関連してもよい。メモリ130は、ワンタイムプログラマブル（OTP）メモリ、スタティックランダムアクセスメモリ（SRAM）、リードオンリーメモリ（ROM）、ダイナミックランダムアクセスメモリ（DRAM）、または他のメモリ技術またはメモリ技術の組合せを備えてもよい。いくつかの態様では、“リードオンリー”メモリが書き込み可能であってもよく、しかし、書き込み前の部分的または完全な消去を要求してもよい。マイクロプロセッサ100は、メモリ130の一部が再び書き込まれることを防止してもよい。
【０００９】
メモリ130は、プライベートメモリ140領域およびパブリックメモリ150領域を含んでもよい。プライベートメモリ140は、特定の動作状態の下でのみアクセス可能であってもよい。いくつかの態様では、プライベートメモリ140は、OTPメモリの一部である。
メモリ130は、それぞれが情報と関連する値を保存するように適応された、多数のメモリセルを備えてもよい。それぞれ保存される値は、例えば、“0”および“1”として象徴的に表される、二進法の１つを持ち得るビットである。ビットは、アドレッシング、読み込み、および書き込みのために、グループ（例えばバイト）に配置されてもよい。メモリ１３０は、データを保存するために適切な如何なるやり方で構成配列されたものでもよい。
【００１０】
メモリ130は、実行されるとオープンモードにおいてアクセス可能なマイクロプロセッサ100の領域から秘密情報を削除する、セキュアードシステムクリーンアップルーチン160を保存してもよい。いくつかの態様では、セキュアードシステムクリーンアップルーチン160は、図１に示されるように、パブリックメモリ150に保存されてもよく、しかしながら、セキュアードシステムクリーンアップルーチン160は、任意の適切なメモリ領域（例えば、プライベートメモリ140領域）に保存されてもよい。セキュアードシステムクリーンアップルーチン160は、論理ユニット110により実行可能なソフトウェア命令を含んでもよい。これらの命令は、実行されると、メモリ130の一部を消去する；レジスタ120の一部をクリアする；特定のバッファをクリアし、メモリを抹消し、メモリへポインタする；および他のタスクを実行してもよい。メモリ130の一部を消去することで、秘密または財産的情報を除去してもよい。消去は、例えば、消去される各メモリセルに、同じ値（例えば、“0”）、ランダムな値、事前設定された値、秘密または財産的の特性がないデータを書き込むことにより、パージング（purging）、または任意の他の適切な消去方法、または任意の組合せ、または消去方法の繰り返すことにより達成されてもよい。
【００１１】
いくつかの態様では、セキュアードシステムクリーンアップルーチン160は、レジスタまたはメモリの場所を参照してもよく、前記メモリの場所は、どの部分が、またはメモリ130のどの部分が、またはマイクロプロセッサ100の他の領域が、消去されるかを決定する。
いくつかの態様では、セキュアードシステムクリーンアップルーチン160は、ソフトウェア命令の変更を防止するためにROMに保存される。
セキュアードシステムクリーンアップルーチン160は、プライベートメモリ14０の読み込みアクセスからのデータを保持するために利用されるレジスタ（例えば、レジスタ120の間で）のワイプ（wipe）を実行してもよい（これらのレジスタは、シークレットキーまたはユーザーコード実行でできた他の取扱注意データを含むことができる）。
セキュアードシステムクリーンアップルーチンは、セキュアードシステムクリーンアップルーチンの完了時に、プロセッサをリセットするためのウォッチドッグリセットを実行してもよい。
【００１２】
レジスタ120は、ビット情報を保存してもよい。ビットは、例えば、キャッシュの役目を果たすか、またはマイクロプロセッサ100の動作ステートを示してもよい。レジスタ120は、それぞれが１つ以上のビットを含む、任意の数の個別レジスタに分けられていてもよい。いくつかの態様では、レジスタ120は、論理ユニット110により実行される命令のメモリアドレスを含む、プログラムカウンター（PC）122レジスタを含む。いくつかの態様では、プログラムカウンター122は、論理ユニット110により実行される現在の命令のアドレスを保存する。幾つかの態様においては、プログラムカウンタ122は次の命令のアドレスを論理ユニット110による実行のために保存する。
マイクロプロセッサのI/Oポート190は、情報の転送のための入力および出力の機能性を提供する。各ポートは、例えば、ピン、ジャック、ボタン、スイッチ、ダイヤル、レバー、有線または無線レシーバー、または任意の他のインターフェース技術として実現されてもよい。I/Oポート190は、リセットポート191、ノンマスカブル割り込み（NMI）ポート193、およびデバッグポート195（例えば、インサーキットエミュレータ（ICE）ポート）を含んでもよい。リセットポート191は、マイクロプロセッサ100をリセットするための外部トリガを受信するために利用されてもよい。
【００１３】
いくつかの態様では、NMIポート193は、外部的に有効化させるノンマスカブル割り込みのために、マイクロプロセッサ100に提供される。割り込みは、プロセッサ100による注目（処理）の必要性を示すハードウェア（例えばリセットポート191）を介して受信される非同期の信号であってもよい。割り込みはまた、マイクロプロセッサ100による実行における変更の必要性を示すソフトウェアイベントから生じてもよい。
割り込みは、例えば、割り込みに関連する割り込みマスクレジスタ（IMR）内のビットがセットされる場合に、無視（マスク）されてもよい。いくつかの割り込みは、本質的にノンマスカブルであってよい。NMIポート193は、１つ以上の割り込みのためのマスキングを有効および／または無効にするための外部手段を提供してもよい。ノンマスカブル割り込みは、論理ユニット110による即時の実行のために優先されてもよい。
リセットポート191は、マイクロプロセッサ100をリセットするための外部トリガを提供するために利用されてもよい。リセット信号は、非同期的にリセットポート191で受信されてもよい。
リセットポート191は、ハードウェアリセット170に動作可能に接続されてもよい。リセットポート191のリセット信号は、ハードウェアリセット170により受信されてもよい。ハードウェアリセット170は、マイクロプロセッサ170のためのリセット機能性を提供する。いくつかの態様では、ハードウェアリセット170は、マイクロプロセッサ100を統制の下で初期ステートまたは標準状態に戻すためのリセット信号によりアクティブにされ得るマイクロプロセッサ100内に電気回路として実現されてもよい。
【００１４】
いくつかの態様では、リセットポート191のリセット信号は、リセットダイバージョン回路180により遮断され、転換されてもよい。リセットダイバージョン回路180は、リセット信号が、ハードウェアリセット170をトリガすることを防止してもよい。リセットダイバージョン回路180は、リセット信号をノンマスカブル割り込み（NMI）に転換してもよい。プロセッサがセキュアモードで動作する間にハードウェアリセットをNMIに転換することで、セキュアードシステムクリーンアップルーチン160を最初に実施するために、ハードウェアリセットの実行が制御され遅延されてもよい。ノンマスカブル割り込みは、論理ユニット110により、セキュアードシステムクリーンアップルーチン160の実行をトリガしてもよい。リセットダイバージョン回路180は、選択的に有効および／または無効にされてもよい。いくつかの態様では、リセットダイバージョン180モジュールは、レジスタ120の１つ以上のビットに基づいて有効／無効にされる。
【００１５】
いくつかの態様では、デバッグポート195は、マイクロプロセッサ100への“JTAG”接続をサポートする。“JTAG”は、標準を定義した委員会であるJoint Test Action Groupの頭文字であり、正式には、IEEE 1149.1が与えられた、Standard Test Access Port and Boundary-Scan Architectureとして知られている。“パブリック”JTAG命令（例えば、バウンダリスキャンおよびバイパスモード）のサポートに加えて、または、マイクロプロセッサは、“プライベート”JTAG命令をサポートしてもよい。プライベート命令は、例えば、特定のマイクロプロセッサの製造業者により定義されてもよい。デバッグポート195を通して、利用者はマイクロプロセッサ100にパブリックおよび／またはプライベートのJTAG命令を送信してもよい。いくつかの態様では、JTAGエミュレーションがサポートされてもよい。エミュレーション機能は、プロセッサの制御、RUN、STOP、シングル−ステップ、および内部レジスタの検査／変更、およびリアルタイムブレークポイントの実行を含む。
【００１６】
図２は、マイクロプロセッサ200のブロック図を示す。マイクロプロセッサ200はまた、上記マイクロプロセッサ100に関連して示されるように、論理ユニット110、レジスタ120、プライベートメモリ140領域およびパブリックメモリ150領域を備えるメモリ130、ハードウェアリセット170、リセットダイバージョン回路180、およびI/Oポート190を含む。
マイクロプロセッサ200は、パブリックメモリ150がROM領域250を備える態様を明確に示す。“デフォルト”のセキュアードシステムクリーンアップルーチン160は、ROM250に保存される。いくつかの態様では、カスタムセキュアードシステムクリーンアップルーチン210はパブリックメモリ150に保存されてもよいが、いくつかの態様では、カスタムセキュアードシステムクリーンアップルーチン210はプライベートメモリ140または任意の他の適切なメモリの場所に保存されてもよい。
【００１７】
リセットダイバージョン回路180は、ディスエーブルステート230またはイネーブルステート240で動作可能である。ディスエーブルステート230において、リセットポート190で受信されたリセット信号は、ハードウェアリセット170に渡されてもよい。また一方で、イネーブルステート240においては、リセット信号がハードウェアリセット170からノンマスカブル割り込み（NMI）に転換されてもよい。NMI220は、マイクロプロセッサ200による適切なセキュアードシステムクリーンアップルーチンの実行をトリガしてもよい。
NMI220は、イベントベクターテーブル260に保存されるイベントアドレス270の検索を最初にトリガしてもよい。イベントベクターテーブル260は、任意の適切な場所（例えば、レジスタ120、メモリ130、プライベートメモリ140、図示のようなパブリックメモリ150）に保存されてもよい。イベントアドレス270は、セキュアードシステムクリーンアップルーチン160、またはカスタムセキュアードシステムクリーンアップルーチン210の場所のメモリアドレスを備えてもよい。プログラムカウンター122は、その時イベントアドレス270と共に更新されてもよい。論理ユニット110は、対応するセキュアードシステムクリーンアップルーチンを実行してもよい。いくつかの態様では、ハードウェアリセット170は、実行されたセキュアードシステムクリーンアップルーチンの最後にトリガされる。いくつかの態様では、トリガは、ウォッチドッグタイマーの終了に起因する。
【００１８】
セキュアステートマシン300
マイクロプロセッサは、セキュリティーおよび順応性を提供するために、いくつかの異なる動作モードにおいて動作可能であってよい。マイクロプロセッサは、セキュリティー機能が不必要で、秘密情報へのアクセスが不必要である場合に、例えばオープンモード動作で動作してもよい。個人秘密情報は、オープンモードにおいてアクセス不可能であり得るプライベートメモリ140に保存されてもよい。
秘密情報が、処理される、またはアクセスされる場合に、マイクロプロセッサは、セキュアモード動作に入ってもよい。セキュアモードにおいて、プライベートメモリ140は、アクセス可能であってもよく、そして、個人情報はレジスタ120および／またはメモリ130に書き込まれてもよい。
【００１９】
セキュアモードへのアクセスは認証されたユーザーに限定されてもよい。セキュアモードで実行されるコードは、ユーザーが要求された動作の実行を認証されていることを保証するために、実行の前に認証されてもよい。認証は、セキュアエントリーモードにおいて実行されてもよい。例えば、ユーザーは、セキュアモードにおける実行のためにデジタル的に署名されたコードを提供してもよい。コードを実行するための要求は、デジタル的に署名されたコードの認証のために、マイクロプロセッサをトリガしてセキュアモードにスイッチさせてもよい。認証を実行するために、マイクロプロセッサは、ROMに保存された、認証されたユーザーの１つ以上のパブリックキーを備えてもよい。パブリックキーは、デジタル的に署名されたコードを認証するために利用されてもよい。デジタル的に署名されたコードが、パブリックキーの１つによって認証される場合、マイクロプロセッサはセキュアモードに入り、認証されたコードを実行してもよい。認証が失敗した場合、プロセッサはオープンモード動作に戻ってもよい。
【００２０】
いくつかの態様では、マイクロプロセッサは、オープンモード動作とセキュアモード動作の間を遷移するために、セキュアステートマシン300を実装してもよい。いくつかの態様に従ったセキュアステートマシン300のステート図が、図３に示される。セキュアステートマシン300は、いくつかの動作モード、および動作モード間の遷移経路を含んでもよい。各動作モードは、異なるアクセス特権およびセキュリティー機能に関連付けられてもよく、一方で、各遷移は異なるモード間の関係を定義してもよい。
セキュアステートマシン300は、レジスタ120、メモリ130、または任意の他の適切な方法を介して、マイクロプロセッサ内に実装されてもよい。図３に示される態様例では、セキュアステートマシン300は、オープンモード310、セキュアエントリーモード320、およびセキュアモード330で動作してもよい。
【００２１】
オープンモード310は、プライベートメモリ140への制限されたアクセスを除いては制限が掛けられない、プロセッサのデフォルト動作状態である。いくつかの態様では、読み込みおよび／または書き込みアクセスもまた、レジスタ120内の特定のレジスタビットに対して防止されてもよい。オープンモード310は、マイクロプロセッサの起動時およびリセット後（経路301）のデフォルトステートである。いくつかの態様では、デバッグ機能（例えば、JTAGエミュレーション）がオープンモード310において有効にされる。
オープンモード310で動作するセキュアステートマシン300は、セキュアエントリーモード320に遷移（遷移302を介して）してもよい。
【００２２】
オープンモード310からセキュアエントリーモード320への遷移は、例えば、実行されたコード、ユーザー入力、または任意の他の適切な手段によりトリガされてもよい。いくつかの態様では、遷移は、マイクロプロセッサの実行がパブリックメモリ150内の認証ソフトウェアへ向けられる場合にトリガされてもよい。いくつかの態様では、マイクロプロセッサの実行は、プログラムカウンター122を認証ソフトウェアの最初のアドレスに誘導することにより、認証ソフトウェアへ向けられてもよい。いくつかの態様では、ノンマスカブル割り込みがアクティブであることが要求される。セキュアエントリーモード320において、認証ソフトウェアは論理ユニット110により実行されてもよい。認証ソフトウェアは、セキュアステートマシンが、セキュアモード320への遷移304に従うか、またはオープンモード310へ戻る遷移303に従うかを決定してもよい。いくつかの態様では、認証ソフトウェアは、この決定を行うセキュアエントリーサービスルーチン（SESR）を含んでもよい。
【００２３】
SESRは、ユーザーの認証（例えば、ユーザーがセキュアモードへのアクセスを許可されていることを確認する）、ユーザーコードの認証（例えば、セキュアモードへのアクセスが許可されたユーザーにより提供される、セキュアモードで実行されるコードを確認する）、および／または、他の任意のセキュリティー工程または組合せまたは複数のセキュリティー工程であってもよい。いくつかの態様では、公開鍵暗号技術（asymmetric cryptography）の工程が実行される。例えば、メモリ130に保存されたデジタル署名およびメッセージに対して、デジタル署名認証が実行されてもよい。パブリックキーもまた、この工程を実行するためにメモリ130に保存されてもよい。
セキュアエントリーモード320において、プライベートメモリ140は、アクセス不可能であってもよい。いくつかの態様では、プログラムカウンター122は、それが認証ソフトウェアへ割り当てられたアドレス領域の範囲内にとどまっていることを保証するためにモニターされてもよい。いくつかの態様では、DMAアクセスはメモリ130の特定の領域に対して許可され、JTAGエミュレーションは無効にされる。
【００２４】
認証が失敗した場合、セキュアエントリーモード320からオープンモード310への遷移303が起こってもよい。認証は、例えば、ユーザー認証ができない、ユーザーコード認証ができない、メッセージおよびデジタル署名の組がローカルパブリックキーと合わない、エラーが観測された、または、割り込み処理がされなければならない場合に、失敗するようにしてもよい。
セキュアステートマシン300は、認証が成功する時にだけ、セキュアエントリーモード320からセキュアモード330へ遷移してもよい。認証が成功した場合、セキュアモード330に入る前に、遷移304を介して追加のステップを行ってもよい。いくつかの態様では、リセットダイバージョン回路180が有効にされる（図２）。イベントベクターテーブル260内のイベントアドレス270は更新されてもよい。いくつかの態様では、イベントアドレス270は、セキュアードシステムクリーンアップルーチン160のデフォルトのアドレスに更新されてもよい。
【００２５】
セキュアモード330は、マイクロプロセッサのセキュアな動作ステートである。JTAGエミュレーションは、セキュアモードに入った時のデフォルト設定により無効にされてもよい。いくつかの態様では、認証コードは、プライベートメモリ140、パブリックメモリ150、およびレジスタ120を含む、プロセッサのリソースへの無制限アクセスが許可される。いくつかの態様では、セキュアモード330では、シークレットキーのようなセキュアデータが保存されるプライベートメモリ140へのアクセス（読み込みおよび書き込み）を許可する。プライベートメモリ140は、秘密、許可された秘密情報、許可されたユーザー、および／またはアクセスしてもよいコードを保存するために利用されてもよい。
セキュアステートマシン300は、セキュアモード330からオープンモード310へ復帰するように遷移305してもよい。いくつかの態様では、セキュアモード330からセキュアエントリーモード320への直接経路が存在しないようにしてもよい。いくつかの態様では、セキュアモードからオープンモードへの遷移305に先立って、セキュアードシステムクリーンアップルーチンの実行がおこなわれる。セキュアードシステムクリーンアップルーチンは、認証コードにより呼び出されてもよい。セキュアモードから抜ける前に、セキュアードシステムクリーンアップルーチンを実行することは、メモリおよびレジスタ内の取扱注意のコード／データが、オープンモード310において可視可能およびアクセス可能になることを防止するであろう。
認証コードは、カスタムセキュアードシステムクリーンアップルーチンを含んでもよい。いくつかの態様では、認証コードは、カスタムセキュアードシステムクリーンアップルーチン210（図２）の場所を指定するために、イベントベクターテーブル260内のイベントレジスタ270を更新してもよい。ユーザーは、例えば、デフォルトのセキュアードシステムクリーンアップルーチン160の代わりに、カスタムルーチンに頼ってもよい。
【００２６】
マイクロプロセッサ400
図４は、いくつかの態様に従ったマイクロプロセッサ400の機能ブロック図を提供する。機能モジュールは、ハードウェア、ソフトウェア、または任意の適切な組み合わせで実現されてもよい。マイクロプロセッサ400は、論理モジュール401、ハードウェアリセットモジュール402、リセットダイバージョンモジュール403、イベントベクターテーブルモジュール404、ステートモジュール410、実行モジュール420、セキュアードシステムクリーンアップモジュール430、メモリストレージモジュール440、セキュアアクセスモジュール460およびI/Oポート190を備える。
論理モジュール401は、実行モジュール420により指定された命令を実行するために提供される。論理モジュールおよび実行モジュール420は、それぞれ論理ユニット110およびプログラムカウンター122として具現化されてもよい（例えば、図１のマイクロプロセッサ100として）。
ステートモジュール410は、動作モードを決定し、モードに関連するルールを行使してもよい。例えば、リセットダイバージョンモジュール403は、特定のモードで有効にされ、他では無効にされる。いくつかの態様では、ステートモジュール410は、オープンモード310、セキュアエントリーモード320、またはセキュアモード330で動作してもよい。いくつかの態様では、ステートモジュール410は、セキュアステートマシン300の動作に従った、動作状態の間を遷移してもよい。
【００２７】
セキュアアクセスモジュール460は、ユーザーまたはコードの認証のような、セキュリティールーチンを実行してもよい。いくつかの態様では、セキュアアクセスモジュール460は、セキュアモジュール410がセキュアモード330に遷移する前のセキュアエントリーモード320において、認証を提供してもよい。
リセットダイバージョンモジュール403が無効にされる場合、リセットポート191により受信されるリセット信号は、ハードウェアリセットモジュール402のマイクロプロセッサ400のリセットの実行をトリガしてもよい。リセットダイバージョンモジュール403が有効にされる場合、リセットポート191により受信されるリセット信号は、イベントアドレスのイベントベクターモジュール404から実行モジュール420へのロードをトリガしてもよい。リセットダイバージョンモジュール403は、例えば、それがセキュアエントリーモード320からセキュアモード330へ遷移するように決定される場合に有効にされてもよい。セキュアクセスモジュール460は、認証が成功した時にリセットダイバージョンモジュール403を有効にしてもよい。
【００２８】
イベントアドレスが、実行モジュール420からイベントベクターテーブルモジュール404（例えば、リセットダイバージョンの結果として）にロードされた場合、論理モジュール401はイベントアドレスにより指定されたモジュールを実行してもよい。いくつかの態様では、イベントアドレスは、セキュアードシステムクリーンアップモジュール430を参照する。セキュアードシステムクリーンアップモジュール430は、秘密情報を含み得るメモリストレージモジュール440の部分、およびマイクロプロセッサ400の任意の他の部分を消去してもよい。いくつかの態様では、ハードウェアリセットモジュール402は、セキュアードシステムクリーンアップモジュール430によるルーチンの完了後にトリガされてもよい。
【００２９】
リセット保護方法500および550
マイクロプロセッサは、任意の動作ステート（例えば、セキュアモード330）の間に、ハードウェアリセットプロテクションを実行してもよい。リセットプロテクション機能は、リセットポート191の悪意のあるアサーションが、メモリ140および／またはレジスタ120内の取扱注意コードまたはデータを暴露することを防ぐ。
図５Ａに示される方法500は、外部リセット命令を処理するための方法を提供する。方法500は、例えば、マイクロプロセッサにより実行されてもよい。
ステップ501の最初には、外部リセット命令が受信される。例えば、リセット命令は、リセットポート191（図１、２および４）により受信されてもよい。
ステップ502では、リセットダイバージョンが有効または無効にされているかどうかを決定する。リセットダイバージョンが無効にされている場合、プロセスフローは、ステップ503でのハードウェアリセットの実行を継続する。ハードウェアリセットが一度実行されると、マイクロプロセッサをデフォルトのステートに戻す（ステップ504）。例えば、セキュアステートマシン300が実装されているマイクロプロセッサの態様では、リセット後にオープンモード310に入る。
【００３０】
ステップ502において、リセットダイバージョンを有効にするとと決定された場合、プロセスフローはステップ505に続く。ステップ505では、イベントアドレス270は、イベントベクターテーブル260からプログラムカウンター122（図２）にロードされるであろう。イベントアドレスは、セキュアードシステムクリーンアップルーチン（例えば、デフォルトセキュアードシステムクリーンアップルーチン160またはカスタムセキュアードシステムクリーンアップルーチン210）を参照してもよい。
ステップ506では、セキュアードシステムクリーンアップルーチンが実行される。セキュアードシステムクリーンアップルーチンは、マイクロプロセッサから秘密情報を消去するであろう。セキュアードシステムクリーンアップルーチンは任意の望ましい機能を提供してもよい。
いくつかの態様では、セキュアードシステムクリーンアップルーチンの後に、ハードウェアリセット（ステップ503）が実行される。ハードウェアリセットは、マイクロプロセッサをデフォルトステート（ステップ504）に戻してもよい。いくつかの態様では、セキュアードシステムクリーンアップルーチン内の明示的な命令が、ハードウェアリセットの実行をトリガするために要求されてもよい（例えば、セキュアードシステムクリーンアップルーチン内の最後の命令）。いくつかの他の態様では、ステップ503は、ルーチン内の明示的な命令の要求なしに、セキュアードシステムクリーンアップルーチンの完了後に実行される。例えば、ウォッチドッグタイムが終了することを単に許可し、ハードウェアリセットの実行を自動的にトリガしてもよい。
【００３１】
図５Ｂに示される方法550は、マイクロプロセッサの動作方法を提供する。
ステップ551の最初には、セキュアモード動作に入るための決定が行われる。決定は、ユーザーまたはセキュアモードで実行されるコードの認証の後に行われてもよい。いくつかの態様では、認証はSESRにより実行されてもよい。いくつかの態様では、セキュアモード330へ入るための決定は、セキュアステートマシン300に従ったセキュアエントリーモード320において行われてもよい。
ステップ552では、イベントアドレスはイベントベクターテーブルにおいて更新される。いくつかの態様では、SESRは、認証の成功後にイベントアドレスと共にイベントベクターテーブルを更新するための命令を提供してもよい。イベントアドレスは、セキュアードシステムクリーンアップルーチンを参照してもよい。いくつかの態様では、セキュアードシステムクリーンアップルーチンはROMに保存されてもよい。
ステップ553では、リセットダイバージョンが有効にされる。リセットダイバージョンは、リセット信号を、ハードウェアリセットのトリガからノンマスカブル割り込みへ転換する。リセットダイバージョンは、入力信号をリセットダイバージョン回路に適応させることにより有効にされてもよい。
【００３２】
ステップ554では、セキュアモードに入る。セキュアモードでは、メモリまたはレジスタに保存された個人情報はアクセス可能であり得る。例えば、プライベートメモリ140は、読み込み、書き込み、および論理ユニット（図１）による実行のためにアクセス可能であろう。セキュアモードは、セキュアステートマシン300（図３）のセキュアモード330であってもよい。いくつかの態様では、認証コードは、セキュア動作モードにおいて実行されてもよい。いくつかの態様では、認証コードは、イベントベクターテーブルのイベントアドレスを更新するための命令を備えていてもよい（ステップ５５２）。いくつかの態様では、イベントアドレスは、カスタムセキュアードシステムクリーンアップルーチンを参照してもよい。カスタムセキュアードシステムクリーンアップルーチンは、認証コードの一部であってもよい。
ステップ555では、外部リセット命令は、セキュアモードの間に受信される。いくつかの態様では、外部リセット命令は、リセットポート191で受信されてもよい。外部リセット命令は、非同期的に受信されてもよい。
ステップ556では、イベントアドレスは、イベントベクターテーブルからプログラムカウンターレジスタにロードされる。いくつかの態様では、イベントアドレスのロードは、有効にされたリセットダイバージョン回路による、外部リセット命令の遮断によりトリガされてもよい。
【００３３】
ステップ557では、セキュアードシステムクリーンアップルーチンが実行される。いくつかの態様では、セキュアードシステムクリーンアップルーチンは、イベントアドレスに対応するメモリの場所に保存される。
ステップ558では、ハードウェアリセットが実行される。いくつかの態様では、これはセキュアードシステムクリーンアップルーチン内のソフトウェア命令の実行に応じる。
ステップ559では、プロセッサはオープンモードに入る。これは、ハードウェアリセットによりトリガされるブートルーチンの一部である。いくつかの態様では、オープンモードは、セキュアステートマシン300（図３）のオープンモード310であってもよい。
【００３４】
リセットダイバージョン回路180
リセットダイバージョン回路180（例えば、図１）は、適切な方法で実現されてもよい。いくつかの態様では、リセットダイバージョン回路は、論理回路を利用して実現される。図６Ａおよび６Ｂは、論理回路が利用されたリセットダイバージョン回路180の態様例を提供する。
具体的には、図６Ａは、入力信号“RESET”および“DIV_RESET”を受信し、“HW_RS_TRIG”および“SW_RS_TRIG”を出力する、リセットダイバージョン回路180Aの態様を示す。
RESETは、入力ピン601で受信されるリセット要求信号である。入力ピン601は、例えば、リセットポート191（図１）に動作可能に接続されてもよい。リセット要求信号をアサートすることで、入力ピン602のDIV_RESETのステートに基づいてハードウェアリセットまたはソフトウェアリセットをトリガしてもよい。
リセット要求信号がソフトウェアに転換される場合、DIV_RESETがアサートされる。DIV_RESETがアサートされる場合、リセットダイバージョン回路180Aが有効にされたと称される。RESETおよびDIV_RESETの両方がアサートされる場合、SW_RS_TRIGが出力ピン604にアサートされ、ソフトウェアリセットがトリガされるであろう。例えば、アサートされたSW_RS_TRIGは、ノンマスカブル割り込みを生じるであろう。ノンマスカブル割り込みは、セキュアードシステムクリーンアップルーチンのためのイベントアドレスのプログラムカウンターレジスタへのロードをトリガしてもよい。
【００３５】
DIV_RESETがアサートされない場合、リセット信号は、ハードウェアリセットにパスされ、リセットダイバージョン回路180Aは無効にされると考えられる。DIV_RESETがアサートされない間にRESETがアサートされる場合、HW_RS_TRIGが出力ピン603にアサートされ、ハードウェアリセットがトリガされてもよい。
この望まれている動作は、例えば、論理“AND”ゲート605および606、およびインバーター607を備える、図６Aに示される論理図を実装することにより達成できるであろう。論理図は、すべての入力および出力がアクティブハイであると仮定する。リセットダイバージョン回路180Aは、任意の信号伝達状態に対応するために簡単に変更されてもよい。
表１は、リセットダイバージョン回路180Aの動作を要約する論理テーブルである。符号“0”は、アサートなしまたは論理ローステートを示し、一方で、符号“1”は、アサートありまたは論理ハイステートを示す。
【表１】
2011512581.tif 000003
【００３６】
図６Ｂは、リセットダイバージョン回路180Bの態様を示し、それは入力信号“RESETB”（ピン611）、“RST_DBL”（ピン612）、および“NMIB”（ピン613）を受信し、“PA_RSET”（ピン614）、および“PA_NMI”（ピン615）を出力する。表２は、リセットダイバージョン回路180Bの動作を要約する論理テーブルである。
RESETB信号は、ピン611で受信されるアクティブロー（“0”）リセット信号である。ピン611は、リセットポート191（例えば、図１）に動作可能に接続されてもよい。RST_DBL信号は、リセットダイバージョン回路が無効（“0”）にされるか、有効（“1”）にされるかを示す、アクティブロー信号である。NMIB信号は、ノンマスカブル割り込みが有効であることを示す、ピン613のアクティブロー信号である。PA_RESETは、ハードウェアリセットをトリガするアクティブハイの信号である。PA_NMIは、アクティブハイで、ノンマスカブル割り込みが有効である場合を示す。RST_DBLが、アクティブではない（例えば、表２の“0”）場合、リセットおよびNMI機能を通常持つ。RST_DBLがアクティブの場合、PA_RESETは転換されない。
【表２】
2011512581.tif 000004
【００３７】
さらなる態様
発明の少なくとも１つの実施態様が示されたが、様々な修正、変更、および改良が、当業者により容易に行われてもよい。
マイクロプロセッサは、システムオンチップ、コンピュータオンチップ、マイクロコントローラ、または任意の適切なＩＣ技術またはそれらの組合せとして具現化されてもよい。いくつかの態様では、マイクロプロセッサは、アナログデバイセズのBlackfin processor(登録商標）である。
マイクロプロセッサは、任意のハードウェアおよび／またはソフトウェアデバッグツールと互換性があってもよい。デバッグおよび／またはエミュレーション命令は、例えば、デバッグポート195を介して受信してもよい。マイクロプロセッサは、IEEE 1149.1 J-TAG 標準と互換性があってもよい。いくつかの態様では、JTAG命令は、デバッグポート195を介して受信される。
いくつかの態様では、プライベートメモリ領域のサイズ（例えば、バイト数）および／または場所は、選択可能である。
いくつかの態様では、マイクロプロセッサは、論理ユニット110を介してメモリを呼び出す必要性をなくすためのダイレクトメモリアクセス（DMA）をサポートしてもよい。いくつかの態様では、DMAは、メモリ130の一部のために選択的に無効にされてもよい。メモリ130のどの部分がDMA有効／無効にされるかは、例えば、レジスタ120の１つにより制御されてもよい。
【００３８】
マイクロプロセッサは、図７Aに示される組み込みシステム700の一部であってよい。組み込みシステムは、マクロプロセッサの出力を受信するためおよび／またはマイクロプロセッサに入力を提供するための、マイクロプロセッサ710に動作可能に接続される追加のハードウェアを含んでもよい。組み込みシステム700は、デバッグ接続721、フラッシュメモリ722、電源制御装置723、および局部発振器724のような、典型的な要素と共にブロック図として示される。これらの要素は純粋に典型的であり、態様には示されたり、示されなかったりし得る。マイクロプロセッサ710は、組み込みシステム700を形成するための任意の適切な要素と組み合わせて利用されてもよい。
接続731は、図７Bに示されるように、1つ以上のI/Oポート190（例えば、リセットポート191、デバッグポート195）を介して、マイクロプロセッサ710が、ホスト750と通信するために設けられてもよい。任意の適切なデバイスが、ホスト700として実行してもよい。例えば、ホスト700は、パーソナルコンピュータ、ラップトップコンピュータ、PDA、またはフラッシュメモリデバイスであってよい。
接続732は、図７Cに示されるように、任意の適切なインターフェース740を介して、マイクロプロセッサ710を含む組み込みシステムと、ホスト750の間に設けられてもよい。
接続731および732は、適切な有線および無線技術を含む、任意の適切な技術を利用して実現されてもよい。
いくつかの態様では、レジスタ120は、SECURE_SYSSWTレジスタを含む。SECURE_SYSSWTレジスタは、マップアドレス0xFFC04320を備える32ビットレジスタであってもよい。表３は、いくつかの態様に従ったレジスタ内の各ビットの機能の要約を提供する。
【００３９】
【表３−１】
2011512581.tif 000005
【００４０】
【表３−２】
2011512581.tif 000006
【００４１】
【表３−３】
2011512581.tif 000007
【００４２】
【表３−４】
2011512581.tif 000008
【００４３】
【表３−５】
2011512581.tif 000009
【表３−６】
2011512581.tif 000010
いくつかの態様では、レジスタ120は、SECURE_CONTROLレジスタを含む。SECURE_CONTROLレジスタは、マップアドレス0xFFC04324のメモリを備える16ビットレジスタであってよい。テーブル４は、いくつかの態様に従ったレジスタ内の各ビットの機能の要約を提供する。
【００４４】
【表４−１】
2011512581.tif 000011
【表４−２】
2011512581.tif 000012
【００４５】
いくつかの態様では、レジスタ120は、SECURE_STATUSレジスタを含む。SECURE_STATUSレジスタは、アドレスマップ0xFFC04328のメモリを備える16ビットレジスタであってよい。テーブル５は、いくつかの態様にしたがって、レジスタ内の各ビットの機能の要約を提供する
【表５−１】
2011512581.tif 000013
【００４６】
【表５−２】
2011512581.tif 000014
当業者により容易に行われる、変更、修正、および改良は、本発明の範囲内で行われる。したがって、先述の詳細は例に過ぎず、制限するものではない。本発明は、以下のクレームおよびそれと同等のものに定義されているものにのみ限定される。
【図１】
2011512581.tif 000015
【図２】
2011512581.tif 000016
【図３】
2011512581.tif 000017
【図４】
2011512581.tif 000018
【図５Ａ】
2011512581.tif 000019
【図５Ｂ】
2011512581.tif 000020
【図６Ａ】
2011512581.tif 000021
【図６Ｂ】
2011512581.tif 000022
【図７Ａ】
2011512581.tif 000023
【図７Ｂ】
2011512581.tif 000024
【図７Ｃ】
2011512581.tif 000025
【国際調査報告】
2011512581.tif 000026
2011512581.tif 000027
2011512581.tif 000028