(57)【特許請求の範囲】
【請求項１】
自動車に搭載された電装ユニットであって、
前記電装ユニットは、
内部バスと、前記内部バスに接続された電気的に書き換え可能な不揮発性記憶装置、前記内部バスに接続され命令を実行する中央処理装置、前記内部バスに接続された外部インタフェース回路、及び、前記内部バスに接続された外部バス回路を含むマイクロコンピュータと、
前記マイクロコンピュータの前記外部バス回路に接続されたメモリ装置と、を含み
前記マイクロコンピュータは、
前記不揮発性記憶装置の遷移可能なセキュリティ状態として、
前記不揮発性記憶装置に秘密情報がセットされていないとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される第１セキュリティ状態と、
前記不揮発性記憶装置に前記秘密情報がセットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される第２セキュリティ状態と、
前記不揮発性記憶装置に前記秘密情報がセットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記外部インタフェース回路からの外部出力が許可される第３セキュリティ状態と、を有する電装ユニット。
【請求項２】
前記マイクロコンピュータの前記不揮発性記憶装置は、
不揮発性メモリセルのアレイが配置された不揮発性記憶部と、
前記不揮発性記憶部の前記不揮発性メモリセルに対する消去書き込みと読み出し動作手順を制御するメモリ制御部と、を有し、
前記メモリ制御部は、更に、前記第１セキュリティ状態乃至第３セキュリティ状態の制御を行う、請求項１記載の電装ユニット。
【請求項３】
前記第２セキュリティ状態又は第３セキュリティ状態において指示される半導体装置のリセット動作において前記メモリ制御部は前記不揮発性記憶装置の初期セキュリティ状態を第３セキュリティ状態とする、請求項２記載の電装ユニット。
【請求項４】
前記メモリ制御部は、前記第1セキュリティ状態乃至第３セキュリティ状態の制御を行うためのコマンドセットとして、セットコマンド、リセットコマンド及び認証コマンドを有し、
前記セットコマンドは、前記外部インタフェース回路から入力された秘密情報を前記不揮発性記憶部の所定の記憶領域に書き込む動作を指示するコマンドであり、
リセットコマンドは、前記所定の記憶領域の情報に対して無効を指示するコマンドであり、
前記認証コマンドは、前記所定の記憶領域に記憶されている秘密情報と前記外部インタフェース回路から与えられた情報を比較し、比較一致により認証正当、比較不一致により認証不当、と判別して前記セキュリティ状態の遷移制御を行う動作を指示するコマンドである、請求項２記載の電装ユニット。
【請求項５】
前記メモリ制御部は、前記第２セキュリティ状態における前記リセットコマンドの実行、又は前記所定の記憶領域の情報が無効にされている状態での半導体装置のリセット動作により、セキュリティ状態を第１セキュリティ状態とし、
前記第１セキュリティ状態におけるセットコマンドの実行、又は第３セキュリティ状態における認証コマンド実行による認証結果の認証正当により、セキュリティ状態を前記第２セキュリティ状態とし、
前記第２セキュリティ状態における認証コマンド実行による認証結果の認証不当、又は前記所定の記憶領域に秘密情報がセットされている状態での前記マイクロコンピュータのリセット動作により、セキュリティ状態を第３セキュリティ状態とする、請求項４記載の電装ユニット。
【請求項６】
セキュリティ制御モードビットを有する制御モードレジスタを更に有し、
前記セキュリティ制御モードビットが第１の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行が可能にされ、
前記セキュリティ制御モードビットが第２の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行によるセキュリティ状態の変更が不可能にされる、請求項４記載の電装ユニット。
【請求項７】
前記セキュリティ制御モードにおいて現在のセキュリティ状態を示すセキュリティ制御ステータスレジスタを更に備える、請求項６記載の電装ユニット。
【請求項８】
前記所定の条件下とは、前記中央処理装置による前記外部バス回路を経由した外部アドレス空間への命令フェッチを一旦検出した以降であり、
前記第３セキュリティ状態における外部出力の禁止は、読み出し要求に応答する前記不揮発性記憶装置の出力をメモリ読み出し動作によらない所定の既定値又は前記不揮発性記憶装置の出力データとは異なるランダムな値とすることである、請求項１記載の電装ユニット。
【請求項９】
前記メモリ制御部は、前記内部バスを介して与えられる秘密情報を記憶する領域への読み出しアクセスの要求を無効にする、請求項２記載の電装ユニット。
【請求項１０】
前記電装ユニットは、パワートレイン制御システムである、請求項１記載の電装ユニット。
【請求項１１】
内部バスと、前記内部バスに接続された電気的に書き換え可能な不揮発性記憶装置、前記内部バスに接続され命令を実行する中央処理装置、前記内部バスに接続された外部インタフェース回路、及び、前記内部バスに接続された外部バス回路を含むマイクロコンピュータと、
前記マイクロコンピュータの前記外部バス回路に接続されたメモリ装置と、を含む自動車用の電装システムであって、
前記マイクロコンピュータは、
前記不揮発性記憶装置の遷移可能なセキュリティ状態として、
前記不揮発性記憶装置に秘密情報がセットされていないとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される第１セキュリティ状態と、
前記不揮発性記憶装置に前記秘密情報がセットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される第２セキュリティ状態と、
前記不揮発性記憶装置に前記秘密情報がセットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記外部インタフェース回路からの外部出力が許可される第３セキュリティ状態と、を有し、
前記マイクロコンピュータの前記外部インタフェース回路に外部機器を接続して前記マイクロコンピュータの前記不揮発性記憶装置を書き換えるデータ処理方法であって、
前記不揮発性記憶装置が秘密情報を保持しているとき、前記外部機器から前記マイクロコンピュータに供給された情報が秘密情報に一致するかを前記マイクロコンピュータが判別する第１処理と、
前記第３セキュリティ状態において前記第１処理による判別結果が一致のとき、前記マイクロコンピュータは前記不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、
前記第２処理によって遷移された第２セキュリティ状態において、前記外部装置が前記マイクロコンピュータの前記不揮発性記憶装置を書き換える第３処理と、
前記第３処理の後に前記秘密情報と異なる情報を前記外部機器が前記マイクロコンピュータに供給する第４処理と、
前記第４処理で供給された情報が前記秘密情報に一致しないことを確認して前記マイクロコンピュータが前記不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第５処理と、を含むデータ処理方法。
【請求項１２】
前記電装システムは、パワートレイン制御システムである、請求項１１記載のデータ処理方法。
【請求項１３】
内部バスと、前記内部バスに接続された電気的に書き換え可能な不揮発性記憶装置、前記内部バスに接続され命令を実行する中央処理装置、前記内部バスに接続された外部インタフェース回路、及び、前記内部バスに接続された外部バス回路を含むマイクロコンピュータと、
前記マイクロコンピュータの前記外部バス回路に接続されたメモリ装置と、を含む自動車用の電装システムであって、
前記マイクロコンピュータは、
前記不揮発性記憶装置の遷移可能なセキュリティ状態として、
前記不揮発性記憶装置に秘密情報がセットされていないとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される第１セキュリティ状態と、
前記不揮発性記憶装置に前記秘密情報がセットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される第２セキュリティ状態と、
前記不揮発性記憶装置に前記秘密情報がセットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記外部インタフェース回路からの外部出力が許可される第３セキュリティ状態と、を有し、
前記マイクロコンピュータの前記外部インタフェース回路に外部機器を接続して前記マイクロコンピュータの前記不揮発性記憶装置を書き換えるデータ処理方法であって、
前記マイクロコンピュータの前記不揮発性記憶装置が秘密情報を保持しているとき、前記外部機器から前記マイクロコンピュータに供給された情報が秘密情報に一致するかを前記マイクロコンピュータが判別する第１処理と、
前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき、前記マイクロコンピュータは不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、
前記第２処理によって遷移された第２セキュリティ状態において、前記外部装置が前記マイクロコンピュータの前記不揮発性記憶装置に格納されている秘密情報を無効化して第1セキュリティ状態に遷移させる第３処理と、
前記第３処理によって遷移された前記不揮発性記憶装置の第１セキュリティ状態で、前記外部機器が前記マイクロコンピュータの前記不揮発性記憶装置を書き換えながら動作の解析を行う第４処理と、
前記第４処理の後に、前記外部機器が秘密情報をセットする第５処理と、
前記第５処理でセットした秘密情報と異なる情報を前記外部機器が前記マイクロコンピュータに供給する第６処理と、
前記第６処理で供給された情報が第５処理でセットされた秘密情報に一致しないことを確認して前記マイクロコンピュータが前記不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第７処理と、を含むデータ処理方法。
【請求項１４】
前記電装システムは、パワートレイン制御システムである、請求項１３記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に書き換え可能な不揮発性記憶装置を備えた半導体装置における当該不揮発性記憶装置に対するセキュリティ制御技術、更にはその半導体装置を搭載したデータ処理システムにおいて外部から不揮発性記憶装置のセキュリティ状態を変更して書き換えるデータ処理技術に関し、例えばマイクロコンピュータ及びその応用システムに適用して有効な技術に関する。
【背景技術】
【０００２】
特許文献1には情報セキュリティマイクロコンピュータについて記載され、これは、情報の暗号化および復号を行なう暗号回路と、インサーキットエミュレータ（ＩＣＥ）本体の認証を行なう認証用プログラムと、情報セキュリティマイクロコンピュータの全体的な制御を行なうＣＰＵとを含む。ＣＰＵは、ＩＣＥ本体の認証が確認されなかった場合には、情報セキュリティマイクロコンピュータの少なくとも一部の機能を停止させる。したがって、使用権限がない者が情報セキュリティマイクロコンピュータをＩＣＥ用マイコンとして利用することができなくなり、セキュリティを向上させることが可能となる。
【０００３】
特許文献２には、端末装置のＥＥＰＲＯＭに、パスワード格納領域とロック又はアンロック状態のいずれかを格納するセキュリティ状態記憶領域を設け、パスワード格納と同時にセキュリティ状態をアンロック状態とし、セキュリティロックが指示されかつパスワードが格納されているときセキュリティ状態をロック状態としパスワード入力画面を表示し、アンロック状態ならば通常の業務画面を表示する制御技術が記載されている。パスワード入力画面が表示されている状態では、入力された信号と格納されているパスワードとを照合し、両者が一致していればセキュリティ状態をアンロック状態にし、一致するまでロック状態に維持する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２１３２１６号公報
【特許文献２】特開平６−３５８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術ではインサーキットエミュレータなどのデバッグツールを用いた解析などに対してソフトウェアの保護が実現されるが、通常のユーザアプリケーションを実行する動作状態では何らの保護機能もなく、マイクロコンピュータが内蔵する不揮発性記憶装置の内容を第３者が不正にリードしたり、書き換えたりすることを禁止することができない。当然デバッグモードでオンチップの不揮発性記憶装置に対してソフトウェアの保護状態のままにしてしまうと、ユーザアプリケーションを実行する実機での動作状態では、オンチップの不揮発性記憶装置に対するプログラムやデータの更新を行うことができない。
【０００６】
特許文献２に記載の技術はワークステーション等に端末装置のセキュリティ性を発明の対象とするものであり、端末装置はプロセッサ（ＣＰＵ）がＲＯＭに格納されたプログラムを用いてＥＥＰＲＯＭに格納されているパスワードの照合をするため、第三者は極めて容易にＲＯＭのプログラムやＣＰＵの動作を解析しＥＥＰＲＯＭに格納されているパスワードを知ることができそのセキュリティ性は実質的に低いと考えられる。
【０００７】
本発明の目的は、システムデバッグ時及び実機搭載時の何れにおいてもオンチップの不揮発性記憶装置に対して所定の権限のもとで保護の設定と解除を行うことができる半導体装置を提供することにある。
【０００８】
本発明の別の目的は、保護が設定されたオンチップの不揮発性記憶装置に対してシステムデバッグ時及び実機搭載時の何れにおいても所定の権限のもとで書き換えを可能にするデータ処理方法を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、半導体装置にオンチップされた不揮発性記憶装置の遷移可能なセキュリティ状態として、少なくとも、前記不揮発性記憶装置に秘密情報がセットされていないとき、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記不揮発性記憶装置が記憶する情報に対する前記外部インタフェース回路からの外部出力が許可される第１セキュリティ状態（アンプロテクト状態）を有する。
【００１２】
また、前記不揮発性記憶装置に前記秘密情報セットされているとき、当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記不揮発性記憶装置が記憶する情報に対する前記外部インタフェース回路からの外部出力が許可される第２セキュリティ状態（プロテクトアンロック状態）を有する。
【００１３】
また、前記不揮発性記憶装置に前記秘密情報セットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記外部インタフェース回路からの外部出力が許可される第３セキュリティ状態（プロテクトロック状態）を有する。
【００１４】
前記セキュリティ状態の設定及び解除は秘密情報に関する権限に基づいて決めるから、システムデバッグ時及び実機搭載時の何れの動作の区別なくセキュリティ状態の設定及び解除が可能である。
【００１５】
秘密情報は保護対象にされる不揮発性記憶装置で保持し、保持状態では少なくとも第２セキュリティ状態にされ、秘密情報の書き換えや外部への読み出しは認証一致を条件とするから、秘密情報は容易に漏洩せず、この点で不揮発性記憶装置に対する保護には高い信頼がある。
【発明の効果】
【００１６】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１７】
すなわち、システムデバッグ時及び実機搭載時の何れにおいてもオンチップの不揮発性記憶装置に対して所定の権限のもとで保護の設定と解除を行うことができる。
【図面の簡単な説明】
【００１８】
【図１】図１は本発明の実施の形態１におけるオンチップの不揮発性記憶装置に対するセキュリティレベルの状態遷移図である。
【図２】図２は本発明の実施の形態１に係るマイクロコンピュータの構成を例示するブロック図である。
【図３】図３は不揮発性記憶装置のセキュリティ状態（セキュリティレベル）を例示する説明図である。
【図４】図４は図３のセキュリティ状態に関する操作コマンドの説明図である。
【図５】図５はメモリ制御シーケンサが有する制御モードレジスタＭＲＥＧとセキュリティ制御ステータスレジスタＳＲＥＧの説明図である。
【図６】図６はターゲットシステムに対するエミュレータを用いたデバッグ環境を示すシステム構成図である。
【図７】図７はターゲットシステムに対するメンテナンス環境を示すシステム構成図である。
【図８】図８はマイクロコンピュータにオンチップされた初期状態の不揮発性記憶装置にソフトウェアを書き込むときの動作手順を例示する説明図である。
【図９】図９は保護された状態の不揮発性記憶装置に対するソフトウェアに書き換え動作の手順を例示する説明図である。
【図１０】図１０はプロテクトロック状態においてＣＰＵがアプリケーションプログラムを実行するときの状態を示す説明図である。
【図１１】図１１は実機上でマイクロコンピュータが実行するアプリケーションプログラムに基づいて不揮発性記憶装置の書き換えを行う場合の動作手順を例示する説明図である。
【図１２】図１２はキーコードセット動作の手順を例示するフローチャートである。
【図１３】図１３はキーコードリセット動作の手順を例示するフローチャートである。
【図１４】図１４はキーコード認証動作の手順を例示するフローチャートである。
【図１５】図１５は実施の形態１で説明したマイクロコンピュータを搭載した電装ユニットの量産時における不揮発性記憶装置に対する初期書き込みの動作形態を例示するシステム構成図である。
【図１６】図１６は自動車に搭載された電装ユニットのメンテナンス時における不揮発性記憶装置に対する書き込みの動作形態を例示するシステム構成図である。
【図１７】図１７はマイクロコンピュータを自動車用電装ユニットに適用した場合における不揮発性記憶装置のセキュリティ保護の遷移状態を全体的に示すフローチャートである。
【図１８】図１８は本発明の実施の形態３に係るマイクロコンピュータのブロック図である。
【図１９】図１９は実施の形態３におけるセキュリティレベルの状態遷移図である。
【図２０】図２０は不揮発性記憶装置のセキュリティ状態（セキュリティレベル）を示す説明図である。
【図２１】図２１は図２０のセキュリティ状態に関する操作コマンドを示す説明図である。
【発明を実施するための形態】
【００１９】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２０】
〔１〕＜遷移可能な３状態のセキュリティ状態＞
本発明の代表的な実施の形態に係る半導体装置（１０）は、夫々内部バス（１８）に接続された電気的に書き換え可能な不揮発性記憶装置（１４）、命令を実行する中央処理装置（１１）、外部インタフェース回路（１６，１７）、及び外部バス回路（１９）を有し、前記不揮発性記憶装置の遷移可能なセキュリティ状態として、第１セキュリティ状態乃至第３セキュリティ状態を有する。
【００２１】
第１セキュリティ状態（アンプロテクト状態１）は、前記不揮発性記憶装置に秘密情報がセットされていないとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される状態であり、
第２セキュリティ状態（プロテクトアンロック状態２）は、前記不揮発性記憶装置に前記秘密情報がセットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される状態であり、
第３セキュリティ状態（プロテクトロック状態３）は、前記不揮発性記憶装置に前記秘密情報がセットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記外部インタフェース回路からの外部出力が許可される状態である。
【００２２】
これによれば、前記セキュリティ状態の設定及び解除は秘密情報に関する権限に基づいて決めるから、システムデバッグ時及び実機搭載時の何れの動作の区別なくセキュリティ状態の設定及び解除が可能である。また、秘密情報は保護対象にされる不揮発性記憶装置で保持し、保持状態では少なくとも第２セキュリティ状態にされ、当該秘密情報の書き換えや外部への読み出しは認証一致を条件とするから、秘密情報は容易に漏洩せず、この点で不揮発性記憶装置に対する保護には高い信頼がある。
【００２３】
〔２〕＜メモリ制御部でセキュリティ制御＞
項１の半導体装置において、前記不揮発性記憶装置は不揮発性メモリセルのアレイが配置された不揮発性記憶部（１３）と、前記不揮発性記憶部のメモリセルに対する消去書き込みと読み出し動作手順を制御するメモリ制御部（１２）とを有し、前記メモリ制御部は更に前記第1セキュリティ状態乃至第３セキュリティ状態の制御を行う。
【００２４】
メモリ制御部がセキュリティ状態の制御を行うから、換言すれば、セキュリティ状態の制御手法はメモリ制御部の論理構成によって隠蔽されるから、第三者はセキュリティ状態の制御方法について容易に知ることができず、これによってセキュリティ性が強化される。
【００２５】
〔３〕＜リセットによるセキュリティ状態の維持＞
項1又は２の半導体装置において、前記第２セキュリティ状態又は第３セキュリティ状態において指示される半導体装置のリセット動作において前記メモリ制御部は前記不揮発性記憶装置の初期セキュリティ状態を第３セキュリティ状態とする。
【００２６】
半導体装置に対する強制リセットによって不揮発性記憶装置に対する保護が解除されることはない。第１セキュリティ状態でリセットされたときは第１セキュリティ状態にされ、頻繁にリセット動作が入るようなシステムデバッグ動作ではリセット毎に不揮発性記憶装置に対する保護が働いて書き込みできなくなったりする不便はない。
【００２７】
〔４〕＜セキュリティ制御コマンド＞
項２の半導体装置において、前記メモリ制御部は、前記第1セキュリティ状態乃至第３セキュリティ状態の制御を行うためのコマンドセットとして、セットコマンド、リセットコマンド及び認証コマンドを有する。前記セットコマンドは、外部インタフェース回路から入力された秘密情報を前記不揮発性記憶部の前記所定の記憶領域に書き込む動作を指示するコマンドである。リセットコマンドは、前記所定の記憶領域の情報に対して無効を指示するコマンドである。前記認証コマンドは、前記所定の記憶領域に記憶されている秘密情報と外部インタフェース回路から与えられた情報を比較し、比較一致により認証正当、比較不一致により認証不当、と判別して前記セキュリティ状態の遷移制御を行う動作を指示するコマンドである。
【００２８】
前記セキュリティ制御用のコマンドに応答する動作はメモリ制御部の論理構成によって隠蔽される。
【００２９】
〔５〕＜セキュリティ状態の遷移制御＞
項４の半導体装置において、前記メモリ制御部は、前記第２セキュリティ状態（プロテクトアンロック状態）における前記リセットコマンドの実行、又は前記所定の記憶領域の情報が無効にされている状態での半導体装置のリセット動作により、セキュリティ状態を第１セキュリティ状態（アンプロテクト状態）とする。
【００３０】
また、前記メモリ制御部は、前記第１セキュリティ状態における（アンプロテクト状態）セットコマンドの実行、又は第３セキュリティ状態（プロテクトロック状態）における認証コマンド実行による認証結果の認証正当により、セキュリティ状態を前記第２セキュリティ状態とする。
【００３１】
また、前記メモリ制御部は、前記第２セキュリティ状態（プロテクトアンロック状態）における認証コマンド実行による認証結果の認証不当、又は前記所定の記憶領域に秘密情報がセットされている状態での半導体装置のリセット動作により、セキュリティ状態を第３セキュリティ状態（プロテクトロック状態）とする。
【００３２】
上記遷移制御により、半導体装置に対する強制リセットによって不揮発性記憶装置に対する保護が解除されることはない。第１セキュリティ状態でリセットされたときは第１セキュリティ状態にされ、頻繁にリセット動作が入るようなシステムデバッグ動作ではリセット毎に不揮発性記憶装置に対する保護が働いて書き込みできなくなったりする不便はない。
【００３３】
〔６〕＜制御モードレジスタ＞
項４の半導体装置において、セキュリティ制御モードビット（ＣＭ）を有する制御モードレジスタ（ＭＲＥＧ）を更に有する。前記セキュリティ制御モードビットが第１の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行が可能にされる。前記セキュリティ制御モードビットが第２の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行によるセキュリティ状態の変更が不可能にされる。
【００３４】
秘密情報を用いたセキュリティ状態の遷移制御を必要に応じて非選択にすることができるという便に供する。セキュリティ制御モードビットを操作してセキュリティ状態の遷移制御を選択から非選択に切替えても、そのときの第３セキュリティ状態又は第２セキュリティ状態が第１セキュリティ状態にされることは阻止されている。
【００３５】
〔７〕＜セキュリティ制御ステータスレジスタ＞
項６の半導体装置において、前記セキュリティ制御モードにおいて現在のセキュリティ状態を示すセキュリティ制御ステータスレジスタ（ＳＲＥＧ）を更に備える。
【００３６】
メモリ制御部等による内部動作の必要に応じてセキュリティ状態を容易に確認することが可能である。
【００３７】
〔８〕＜不揮発性記憶装置からの読み出し禁止＞
項１乃至７の何れかの半導体装置において、前記所定の条件下とは前記中央処理装置による前記外部バス回路を経由した外部アドレス空間への命令フェッチを一旦検出した以降である。前記第３セキュリティ状態における不揮発性記憶装置からの読み出し禁止は、読み出し要求に応答する前記不揮発性記憶装置の出力をメモリ読み出し動作によらない所定の既定値又は前記不揮発性記憶装置の出力データとは異なるランダムな値とすることである。
【００３８】
書き換えが禁止された状態の不揮発性記憶装置が保有するプログラムを実行する正規の状態において、不正行為は外部アドレス空間から中央処理装置に不正なプログラムをフェッチさせることに端を発すると想定される。そのため、それ以前の正規のプログラム実行状態では不揮発性記憶装置から外部へのデータの読み出しなどが行われる場合にこれを許容できるようにし、一旦不正と想定される外部空間からの命令フェッチサイクルが発生された後は不揮発性記憶装置に記憶された記憶情報を一切外部へ出力させず、記憶情報の保護を最優先とすることができる。
【００３９】
また、第３セキュリティ状態において前記所定の条件下では不揮発性記憶装置が保持する正規のデータは如何なる意味においても不揮発性記憶装置の外部に存在することにはならず、半導体装置の外部への正規データの出力を阻止しても内部のバスやバッファ上に滞留するという事態も抑制することができ、この点においても万全のセキュリティ性を達成することができる。
【００４０】
〔９〕＜秘密情報の外部出力禁止＞
項１乃至７の何れかの半導体装置において、前記メモリ制御部は、前記内部バスを介して与えられる秘密情報を記憶する領域への読み出しアクセスの要求を無効にする。
【００４１】
第１セキュリティ状態においても秘密情報の漏洩に万全を期することができる。
【００４２】
〔１０〕＜遷移可能な５状態のセキュリティ状態＞
本発明の別の実施の形態に係る半導体装置（４００）は、夫々内部バス（４１８）に接続された電気的に書き換え可能な不揮発性記憶装置（４１４）、命令を実行する中央処理装置（４１１）、デバッグ専用の外部インタフェースに割り当てられた第１外部インタフェース回路（４１７）、その他の外部インタフェースに割り当てられた第２外部インタフェース回路（４１６）、及び外部バス回路（４１９）を有する半導体装置である。
【００４３】
また、前記半導体装置は前記不揮発性記憶装置の遷移可能なセキュリティ状態として、第１セキュリティ状態乃至第５セキュリティ状態を有する。
【００４４】
第１セキュリティ状態（アンプロテクト状態１）は、前記不揮発性記憶装置に第１秘密情報及び第２秘密情報がセットされていないとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ前記不揮発性記憶装置に対する書き換えが許可され、且つ前記第１外部インタフェース回路及び第２外部インタフェース回路からの外部出力が許可される状態であり、
第２セキュリティ状態（第１プロテクトアンロック状態２Ａ）は、前記不揮発性記憶装置に前記第１秘密情報がセットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記第１外部インタフェース回路及び第２外部インタフェース回路からの外部出力が許可される状態である。
【００４５】
また、第３セキュリティ状態（第１プロテクトロック状態３Ａ）は、前記不揮発性記憶装置に前記第１秘密情報セットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記第１外部インタフェース回路及び第２外部インタフェース回路からの外部出力が許可される状態であり、
第４セキュリティ状態（第２プロテクトアンロック状態２Ｂ）は、前記不揮発性記憶装置に前記第２秘密情報がセットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記第１外部インタフェース回路及び第２外部インタフェース回路からの外部出力が許可される状態であり、
第５セキュリティ状態（第２プロテクトロック状態３Ｂ）は、前記不揮発性記憶装置に前記第２秘密情報がセットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記第１外部インタフェース回路のインタフェース動作が無効にされ、且つ前記第２外部インタフェース回路からの外部出力が許可される状態である。
【００４６】
項１の半導体装置に対して第４及び第５セキュリティ状態を採り得る点が相違される。第４及び第５セキュリティ状態への遷移に用いる秘密情報が第２及び第３セキュリティ状態への遷移に用いる秘密情報と相違され、第５セキュリティ状態では第１外部インタフェース回路が不使用にされる点が第３セキュリティ状態と相違される。したがって、不揮発性記憶装置を単に書き換えるような処理主体に対しては第１、第４及び第５セキュリティ状態への遷移だけで運用させることにより、インタフェース仕様が公開されるデバッグ専用の第１外部インタフェース回路を使用した半導体装置内部の不正アクセスによる不揮発性記憶装置に対するアタックを容易に行えないようになる。一方、システムデバッグの一環として不揮発性記憶装置の書き換えを伴う処理などを行うような処理主体に対しては第１、第２及び第３セキュリティ状態への遷移も可能に運用させることにより、使い勝手の良好なデバッグ環境を提供することが可能になる。
【００４７】
〔１１〕＜メモリ制御部でセキュリティ制御＞
項１０の半導体装置において、前記不揮発性記憶装置は不揮発性メモリセルのアレイが配置された不揮発性記憶部と、前記不揮発性記憶部のメモリセルに対する消去書き込みと読み出し動作手順を制御するメモリ制御部とを有する。前記メモリ制御部は更に前記第1セキュリティ状態乃至第５セキュリティ状態の制御を行う。
【００４８】
メモリ制御部がセキュリティ状態の制御を行うから、セキュリティ状態の制御手法はメモリ制御部の論理構成によって隠蔽され、第三者はセキュリティ状態の制御方法について容易に知ることができず、これによってセキュリティ性が強化される。
【００４９】
〔１２〕＜リセットによるセキュリティ状態の維持＞
項１１の半導体装置において、前記第２セキュリティ状態又は第３セキュリティ状態において指示される半導体装置のリセット動作において前記メモリ制御部は前記不揮発性記憶装置の初期セキュリティ状態を第３セキュリティ状態とし、前記第４セキュリティ状態又は第５セキュリティ状態において指示される半導体装置のリセット動作において前記メモリ制御部は前記不揮発性記憶装置の初期セキュリティ状態を第５セキュリティ状態とする。
【００５０】
半導体装置に対する強制リセットによって不揮発性記憶装置に対する保護が解除されることはない。第１セキュリティ状態でリセットされたときは第１セキュリティ状態にされ、頻繁にリセット動作が入るようなシステムデバッグ動作ではリセット毎に不揮発性記憶装置に対する保護が働いて書き込みできなくなったりする不便はない。
【００５１】
〔１３〕＜第１，第２秘密情報の格納先個別化＞
項１１の半導体装置において、前記不揮発性記憶部は前記第１秘密情報の格納に割り当てられた第１記憶領域と第２秘密情報の格納に割り当てられた第２記憶領域とを別々に有する。
【００５２】
〔１４〕＜セキュリティ制御コマンド＞
項１３の半導体装置において、前記メモリ制御部は、前記第1セキュリティ状態乃至第５セキュリティ状態の制御を行うためのコマンドセットとして、セットコマンド、リセットコマンド及び認証コマンドを有する。前記セットコマンドは、前記第１外部インタフェース回路又は第２外部インタフェース回路から入力された情報を前記第１記憶領域又は第２記憶領域を指定して書き込む動作を指示するコマンドである。リセットコマンドは、前記第１記憶領域及び第２記憶領域の情報に対して無効を指示するコマンドである。前記認証コマンドは、前記第１記憶領域又は第２記憶領域を指定して入力された情報を指定された前記第１記憶領域又は第２記憶領域の情報とを比較し、指定された記憶領域の情報に関する比較一致により当該指定された記憶領域の秘密譲情報について認証正当、指定された記憶領域の情報に関する比較不一致により認証不当、と判別して前記セキュリティ状態の遷移制御を行う動作を指示するコマンドである。
【００５３】
前記セキュリティ制御用のコマンドに応答する動作はメモリ制御部の論理構成によって隠蔽される。
【００５４】
〔１５〕＜セキュリティ状態の遷移制御＞
項１４の半導体装置において、前記メモリ制御部は、前記第２セキュリティ状態（第１プロテクトアンロック状態）における前記リセットコマンドの実行、前記第４セキュリティ状態（第２プロテクトアンロック状態）における前記リセットコマンドの実行、又は前記第１記憶領域及び第２記憶領域の情報が無効にされている状態での半導体装置のリセット動作により、セキュリティ状態を第１セキュリティ状態（アンプロテクト状態）とする。前記第１セキュリティ状態における（アンプロテクト状態）前記第１記憶領域を指定したセットコマンドの実行、又は第３セキュリティ状態（第１プロテクトロック状態）における前記第１記憶領域を指定した認証コマンド実行による認証結果の認証正当により、セキュリティ状態を前記第２セキュリティ状態とする。前記第２セキュリティ状態（第１プロテクトアンロック状態）における前記第１記憶領域を指定した認証コマンド実行による認証結果の認証不当、又は前記第１記憶領域に秘密情報がセットされている状態での半導体装置のリセット動作により、セキュリティ状態を第３セキュリティ状態（第１プロテクトロック状態）とする。前記第１セキュリティ状態（アンプロテクト状態）における前記第２記憶領域を指定したセットコマンドの実行、第５セキュリティ状態（第２プロテクトロック状態）における前記第２記憶領域を指定した認証コマンド実行による認証結果の認証正当、又は前記第２セキュリティ状態における（第１プロテクトアンロック状態）前記第２記憶領域を指定したセットコマンドの実行により、セキュリティ状態を前記第４セキュリティ状態（第２プロテクトアンロック状態）とする。前記第４セキュリティ状態（第２プロテクトアンロック状態）における前記第２記憶領域を指定した認証コマンド実行による認証結果の認証不当、又は前記第２記憶領域に秘密情報がセットされている状態での半導体装置のリセット動作により、セキュリティ状態を第５セキュリティ状態（第２プロテクトロック状態）とする。
【００５５】
上記遷移制御により、半導体装置に対する強制リセットによって不揮発性記憶装置に対する保護が解除されることはない。第１セキュリティ状態でリセットされたときは第１セキュリティ状態にされ、頻繁にリセット動作が入るようなシステムデバッグ動作ではリセット毎に不揮発性記憶装置に対する保護が働いて書き込みできなくなったりする不便はない。
【００５６】
〔１６〕＜制御モードレジスタ＞
項１４又は１５の半導体装置において、セキュリティ制御モードビットを有する制御モードレジスタを更に有する。前記セキュリティ制御モードビットが第１の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行が可能にされる。前記セキュリティ制御モードビットが第２の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行によるセキュリティ状態の変更が不可能にされる。
【００５７】
秘密情報を用いたセキュリティ状態の遷移制御を必要に応じて非選択にすることができるという便に供する。セキュリティ制御モードビットを操作してセキュリティ状態の遷移制御を選択から非選択に切替えても、そのときの第３セキュリティ状態、第２セキュリティ状態、第５セキュリティ状態、又は第４セキュリティ状態が第１セキュリティ状態にされることは阻止されている。
【００５８】
〔１７〕＜セキュリティ制御ステータスレジスタ＞
項１６の半導体装置において、前記セキュリティ制御モードにおいて現在のセキュリティ状態を示すセキュリティ制御ステータスレジスタを更に備える。
【００５９】
メモリ制御部等による内部動作の必要に応じてセキュリティ状態を容易に確認することが可能である。
【００６０】
〔１８〕＜不揮発性記憶装置からの読み出し禁止＞
項１０乃至１７の何れかの半導体装置において、前記所定の条件下とは前記中央処理装置による前記外部バス回路を経由した外部アドレス空間への命令フェッチを一旦検出した以降である。前記第３セキュリティ状態及び第５セキュリティ状態における不揮発性記憶装置からの読み出し禁止は、読み出し要求に応答する前記不揮発性記憶装置の出力をメモリ読み出し動作によらない所定の既定値又は前記不揮発性記憶装置の出力データとは異なるランダムな値とすることである。
【００６１】
書き換えが禁止された状態の不揮発性記憶装置が保有するプログラムを実行する正規の状態において、不正行為は外部アドレス空間から中央処理装置に不正なプログラムをフェッチさせることに端を発すると想定される。そのため、それ以前の正規のプログラム実行状態では不揮発性記憶装置から外部へのデータの読み出しなどが行われる場合にこれを許容できるようにし、一旦不正と想定される外部空間からの命令フェッチサイクルが発生された後は不揮発性記憶装置に記憶された記憶情報を一切外部へ出力させず、記憶情報の保護を最優先とすることができる。
【００６２】
また、第３セキュリティ状態及び第５セキュリティ状態において前記所定の条件下では不揮発性記憶装置が保持する正規のデータは如何なる意味においても不揮発性記憶装置の外部に存在することにはならず、半導体装置の外部への正規データの出力を阻止しても内部のバスやバッファ上に滞留するという事態も抑制することができ、この点においても万全のセキュリティ性を達成することができる。
【００６３】
〔１９〕＜秘密情報の外部出力禁止＞
項１０乃至１８の何れかの半導体装置において、前記メモリ制御部は、前記内部バスを介して与えられる秘密情報を記憶する領域への読み出し要求を無効にする。
【００６４】
第１セキュリティ状態においても秘密情報の漏洩に万全を期することができる。
【００６５】
〔２０〕＜遷移可能な３状態のセキュリティ状態を持つLSIに対する書き換え方法＞
項１記載の半導体装置を用いたデータ処理システムにおいて、前記外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法は、前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理を含む。
【００６６】
また、前記データ処理方法は、前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、前記第２処理によって遷移された第２セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置を書き換える第３処理と、を含む。
【００６７】
また、前記データ処理方法は、前記第３処理の後に前記秘密情報と異なる情報を外部機器が半導体装置に供給する第４処理と、前記第４処理で供給された情報が前記秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第５処理と、を含む。
【００６８】
不揮発性記憶装置の記憶情報を単に書き換える処理に無駄なく且つ安全に対処することができる。
【００６９】
〔２１〕＜遷移可能な３状態のセキュリティ状態を持つLSIに対するデバッグ方法＞
項１記載の半導体装置を用いたデータ処理システムにおいて前記外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法は、前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理を含む。
【００７０】
また、前記データ処理方法は、前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、前記第２処理によって遷移された第２セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置に格納されている秘密情報を無効化して第1セキュリティ状態に遷移させる第３処理と、を含む。
【００７１】
また、前記データ処理方法は、前記第３処理によって遷移された不揮発性記憶装置の第１セキュリティ状態で外部機器が半導体装置を書き換えながら動作の解析を行う第４処理と、前記第４処理の後に外部機器が秘密情報をセットする第５処理と、を含む。
【００７２】
また、前記データ処理方法は、前記第５処理でセットした秘密情報と異なる情報を外部機器が半導体装置に供給する第６処理と、前記第６処理で供給された情報が第５処理でセットされた秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第７処理と、を含む。
【００７３】
不揮発性記憶装置の記憶情報を書き換えながらデータ処理システムを再起動してシステム性能などを解析するようなデバッグ処理に効率的に対処することができる。
【００７４】
〔２２〕＜遷移可能な５状態のセキュリティ状態を持つLSIに対する書き換え方法＞
請求項１０記載の半導体装置を用いたデータ処理システムにおいて前記第１外部インタフェース回路又は第２外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法は、前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理を含む。
【００７５】
また、前記データ処理方法は、前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、前記第２処理によって遷移された第２セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置を書き換える第３処理と、を含む。
【００７６】
また、前記データ処理方法は、前記第３処理の後に前記秘密情報と異なる情報を外部機器が半導体装置に供給する第４処理と、前記第４処理で供給された情報が前記秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第５処理と、を含む。
【００７７】
不揮発性記憶装置の記憶情報を単に書き換える処理に無駄なく且つ安全に対処することができる。この場合、外部装置を第１外部インタフェース回路又は第２外部インタフェース回路の何れに接続してもよい。
【００７８】
〔２３〕＜遷移可能な５状態のセキュリティ状態を持つLSIに対するデバッグ方法＞
請求項１０記載の半導体装置を用いたデータ処理システムにおいて前記第１外部インタフェース回路又は第２外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法は、前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理を含む。
【００７９】
また、前記データ処理方法は、前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、前記第２処理によって遷移された第２セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置に格納されている秘密情報を無効化して第1セキュリティ状態に遷移させる第３処理と、を含む。
【００８０】
また、前記データ処理方法は、前記第３処理によって遷移された不揮発性記憶装置の第１セキュリティ状態で外部機器が半導体装置を書き換えながら動作の解析を行う第４処理と、前記第４処理の後に外部機器が秘密情報をセットする第５処理と、を含む。
【００８１】
また、前記データ処理方法は、前記第４処理でセットした秘密情報と異なる情報を外部機器が半導体装置に供給する第６処理と、前記第６処理で供給された情報が第５処理でセットされた秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第７処理と、を含む。
【００８２】
不揮発性記憶装置の記憶情報を書き換えながらデータ処理システムを再起動してシステム性能などを解析するようなデバッグ処理に効率的に対処することができる。
【００８３】
〔２４〕＜遷移可能な５状態のセキュリティ状態を持つLSIに対する書き換え方法＞
請求項１０記載の半導体装置を用いたデータ処理システムにおいて前記第２外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えデータ処理方法は、前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理を含む。
【００８４】
また、前記データ処理方法は、前記第５セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第４セキュリティ状態に遷移させる第２処理と、前記第２処理によって遷移された第４セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置を書き換える第３処理を含む。
【００８５】
また、前記データ処理方法は、前記第３処理の後に前記秘密情報と異なる情報を外部機器が半導体装置に供給する第４処理と、前記第４処理で供給された情報が前記秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第５セキュリティ状態に遷移させる第５処理と、を含む。
【００８６】
不揮発性記憶装置を単に書き換えるような処理主体に対しては第４及び第５セキュリティ状態への遷移だけで運用させることにより、インタフェース仕様が公開されるデバッグ専用の第１外部インタフェース回路を使用した半導体装置内部の不正アクセスによる不揮発性記憶に対するアタックを未然に防止することができる。
【００８７】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００８８】
［実施の形態1］
《マイクロコンピュータ》
図２には本発明に係る半導体装置の一例としてマイクロコンピュータの構成が例示される。マイクロコンピュータ（ＭＣＵ）１０は、特に制限されないが、単結晶シリコンのような１個の半導体基板に相補型ＭＯＳ集積回路製造技術等によって構成される。
【００８９】
マイクロコンピュータ１０は、電気的に書き換え可能な不揮発性記憶装置１４、命令を実行する中央処理装置（ＣＰＵ）１１、中央処理装置１１のワーク領域等に利用されるＳＲＡＭ（Static Random Access Memory）１５、デバッグ専用の外部インタフェースに割り当てられた第１外部インタフェース回路（デバッグインタフェース回路）１７、及びその他の外部インタフェースに割り当てられた第２外部インタフェース回路（通信インタフェース回路）１６、外部バス回路１９を有し、それらは内部バス１８に接続される。内部バス１８は当然階層化されていてもよい。
【００９０】
不揮発性記憶装置１４は、不揮発性メモリセルのアレイが配置された不揮発性記憶部（不揮発性メモリ部）１３と、前記不揮発性メモリ部１３のメモリセルに対する消去書き込みと読み出し動作手順等を制御するメモリ制御部（メモリ制御シーケンサ）１２とを有する。メモリ制御シーケンサ１２はＣＰＵ１１等からのアクセスコマンド、アドレス、書き込みデータ等を受け取って、不揮発性メモリ部１３に対する消去、書き込み及び読み出し動作等を制御する。読み出しデータは不揮発性メモリ部１３から内部バス１８に出力される。不揮発性記憶装置１４は、例えばフラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、又はＭＲＡＭ（Magnetoresistive Random Access Memory）等とされる。
【００９１】
通信インタフェース回路１６には、特に制限されないが、UART（Universal Asynchronous Receiver Transmitter）、LIN（Local Interconnect Network）、CAN（Controller Area Network）、FlexRay、USB（Universal Serial Bus）、IEEE1394等の通信規格若しくは通信プロトコルを採用することができる。
【００９２】
デバッグ用インタフェース回路１７には、例えばJTAG(IEEE754)、NBD（Non Break Debug）などを採用することができる。
【００９３】
前記外部バス回路１９は、例えばデバッグ用又は車載電子制御システムのボード上のメモリバス回路に接続され、前記ボード上のメモリバスには、例えばSRAM（Static Random Access Memory）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、又はＭＲＡＭ（Magnetoresistive Random Access Memory）等が接続され、前記中央処理装置の命令やデータが格納される。
【００９４】
前記メモリ制御シーケンサ１２はメモリアクセス制御と共にセキュリティ制御を行って、不揮発性メモリ部１３に対する不正な消去及び書き込み並びに読み出しを抑制する。
【００９５】
《３状態のセキュリティレベル》
図３には不揮発性記憶装置のセキュリティ状態（セキュリティレベル）が例示される。ここに例示されるセキュリティ状態は、アンプロテクト状態（第１セキュリティ状態）、プロテクトアンロック状態（第２セキュリティ状態）及びプロテクトロック状態（第３セキュリティ状態）の３状態とされる。
【００９６】
アンプロテクト状態は、前記不揮発性記憶装置１４にキーコード（秘密情報）がセットされていないとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ前記不揮発性記憶装置１４に対する書き換えが許可され、且つ前記外部インタフェース回路１６，１７からの外部出力が許可される状態である。要するに、不揮発性記憶装置１４に格納されたソフトウェア等は保護されない状態である。
【００９７】
プロテクトアンロック状態は、前記不揮発性記憶装置１４にキーコードがセットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つキーコードを用いた認証結果が正当であること、例えばセットされているキーコードに一致するキーコードが外部から供給されることを条件に、不揮発性記憶装置１４に対する書き換えが許可され、且つ前記外部インタフェース回路１６，１７からの外部出力が許可される状態である。この状態は、認証結果が正当な場合に不揮発性記憶装置１４に格納されたソフトウェア等の保護が一時的に解除された状態である。
【００９８】
プロテクトロック状態は、不揮発性記憶装置１４にキーコードがセットされているとき、キーコードを用いた認証結果の正当性が確認されるまで、不揮発性記憶装置１４に対する書き換えが禁止され、且つ不揮発性記憶装置１４に対する読み出しが所定の条件下で禁止され、且つ前記外部インタフェース回路１６，１７からの外部出力が許可される状態である。要するに、不揮発性記憶装置１４に格納されたソフトウェア等が保護された状態である。
【００９９】
ここで、前記所定の条件下とは前記中央処理装置１１による前記外部バス回路１９を経由し外部アドレス空間への命令フェッチを一旦検出した以降であり、前記プロテクトロック状態において、前記不揮発性記憶装置１４の出力をメモリ読み出し動作によらない所定の既定値又は前記不揮発性記憶装置の出力データとは異なるランダムな値とすることにより前記不揮発性記憶装置１４に格納されたソフトウェアの保護が可能となる。書き換えが禁止された状態の不揮発性記憶装置１４が保有するプログラムを実行する正規の状態において、不正行為は外部アドレス空間からＣＰＵ１１に不正なプログラムをフェッチさせることに端を発すると想定される。そのため、それ以前の正規のプログラム実行状態では不揮発性記憶装置１４から外部へのデータの読み出しなどが行われる場合にこれを許容できるようにし、一旦不正と想定される外部空間からの命令フェッチサイクルが発生された後は不揮発性記憶装置１４に記憶された記憶情報を一切外部へ出力させず、記憶情報の保護を最優先とすることができる。
【０１００】
また、プロテクトロック状態において前記所定の条件下では不揮発性記憶装置１４が保持する正規のデータは如何なる意味においても不揮発性記憶装置１４の外部に存在することにはならず、マイクロコンピュータ１０の外部への正規データの出力を阻止しても内部のバスやバッファ上に滞留するという事態も抑制することができる。
【０１０１】
図４には前記セキュリティ状態に関する操作コマンドが例示される。メモリ制御シーケンサ１２は、セキュリティ状態を制御する操作コマンドのセットとして、キーコードセットコマンド、キーコードリセットコマンド及びキーコード認証コマンドのコマンドを有する。
【０１０２】
キーコードセットコマンドは、外部インタフェース回路１６，１７から入力されたキーコードを前記不揮発性メモリ部１３の所定の記憶領域（キーコード記憶領域）に書き込む動作（キーコードセット）を指示するコマンドである。このキーコードセットはアンプロテクト状態又はプロテクトアンロック状態で可能である。セットするキーコードはコマンドパラメータで指定さる。特に制限されないが、メモリ制御シーケンサ１２はバス１８を介して与えられるキーコード領域に対する読み出しアクセスの要求を無効とし、不正な書き換えだけでなく、不正なリード要求があってもこれを無効とすることにより、キーコードに対する保護の万全を期するものである。
【０１０３】
キーコードリセットコマンドは、キーコード記憶領域の情報に対して無効、例えば消去を指示するコマンドである。キーコードリセットはアンプロテクト状態又はプロテクトアンロック状態で可能である。
【０１０４】
キーコード認証コマンドは、前記キーコード記憶領域に記憶されているキーコードと外部インタフェース回路１６，１７から与えられた情報を比較し、比較一致により認証正当、比較不一致により認証不当、と判別して前記セキュリティ状態への遷移制御を行うコマンドである。プロテクトロック状態において認証正当であればプロテクトアンロック状態に遷移し、プロテクトアンロック状態において認証不当であればプロテクトロック状態に遷移する。認証するキーコードはコマンドパラメータで指定される。
【０１０５】
図１にはセキュリティレベルの状態遷移図が示される。同図に示される状態遷移制御はメモリ制御シーケンサ１２の制御による。
【０１０６】
プロテクトアンロック状態における前記リセットコマンドの実行、又は前記キーコード記憶領域の情報が無効にされている状態でのマイクロコンピュータのリセット動作により、セキュリティ状態はアンプロテクト状態１とされる。
【０１０７】
アンプロテクト状態１におけるセットコマンドの実行、又はプロテクトロック状態における認証コマンド実行による認証結果の認証正当により、セキュリティ状態がプロテクトアンロック状態２にされる。
【０１０８】
前記プロテクトアンロック状態２における認証コマンド実行による認証結果の認証不当（キーコード認証不一致）、又は前記キーコード記憶領域にキーコードがセットされている状態でのマイクロコンピュータ１０のリセット動作により、セキュリティ状態がプロテクトロック状態３とされる。
【０１０９】
図５にはメモリ制御シーケンサ１２が有する制御モードレジスタＭＲＥＧとセキュリティ制御ステータスレジスタＳＲＥＧが例示される。
【０１１０】
制御モードレジスタＭＲＥＧは、セキュリティ制御モードビットＳＣＭを有する。セキュリティ制御モードビットＳＣＭが第１の値（例えば論理値“０”）に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行が可能にされる。前記セキュリティ制御モードビットＳＣＭが第２の値（論理値“１”）に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行によるセキュリティ状態の変更が不可能にされる。
【０１１１】
セキュリティ制御モードビットＳＣＭを採用することにより、キーコードを用いたセキュリティ状態の遷移制御を必要に応じて非選択にとすることができるという便に供することができる。セキュリティ制御モードビットＳＣＭを操作してセキュリティ状態の遷移制御を選択から非選択に切替えても、そのときの第３セキュリティ状態又は第２セキュリティ状態が第１セキュリティ状態にされることは阻止されている。
【０１１２】
セキュリティ制御ステータスレジスタＳＲＥＧは、前記セキュリティ制御モードにおいて現在のセキュリティ状態を複数ビットによって示すセキュリティ制御ステータスコードＳＴＴを有する。メモリ制御シーケンサ１２等による内部動作の必要に応じてセキュリティ状態を容易に確認することが可能である。
【０１１３】
以上の３レベルによるセキュリティ状態の遷移制御によれば、前記セキュリティ状態の設定及び解除はキーコードに関する権限に基づいて決めるから、システムデバッグ時及び実機搭載時の何れの動作の区別なくセキュリティ状態の設定及び解除が可能である。また、キーコードは保護対象にされる不揮発性記憶装置１４で保持し、保持状態では少なくとも第２セキュリティ状態にされ、当該キーコードの書き換えは認証一致を条件とし、外部への読み出しは無効にされるから、キーコードは容易に漏洩せず、この点で不揮発性記憶装置１４に対する保護には高い信頼がある。
【０１１４】
また、マイクロコンピュータ１０に対する強制リセットによって不揮発性記憶装置１４に対する保護が解除されることはない。第１セキュリティ状態でリセットされたときは第１セキュリティ状態にされ、頻繁にリセット動作が入るようなシステムデバッグ動作ではリセット毎に不揮発性記憶装置に対する保護が働いて書き込みできなくなったりする不便はない。
【０１１５】
図６にはターゲットシステムに対するエミュレータを用いたデバッグ環境が例示される。ターゲットシステム２０は例えばマイクロコンピュータ１０を搭載した機器であり、マイクロコンピュータ１０のデバッグインタフェース回路１７にインタフェースケーブルでインサーキットエミュレータ２１が接続される。インサーキットエミュレータ２１はパーソナルコンピュータやワークステーションによって構成されたエミュレータホスト装置２２からの指示にしたがってエミュレーション動作が制御され、エミュレーション動作によって得られたトレース情報などをエミュレータホスト装置２２が解析する。エミュレーション動作では、不揮発性記憶装置１４にデバッグ対象のプログラムを書き込んでＣＰＵ１１に実行させる動作が繰り返され、その途中で、プログラムの書き換えや、リセットが頻繁に行われ、ＣＰＵ１１によるプログラムの実行結果が解析される。
【０１１６】
図７にはターゲットシステムに対するメンテナンス環境が例示される。ターゲットシステム３０は例えばマイクロコンピュータ１０を搭載した実機であり、例えば自動車に搭載されるＥＣＵである。ターゲットシステム３０のマイクロコンピュータ１０に搭載された通信インタフェース回路１６に通信ケーブルを介してパーソナルコンピュータやワークステーションによって構成されたオンボード書き込みホスト装置３１が接続される。オンボード書き込みホスト装置３１は通信インタフェース回路１６を経由して不揮発性記憶装置１４が保有するプログラムなどの書き換え若しくは書き込みを制御する。不揮発性記憶装置１４は所謂オンボード書き込みが行われる。
【０１１７】
図８にはマイクロコンピュータ１０にオンチップされた初期状態の不揮発性記憶装置にソフトウェアを書き込むときの動作手順が例示される。図８では図６のエミュレータを用いた書き込みと図７のオンボード書き込みの区別なく示している。図８ではエミュレータホスト装置２２又はオンボード書き込み装置３１の操作（ホストの操作）、マイクロコンピュータ１０の動作（ＣＰＵの動作、メモリ制御シーケンサの動作、不揮発性メモリ部の動作）、及び不揮発性記憶装置１４のセキュリティ状態に大別して動作手順を示している。
【０１１８】
開始時においては不揮発性記憶装置１４にはキーコードがセットされていないから、セキュリティ状態はアンプロテクト状態であり、記憶情報の保護は行われていない。
【０１１９】
ホスト装置はまずキーコードをマイクロコンピュータ１０に与えて接続確認を待つ（４０）。
【０１２０】
マイクロコンピュータ１０はキーコード認証処理（５０）として、ホスト装置から受取ったキーコードとキーコード認証コマンドをメモリ制御シーケンサ１２に与える。メモリ制御シーケンサ１２は不揮発性メモリ部１３によるキーコード領域からの読み出し動作（７０）によって得られたリードデータをそのキーコードと比較してその結果をＣＰＵ１１に返す（６０）。ＣＰＵ１１は比較結果に応ずる認証結果が得られたことによって接続確認をホスト装置に返す（５１）。
【０１２１】
ホスト装置はソフトウェアをＣＰＵ１１に転送して書き込み確認を待つ（４１）。ＣＰＵ１１は当該ソフトウェアをダウンロードし（５２）、メモリ制御シーケンサ１２にメモリ書き込みを指示する（５３）。メモリ制御シーケンサ１２は書き込みコマンドと書き込みデータにしたがって不揮発性メモリ部１３に書き込み動作を制御し（６１）、これによって不揮発性メモリ部１３にソフトウェアが書き込まれる（７１）。
【０１２２】
ホスト装置は書き込み確認を受けた後にＣＰＵ１１にキーコードの書き込み指示し、接続確認を待つ（４２）。ＣＰＵ１１はこれに応答してキーコードセットコマンドをメモリ制御シーケンサ１２に発行し（５４）、メモリ制御シーケンサ１２は当該コマンドに応答して、コマンドで指定されたキーコードを不揮発性メモリ部１３に書き込む（７２）。ＣＰＵ１１は書き込み完了を確認して（５５）、これをホスト装置に通知する。
【０１２３】
これにより、不揮発性記憶装置１４のキーコード領域に所定のキーコードが初期設定される。この状態でセキュリティ状態はプロテクトアンロック状態になっている。次の動作ではキーコードの認証結果の正当性が得られなければプロテクトアンロック状態を維持できず、プロテクトロック状態に遷移するから、ソフトウェアは保護された状態となる。
【０１２４】
図９には保護された状態の不揮発性記憶装置に対するソフトウェアに書き換え動作の手順が例示される。
開始時においてキーコードがセットされているためセキュリティ状態はプロテクトロックでありソフトウェアは保護されている。
【０１２５】
ホスト装置はまず認証するキーコードをマイクロコンピュータ１０に与えて接続確認を待つ（８０）。マイクロコンピュータ１０はキーコード認証処理（９０）として、ホスト装置から受取ったキーコードとキーコード認証コマンドをメモリ制御シーケンサ１２に与える。メモリ制御シーケンサ１２は不揮発性メモリ部１３によるキーコード領域からの読み出し動作（１１０）によって得られたリードデータをそのキーコードと比較してその結果をＣＰＵ１１に返す（１００）。ここでは比較一致とする。ＣＰＵ１１は比較結果に応ずる認証結果が得られたことによって接続確認をホスト装置に返す（９１）。
【０１２６】
ホスト装置はソフトウェアをＣＰＵ１１に転送して書き込み確認を待つ（８１）。ＣＰＵ１１は当該ソフトウェアをダウンロードし（９２）、メモリ制御シーケンサ１２にメモリ書き込みを指示する（９３）。メモリ制御シーケンサ１２は書き込みコマンドと書き込みデータにしたがって不揮発性メモリ部１３に書き込み動作を制御し（１０１）、これによって不揮発性メモリ部１３にソフトウェアが書き込まれる（１１１）。
【０１２７】
次の動作ではキーコードの認証結果の正当性が得られなければプロテクトアンロック状態を維持できず、プロテクトロック状態に遷移するから、ソフトウェアは保護された状態となる。動作を継続させながらソフトウェアの保護が必要な場合は誤ったキーコードによるキーコード認証により、プロテクトロック状態に遷移させることにより、ソフトウェアの保護が可能である。
【０１２８】
図１０にはプロテクトロック状態においてＣＰＵ１１がアプリケーションプログラムを実行するときの状態が示される。プロテクトロック状態において不揮発性記憶装置の書き換えは禁止されているから、それを書き換える場合にはキーコード認証を必要とするが、不揮発性記憶装置１４をプログラムなどの読み出し専用メモリに用いている限りセキュリティレベルの変更を要しない。ＣＰＵ１１は不揮発性メモリ１４から順次読み出されたアプリケーションソフトウェア（１３０）をリードして実行すればよい（１２０）。
【０１２９】
図１１には実機上でマイクロコンピュータが実行するアプリケーションプログラムに基づいて不揮発性記憶装置の書き換えを行う場合の動作手順が例示される。ＣＰＵ１１は不揮発性メモリ部１３が保有するアプリケーションソフトウェア（１６０）をプロテクトロック状態で実行し（１４０）、その途上で、不揮発性メモリ部１３の書き換えを行うときは、まずキーコード認証処理（１４１）として、アプリケーションソフトウェアに基づいて指定されたキーコードとキーコード認証コマンドをメモリ制御シーケンサ１２に与える。メモリ制御シーケンサ１２は不揮発性メモリ部１３によるキーコード領域からの読み出し動作（１６１）によって得られたリードデータをそのキーコードと比較してその結果をＣＰＵ１１に返す（１５０）。比較一致の場合には不揮発性記憶装置１４のセキュリティ状態はプロテクトアンロックに遷移する。ＣＰＵ１１は比較結果に応ずる認証結果を確認する（１４２）。比較不一致の場合にはＣＰＵ１１は図示を省略する例外処理などを行う。比較一致の場合には、ＣＰＵ１１はソフトウェアをダウンロードし（１４３）、メモリ制御シーケンサ１２にメモリ書き込みを指示する（１４４）。メモリ制御シーケンサ１２は書き込みコマンドと書き込みデータにしたがって不揮発性メモリ部１３に書き込み動作を制御し（１５１）、これによって不揮発性メモリ部１３にソフトウェアが書き込まれる（１６２）。
【０１３０】
書き込み処理（１４４）の後、ＣＰＵ１１はキーコード認証処理（１４５）を行って正規のキーコードに一致しないコード情報とキーコード認証コマンドをメモリ制御シーケンサ１２に与える。メモリ制御シーケンサ１２は不揮発性メモリ部１３によるキーコード領域からの読み出し動作（１６３）によって得られたリードデータをそのコード情報と比較してその結果をＣＰＵ１１に返す（１５２）。比較不一致により不揮発性記憶装置１４のセキュリティ状態はプロテクトアンロック状態からプロテクトロック状態に遷移する。ＣＰＵ１１は比較結果に応ずる認証結果を確認する（１４６）。比較不一致の場合にはＣＰＵ１１は図示を省略する例外処理などを行う。比較不一致が確認された後は、特に制限されないが、書き換えられたアプリケーションソフトウェアに基づき、プロテクトロック状態で次の処理が開始される。
【０１３１】
図１２にはキーコードセット動作手順が示される。まず、制御モードレジスタＭＲＥＧのセキュリティ制御モードビットＳＣＭに“１”がセットされ（２００）、次に、メモリ制御シーケンサ１２のコマンドレジスタにキーコードセットコマンドが書き込まれる（２０１）。キーコードセットコマンドは、特に制限されないが、キーコードのバッファデータレジスタのアドレスとセットすべきキーコードを伴う書き込みコマンドに相当する。それらの動作制御主体はＣＰＵ１１である。キーコードセットコマンドに従ってメモリ制御シーケンサ１２がキーコードの書き込みを開始する（２０２）。特に制限されないが、ここではキーコードの書き込みに４サイクルの書き込みサイクルを要するものとし、書き込みサイクル数を管理するために変数ｎに初期値１をセットし（２０３）、次の書き込みサイクルを実行し（２０４）、書き込みサイクル数が４になるまで、変数ｎをｎ＋１に更新しながら（２０６）ステップ２０４の書き込みを繰り返す（２０５）。その間、ＣＰＵ１１はキーコードセット終了フラグがセットされたか否かを確認しており（２０７）、その前に、書き込みに必要な書き込みベリファイ動作時間が経過したときは（２０８のｙｅｓ）、フラッシュ制御シーケンサ１２が初期化され今回のキーコードセットコマンドによる書き込み要求がクリアされる（２１０）。キーコードセット終了フラグのセットが確認されると（２０７の“１”）、ステータスレジスタＳＲＥＧ等をリードしてエラーの確認を行う（２０９）。即ち、今回の書き込み及びベリファイ動作によってセキュリティ状態がプロテクトロック状態になっていることステータスＳＴＴによって確認する。これによって、不揮発性メモリ部１３にキーコードがセットされて不揮発性記憶装置はプロテクトロック状態になる。
【０１３２】
図１３にはキーコードリセット動作手順が示される。まず、制御モードレジスタＭＲＥＧのセキュリティ制御モードビットＳＣＭに“１”がセットされ（２２０）、次に、メモリ制御シーケンサ１２のコマンドレジスタにキーコードリセットコマンドが書き込まれる（２２１）。キーコードリセットコマンドは、特に制限されないが、キーコード領域のアドレスを特定する消去コマンドに相当する。それらの動作制御主体はＣＰＵ１１である。キーコードリセットコマンドに従ってメモリ制御シーケンサ１２は現在のセキュリティ状態がプロテクトアンロック状態であることを確認してからキーコードの消去を開始する。現在のセキュリティ状態がプロテクトアンロック状態でないときは当該コマンドの受付は拒否される。その間、ＣＰＵ１１はキーコードリセット終了フラグがセットされたか否かを確認しており（２２２）、その前に、消去に必要な消去時間が経過したときは（２２３のｙｅｓ）、フラッシュ制御シーケンサ１２が初期化され今回のキーコードリセットコマンドによる消去要求がクリアされる（２２５）。キーコードリセット終了フラグのセットが確認されると（２２２の“１”）、ステータスレジスタＳＲＥＧ等をリードしてエラーの確認を行う（２２４）。即ち、今回の消去及びベリファイ動作によってセキュリティ状態がアンプロテクトロック状態になっていることステータスＳＴＴによって確認する。これによって、不揮発性記憶装置はアンプロテクト状態にされる。
【０１３３】
図１４にはキーコード認証動作手順が示される。まず、制御モードレジスタＭＲＥＧのセキュリティ制御モードビットＳＣＭに“１”がセットされ（２３０）、次に、メモリ制御シーケンサ１２のコマンドレジスタにキーコード認証コマンドが書き込まれる（２３１）。キーコード認証コマンドは、特に制限されないが、キーコードのバッファデータレジスタのアドレスと認証すべきキーコードを伴う書き込みベリファイコマンドに相当する。それらの動作制御主体はＣＰＵ１１である。キーコード認証コマンドに従ってメモリ制御シーケンサ１２が不揮発性メモリ部１３からキーコードをリードしリードしたキーコードをバッファデータレジスタの認証すべきキーコードと比較するベリファイ動作による認証動作を開始する（２３２）。特に制限されないが、ここではキーコードの認証に４サイクルのベリファイサイクルを要するものとし、ベリファイサイクル数を管理するために変数ｎに初期値１をセットし（２３３）、次のベリファイサイクルを実行し（２３４）、変数
ｎをｎ＋１に更新しながら（２３６）ベリファイサイクル数が４になるまでステップ２３４のベリファイを繰り返す（２３５）。その間、ＣＰＵ１１はキーコード認証終了フラグがセットされたか否かを確認しており（２３７）、その前に、ベリファイに必要なベリファイ動作時間が経過したときは（２３８のｙｅｓ）、フラッシュ制御シーケンサ１２が初期化され今回のキーコード認証コマンドによる認証要求がクリアされる（２４０）。キーコードセット終了フラグのセットが確認されると（２３７の“１”）、ステータスレジスタＳＲＥＧ等をリードしてエラーの確認を行う（２３９）。即ち、今回のキーコード認証動作によってセキュリティ状態がプロテクトアンロック状態になっていることステータスＳＴＴによって確認する。これによって、不揮発性メモリ部１３にキーコードがセットされて不揮発性記憶装置はプロテクトロック状態になる。
【０１３４】
上記実施の形態１によれば以下の作用効果を得る。
【０１３５】
半導体装置に内蔵された不揮発性記憶装置に書き込まれたソフトウェアを第三者が不正にコピーしたり解析したりすることを防止することができる。
【０１３６】
市場で取引され或いは流通している機器に組み込まれた半導体装置のオンチップ不揮発性記憶装置に対して、第三者が不正に消去・書き換えを行って当該半導体装置を使用した電装ユニットのハードウェアを再利用したり、不正ソフトウェアを実装した不正改造電装ユニットを製造したりする自体の発生を防止することができる。
【０１３７】
半導体装置に内蔵された不揮発性記憶装置に対するキーコードを知る正当な権限保有者による書き込み・消去などの機能は損なわれない。
【０１３８】
書き換え可能な不揮発性記憶装置を内蔵する半導体装置の特徴であった、市場での書き換え機能を損なうことなく、目的にあわせて不揮発性記憶装置のソフトウェアの保護状態（セキュリティ状態）を設定可能となり、第三者によるアプリケーションソフトウェアの不正な解析やシステムの改造に対して対抗することができる。
【０１３９】
［実施の形態２］
実施の形態２では実施の形態１で説明したマイクロコンピュータを自動車用の電装ユニットに搭載する場合の例を説明する。
【０１４０】
図１５には実施の形態１で説明したマイクロコンピュータを搭載した電装ユニットの量産時における不揮発性記憶装置に対する初期書き込みの動作形態が例示される。
【０１４１】
３００は電装ユニット量産ラインの初期書き込みホスト装置であり、これには通信ケーブル３０１を介して多数のマイクロコンピュータ１０が接続される。その接続インタフェースには通信インタフェース回路１６が用いられる。夫々にマイクロコンピュータ１０にオンチップされている不揮発性記憶装置１４には並列的に初期書き込みが行われる。例えば図８で説明したソフトウェアの書き込み動作が全てのマイクロコンピュータ１０に対して並列的に行われる。
【０１４２】
図１６には自動車に搭載された電装ユニットのメンテナンス時における不揮発性記憶装置に対する書き込みの動作形態が例示される。３１０はカーディーラ等に設置された電装ユニット用ソフトウェア書き換えホスト装置であり、これには通信ケーブル３１３を介してメンテナンス対象自動車に搭載された電装ユニット３１２のマイクロコンピュータ１０が接続される。その接続インタフェースには通信インタフェース回路１６が用いられる。ホスト装置３１０による不揮発性記憶装置１４に対するソフトウェアの書き換えは例えば図１１で説明したソフトウェアの書き換え動作手順に従って行われる。
【０１４３】
図１７にはマイクロコンピュータ１０を自動車用電装ユニットに適用した場合における不揮発性記憶装置のセキュリティ保護の遷移状態が全体的に示される。ここでは、自動車用電装ユニットに製造メーカ（電装メーカ）での初期書き込み、市場での動作（走行する自動車上での動作）、市場での書き換え（カーディーラ等にけるソフトウェア書き換え）、及びソフトウェア又はシステム解析（自動車メーカやカーディーラにおける特性や不具合の解析）の各フェーズに大別して遷移状態を図示してある。
【０１４４】
電装メーカにおけるソフトウェアの初期書き込みは、アンプロテクト状態において図７で説明したエミュレータを用いたソフトウェア及びキーコードの書き込み（３２０）又図７で説明したオンボード書き込みによるソフトウェア及びキーコードの書き込み（３２３）によって実現可能である。
【０１４５】
処理３２０の書き込みの後はプロテクトアンロック状態にされ、ここでキーコード認証不一致を生じさせることによって（３２１）、プロテクトロック状態になって書き込みを完了することができる（３２２）。同じく、処理３２３の書き込みの後もプロテクトアンロック状態にされ、ここでキーコード認証不一致を生じさせることによって（３２４）、プロテクトロック状態になって書き込みを完了することができる（３２５）。
【０１４６】
市場では、書き込み完了状態（３２２，３２５）であるプロテクトロック状態又はキーコード認証不一致（３２１，３２４）によるプロテクトロック状態において、ＣＰＵ１１は不揮発性記憶装置１４に書き込まれたソフトウェアを実行してアプリケーション動作を行うことができる（３３０）。当然その場合には不揮発性記憶装置１４に対する消去及び書き込み並びにキーコード領域に対する読み出しは阻止されている。アプリケーション動作状態（３３０）においてキーコード認証を行って正当性が判別されれば（３４０）、プロテクトアンロック状態でソフトウェアの書き換えが可能になり（３４１）、ソフトウェア書き込み後に不一致のキーコード認証を行えば（３４３）、再度プロテクトロック状態でアプリケーション動作可能な状態に遷移することができる（３３０）。処理３４１の前記ソフトウェア書き換え後にキーコードリセット動作を行ってキーコードを書き換え（３４２）、その後、不一致のキーコード認証を行えば（３４３）、再度プロテクトロック状態でアプリケーション動作可能な状態に遷移することができる（３３０）。一方、システム解析が必要な場合には、プロテクトロック状態でキーコード認証を行い（３５０）、プロテクトアンロック状態でキーコードリセットを行って（３５１）、アンプロテクト状態に遷移して、ここでエミュレータ等を用いてシステム解析を行うことができる（３５２）。
【０１４７】
上記実施の形態１のマイクロコンピュータを適用した電装ユニットを用いる場合には以下の作用効果を得ることができる。
【０１４８】
電装ユニットメーカでのユニット開発時には、インサーキットエミュレータを使用することができ、オンチップの不揮発性記憶装置１４へのソフトウェアの書き込みもエミュレータで実施することができる。ソフトウェアの保護が必要であれば、エミュレータでキーコードを設定することにより保護可能となる。
【０１４９】
電装ユニットメーカでのユニット量産時の初期書き込みには、オンボード書き込みを使用することができる。量産時は、書き込み時間、スループット、コストなどが重要なファクターとなるため、並列に複数個の書き込みを実施することが一般的である。そのため、図１５で説明した通り、オンボード書き込みを複数のマイクロコンピュータに対して並列で書き込みを実施する。電装ユニット出荷に際し、ソフトウェアの保護が必要な場合は初期書き込みとあわせてキーコードを設定することによりユニット出荷後はソフトウェア保護が可能となる。
【０１５０】
市場での書き換えは、ユーザアプリケーション動作状態での書き換えとなる。市場での書き換えは安全面、セキュリティ面でカーディーラなどのメンテナンスサービスを提供できるところでソフトウェアの書き換えを実施することが妥当である。出荷時にはソフトウェア保護のためにキーコードセットされたプロテクトロック状態であったとしても書き換え時にユーザアプリケーションであらかじめ用意しておいた通信プロトコルを用いてキーコード認証と書き換えの実現が可能となる。
【０１５１】
電装メーカでの解析は電装ユニットおよびマイクロコンピュータの解析を行うことが必要になる。市場動作している電装ユニット若しくはマイクロコンピュータに対して何らかの解析や調査が必要な場合は、ユニットを自動車から外しインサーキットエミュレータなどのデバッグツールを使用して解析する必要がある。市場ではキーコードがセットされたプロテクトロック状態でソフトウェアの保護がされている場合でもエミュレータを接続するデバッグインタフェース経由でキーコード認証が可能なため何らかの解析や調査が可能となる。
【０１５２】
以上より、マイクロコンピュータ１０を自動車パワートレイン制御システムに適用した場合、制御システムのセットメーカが開発したソフトウェアを第三者が解析できないようにすることができる。イモビライザーなど盗難防止に関するソフトウェアを第三者が解析できないようにすることができる。ソフトウェアの改竄による不正改造を防止することができる。ソフトウェア不具合の対策や機能追加などの目的で市場でのソフトウェア書き換えを実施することが可能である。例えばリコールによるカーディーラでのソフトウェアアップデートも可能である。
【０１５３】
［実施の形態３］
《マイクロコンピュータ》
実施の形態３では、不揮発性記憶装置のセキュリティ状態として５状態を採り得る場合の例を説明する。
【０１５４】
図１８には本発明に係る半導体装置の別の例としてマイクロコンピュータの構成が例示される。マイクロコンピュータ（ＭＣＵ）４００は、特に制限されないが、単結晶シリコンのような１個の半導体基板に相補型ＭＯＳ集積回路製造技術等によって構成される。
【０１５５】
マイクロコンピュータ４００は、電気的に書き換え可能な不揮発性記憶装置４１４、命令を実行する中央処理装置（ＣＰＵ）４１１、中央処理装置４１１のワーク領域等に利用されるＳＲＡＭ（Static Random Access Memory）４１５、デバッグ専用の外部インタフェースに割り当てられた第１外部インタフェース回路（デバッグインタフェース回路）４１７、及びその他の外部インタフェースに割り当てられた第２外部インタフェース回路（通信インタフェース回路）４１６、外部バス回路４１９、を有し、それらは内部バス４１８に接続される。内部バス４１８は当然階層化されていてもよい。
【０１５６】
不揮発性記憶装置４１４は、不揮発性メモリセルのアレイが配置された不揮発性記憶部（不揮発性メモリ部）４１３と、前記不揮発性メモリ部４１３のメモリセルに対する消去書き込みと読み出し動作手順等を制御するメモリ制御部（メモリ制御シーケンサ）４１２とを有する。メモリ制御シーケンサ４１２はＣＰＵ４１１等からのアクセスコマンド、アドレス、書き込みデータ等を受け取って、不揮発性メモリ部４１３に対する消去、書き込み及び読み出し動作等を制御する。読み出しデータは不揮発性メモリ部４１３から内部バス４１８に出力される。不揮発性記憶装置４１４は、例えばフラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、又はＭＲＡＭ（Magnetoresistive Random Access Memory）等とされる。
【０１５７】
通信インタフェース回路４１６、デバッグ用インタフェース回路４１７は実施の形態１と同じであってよい。
【０１５８】
前記外部バス回路４１９は、例えばデバッグ用又は車載電子制御システムのボード上のメモリバス回路に接続され、前記ボード上のメモリバスには、例えばSRAM（Static Random Access Memory）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、又はＭＲＡＭ（Magnetoresistive Random Access Memory）等が接続され、前記中央処理装置の命令やデータが格納される。
【０１５９】
前記メモリ制御シーケンサ４１２はメモリアクセス制御と共にセキュリティ制御を行って、不揮発性メモリ部４１３に対する不正な消去及び書き込み並びに読み出しを抑制する。
【０１６０】
《５状態のセキュリティレベル》
図２０には不揮発性記憶装置４１４のセキュリティ状態（セキュリティレベル）が例示される。ここに例示されるセキュリティ状態は、アンプロテクト状態（第１セキュリティ状態）、第１プロテクトアンロック状態（第２セキュリティ状態）第１プロテクトロック状態（第３セキュリティ状態）、第２プロテクトアンロック状態（第４セキュリティ状態）、及び第２プロテクトロック状態（第５セキュリティ状態）、の５状態とされる。以下の説明では、第１プロテクトアンロック状態をセキュリティレベル１のプロテクトアンロック状態、第１プロテクトロック状態をセキュリティレベル１のプロテクトロック状態、第２プロテクトアンロック状態をセキュリティレベル２のプロテクトアンロック状態、第２プロテクトロック状態をセキュリティレベル２のプロテクトロック状態とも称する。
【０１６１】
プロテクトアンロック状態は、不揮発性記憶装置４１４に第１キーコード及び第２キーコードがセットされていないとき、不揮発性記憶装置４１４に対する読み出しが許可され、且つ不揮発性記憶装置４１４に対する書き換えが許可され、且つ前記通信インタフェース回路４１６及びデバッグインタフェース回路４１７からの外部出力が許可される状態である。要するに、不揮発性記憶装置１４に格納されたソフトウェア等は保護されない状態である。
【０１６２】
セキュリティレベル１のプロテクトアンロック状態は、不揮発性記憶装置４１４に前記第１キーコードがセットされているとき、不揮発性記憶装置４１４に対する読み出しが許可され、且つ当該キーコードを利用する認証結果が正当であることを条件に、前記不揮発性記憶装置４１４に対する書き換えが許可され、且つ前記通信インタフェース回路４１６及びデバッグインタフェース回路４１７からの外部出力が許可される状態である。この状態は、認証結果が正当な場合に不揮発性記憶装置４１４に格納されたソフトウェア等の保護が一時的に解除された状態である。
【０１６３】
セキュリティレベル１のプロテクトロック状態は、不揮発性記憶装置４１４に第１キーコードがセットされているとき、当該キーコードを利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置４１４に対する書き換えが禁止され、且つ不揮発性記憶装置４１４に対する読み出しが所定の条件下で禁止され、且つ前記通信インタフェース回路４１６及びデバッグインタフェース回路４１７からの外部出力が許可される状態である。要するに、不揮発性記憶装置４１４に格納されたソフトウェア等が保護された状態である。
【０１６４】
セキュリティレベル２のプロテクトアンロック状態は、不揮発性記憶装置４１４に前記第２キーコードがセットされているとき、不揮発性記憶装置４１４に対する読み出しが許可され、且つ当該キーコードを利用する認証結果が正当であることを条件に、不揮発性記憶装置４１４に対する書き換えが許可され、且つ前記通信インタフェース回路４１６及びデバッグインタフェース回路４１７からの外部出力が許可される状態である。セキュリティレベル１のプロテクトアンロック状態との相違は使用するキーコードの相違だけである。
【０１６５】
セキュリティレベル２のプロテクトロック状態は、不揮発性記憶装置４１４に第２キーコードがセットされているとき、当該キーコードを利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置４１４に対する書き換えが禁止され、且つ不揮発性記憶装置４１４に対する読み出しが所定の条件下で禁止され、且つ前記デバッグインタフェース回路４１７のインタフェース動作が無効にされ、且つ前記通信インタフェース回路４１６からの外部出力が許可される状態である。セキュリティレベル１のプロテクトロック状態との相違は使用するキーコードの相違と、デバッグインタフェース回路４１７のインタフェース動作が無効にされる点である。
【０１６６】
ここで、前記所定の条件下とは前記中央処理装置４１１による外部バス回路４１９を経由し外部アドレス空間への命令フェッチを一旦検出した以降である。前記セキュリティレベル１及び２のプロテクトロック状態において前記不揮発性記憶装置４１４の出力をメモリ読み出し動作によらない所定の既定値又は前記不揮発性記憶装置の出力データとは異なるランダムな値とすることにより前記不揮発性記憶装置４１４に格納されたソフトウェアの保護が可能になる。書き換えが禁止された状態の不揮発性記憶装置４１４が保有するプログラムを実行する正規の状態において、不正行為は外部バス回路４１９を経由し外部アドレス空間からＣＰＵ４１１に不正なプログラムをフェッチさせることに端を発すると想定される。そのため、それ以前の正規のプログラム実行状態では不揮発性記憶装置４１４から外部へのデータの読み出しなどが行われる場合にこれを許容できるようにし、一旦不正と想定される外部空間からの命令フェッチサイクルが発生された後は不揮発性記憶装置４１４に記憶された記憶情報を一切外部へ出力させず、記憶情報の保護を最優先とすることができる。
【０１６７】
また、セキュリティレベル１及び２のプロテクトロック状態において前記所定の条件下では不揮発性記憶装置４１４が保持する正規のデータは如何なる意味においても不揮発性記憶装置４１４の外部に存在することにはならず、マイクロコンピュータ４００の外部への正規データの出力を阻止しても内部のバスやバッファ上に滞留するという事態も抑制することができる。
【０１６８】
図２１には前記セキュリティ状態に関する操作コマンドが例示される。メモリ制御シーケンサ４１２は、セキュリティ状態を制御する操作コマンドのセットとして、キーコードセットコマンド、キーコードリセットコマンド及びキーコード認証コマンドのコマンドを有する。
【０１６９】
キーコードセットコマンドは、外部インタフェース回路４１６，４１７から入力されたキーコードを前記不揮発性メモリ部４１３の所定の記憶領域（キーコード記憶領域）に書き込む動作（キーコードセット）を指示するコマンドである。このキーコードセットはアンプロテクト状態又はプロテクトアンロック状態で可能である。キーコードをセットするとき、セキュリティレベル１，２は、キーコードを格納するためのアドレスの指定の相違によって選択する。ここで言うキーコードを格納するためのアドレスとはメモリ制御シーケンサ４１２が保有するデータレジスタのアドレスであり、不揮発性メモリ部のメモリアドレスではない。要するに、セットするキーコードはコマンドパラメータとしてのレジスタアドレスで指定される。したがって、第１キーコードと第２キーコードの値については同じであっても相違していてもよく、任意値であってよい。特に制限されないが、メモリ制御シーケンサ４１２はバス４１８を介して与えられるキーコード領域に対する読み出しアクセスの要求を無効とし、不正な書き換えだけでなく、不正なリード要求があってもこれを無効とすることにより、キーコードに対する保護の万全を期するものである。
【０１７０】
キーコードリセットコマンド、及びキーコード認証コマンドは実施の形態１と同様である。リセット対象キーコードや認証対象キーコードは、そのときのセキュリティ状態に基づいてメモリ制御シーケンサ４１２が判別する。
【０１７１】
図１９にはセキュリティレベルの状態遷移図が示される。同図に示される状態遷移制御はメモリ制御シーケンサ４１２の制御による。
【０１７２】
プロテクトアンロック状態における前記リセットコマンドの実行、又は前記キーコード記憶領域の情報が無効にされている状態でのマイクロコンピュータのリセット動作により、セキュリティ状態はアンプロテクト状態１とされる。
【０１７３】
アンプロテクト状態１における第１キーコード（レベル１のキーコード）のセットコマンドの実行、又はセキュリティレベル１のプロテクトロック状態３Ａにおける認証コマンド実行による認証結果の認証正当により、セキュリティ状態がセキュリティレベル１のプロテクトアンロック状態２Ａにされる。
【０１７４】
前記セキュリティレベル１のプロテクトアンロック状態２Ａにおける認証コマンド実行による認証結果の認証不当（キーコード認証不一致）、又は不揮発性メモリ部４１３にレベル１キーコードがセットされている状態でのマイクロコンピュータ１０のリセット動作により、セキュリティ状態がセキュリティレベル１のプロテクトロック状態３Ａとされる。
【０１７５】
アンプロテクト状態１における第２キーコード（レベル２のキーコード）のセットコマンドの実行、セキュリティレベル２のプロテクトロック状態３Ｂにおける認証コマンド実行による認証結果の認証正当（認証一致）、又はセキュリティレベル１のプロテクトアンロック状態２Ａにける第２キーコード（レベル２のキーコード）のセットコマンドの実行により、セキュリティ状態がセキュリティレベル２のプロテクトアンロック状態２Ｂにされる。
【０１７６】
前記セキュリティレベル２のプロテクトアンロック状態２Ｂにおける認証コマンド実行による認証結果の認証不当（キーコード認証不一致）、又は不揮発性メモリ部４１３にレベル２キーコードがセットされている状態でのマイクロコンピュータ４００のリセット動作により、セキュリティ状態がセキュリティレベル２のプロテクトロック状態３Ｂとされる。
【０１７７】
特に図示はしないが、メモリ制御シーケンサ４１２が有する制御モードレジスタＭＲＥＧは実施の形態１と同じであり、セキュリティ制御ステータスレジスタＳＲＥＧのセキュリティ制御ステータスコードＳＴＴは５状態のセキュリティ状態を異なるコードで表すことができるビット数を有する。
【０１７８】
その他の構成並びに基本的な作用は実施の形態１と同じであるからその詳細な説明は省略する。
【０１７９】
特に、５レベルによるセキュリティ状態の遷移制御を行う本実施の形態によれば、不揮発性記憶装置４１４を単に書き換えるような処理主体に対してはアンプロテクトセキュリティ状態１、レベル２のプロテクトアンロック及びプロテクトロックのセキュリティ状態への遷移だけで運用できる。つまり、インタフェース仕様が公開されるデバッグ専用のデバッグインタフェース回路４１７を使用したマイクロコンピュータ４００内部の不正アクセスによる不揮発性記憶装置４１４に対するアタックが容易に行えないようになる。更に詳述すれば、実施の形態１ではプロテクトロック状態でセキュリティ性を保った状態でも、インサーキットエミュレータのデバッグインタフェースではキーコード認証を実施して一致した場合はエミュレータの接続が許可されデバッグが可能になる。つまり、キーコードは有限な組み合わせのため、組み合わせの総当りなどの攻撃によりキーコードを本来知りえない第三者でもエミュレータの接続が可能になるポテンシャルは残っている。そのため、更なるセキュリティ性の向上のためエミュレータのインタフェースがキーコード認証により接続が許可されるプロテクトロック状態（プロテクトロック状態レベル１）とエミュレータのインタフェースが全く使用できないプロテクトロック状態（プロテクトロック状態レベル２）の２種類の状態のプロテクトロック状態を用意することによって更にセキュリティ性能を向上させる事ができる。一方、システムデバッグの一環として不揮発性記憶装置４１４の書き換えを伴う処理などを行うような処理主体に対してはレベル１のプロテクトアンロック及びプロテクトロックのセキュリティ状態への遷移も可能に運用させることにより、使い勝手の良好なデバッグ環境を提供することが可能になる。
【０１８０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１８１】
例えば、電気的に書き換え可能な不揮発性メモリ、デバッグ用インタフェース、通信インタフェースは上記説明に限定されず適宜変更可能である。また、半導体装置はマイクロコンピュータに限定されず、画像処理、圧縮伸長処理、通信処理等のアクセラレータや、その他のシステムオンチップ形態の半導体装置に広く適用することができる。また、秘密情報を用いる認証は秘密情報に比較一致判別による場合に限定されず、その他の認証アルゴリズムを用いて行ってもよい。
【符号の説明】
【０１８２】
１０  マイクロコンピュータ（ＭＣＵ）
１４  不揮発性記憶装置
１１  中央処理装置（ＣＰＵ）
１７  第１外部インタフェース回路（デバッグインタフェース回路）
１６  第２外部インタフェース回路（通信インタフェース回路）
１８  内部バス
１９  外部バス回路
１３  不揮発性記憶部（不揮発性メモリ部）
１２  メモリ制御部（メモリ制御シーケンサ）
１  アンプロテクト状態
２  プロテクトアンロック状態
３  プロテクトロック状態
ＭＲＥＧ  制御モードレジスタ
ＳＣＭ  セキュリティ制御モードビット
ＳＲＥＧ  セキュリティ制御ステータスレジスタ
ＳＴＴ  セキュリティ制御ステータスコード
２１  インサーキットエミュレータ
２２  エミュレータホスト装置
３１  オンボード書き込みホスト装置
３００  電装ユニット量産ラインの初期書き込みホスト装置
３１０  電装ユニット用ソフトウェア書き換えホスト装置
４００  マイクロコンピュータ（ＭＣＵ）
４１４  不揮発性記憶装置
４１１  中央処理装置（ＣＰＵ）
４１７  第１外部インタフェース回路（デバッグインタフェース回路）
４１６  第２外部インタフェース回路（通信インタフェース回路）
４１８  内部バス
４１９  外部バス回路
４１３  不揮発性記憶部（不揮発性メモリ部）
４１２  メモリ制御部（メモリ制御シーケンサ）
３Ａ  セキュリティレベル１のプロテクトロック状態
２Ａ  セキュリティレベル１のプロテクトアンロック状態
３Ｂ  セキュリティレベル２のプロテクトロック状態
２Ｂ  セキュリティレベル２のプロテクトアンロック状態
【図１】
0005603993.tif 000002
【図２】
0005603993.tif 000003
【図３】
0005603993.tif 000004
【図４】
0005603993.tif 000005
【図５】
0005603993.tif 000006
【図６】
0005603993.tif 000007
【図７】
0005603993.tif 000008
【図８】
0005603993.tif 000009
【図９】
0005603993.tif 000010
【図１０】
0005603993.tif 000011
【図１１】
0005603993.tif 000012
【図１２】
0005603993.tif 000013
【図１３】
0005603993.tif 000014
【図１４】
0005603993.tif 000015
【図１５】
0005603993.tif 000016
【図１６】
0005603993.tif 000017
【図１７】
0005603993.tif 000018
【図１８】
0005603993.tif 000019
【図１９】
0005603993.tif 000020
【図２０】
0005603993.tif 000021
【図２１】
0005603993.tif 000022