【手続補正書】
【提出日】平成24年8月6日(2012.8.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
夫々内部バスに接続された電気的に書き換え可能な不揮発性記憶装置、命令を実行する中央処理装置、外部インタフェース回路、及び外部バス回路を有する半導体装置であって、
前記不揮発性記憶装置の遷移可能なセキュリティ状態として、
前記不揮発性記憶装置に秘密情報がセットされていないとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される第１セキュリティ状態と、
前記不揮発性記憶装置に前記秘密情報セットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記外部インタフェース回路からの外部出力が許可される第２セキュリティ状態と、
前記不揮発性記憶装置に前記秘密情報セットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記外部インタフェース回路からの外部出力が許可される第３セキュリティ状態と、を有する半導体装置。
【請求項２】
前記不揮発性記憶装置は不揮発性メモリセルのアレイが配置された不揮発性記憶部と、前記不揮発性記憶部のメモリセルに対する消去書き込みと読み出し動作手順を制御するメモリ制御部とを有し、
前記メモリ制御部は更に前記第1セキュリティ状態乃至第３セキュリティ状態の制御を行う、請求項１記載の半導体装置。
【請求項３】
前記第２セキュリティ状態又は第３セキュリティ状態において指示される半導体装置のリセット動作において前記メモリ制御部は前記不揮発性記憶装置の初期セキュリティ状態を第３セキュリティ状態とする、請求項２記載の半導体装置。
【請求項４】
前記メモリ制御部は、前記第1セキュリティ状態乃至第３セキュリティ状態の制御を行うためのコマンドセットとして、セットコマンド、リセットコマンド及び認証コマンドを有し、
前記セットコマンドは、外部インタフェース回路から入力された秘密情報を前記不揮発性記憶部の所定の記憶領域に書き込む動作を指示するコマンドであり、
リセットコマンドは、前記所定の記憶領域の情報に対して無効を指示するコマンドであり、
前記認証コマンドは、前記所定の記憶領域に記憶されている秘密情報と外部インタフェース回路から与えられた情報を比較し、比較一致により認証正当、比較不一致により認証不当、と判別して前記セキュリティ状態の遷移制御を行う動作を指示するコマンドである、請求項２記載の半導体装置。
【請求項５】
前記メモリ制御部は、前記第２セキュリティ状態における前記リセットコマンドの実行、又は前記所定の記憶領域の情報が無効にされている状態での半導体装置のリセット動作により、セキュリティ状態を第１セキュリティ状態とし、
前記第１セキュリティ状態におけるセットコマンドの実行、又は第３セキュリティ状態における認証コマンド実行による認証結果の認証正当により、セキュリティ状態を前記第２セキュリティ状態とし、
前記第２セキュリティ状態における認証コマンド実行による認証結果の認証不当、又は前記所定の記憶領域に秘密情報がセットされている状態での半導体装置のリセット動作により、セキュリティ状態を第３セキュリティ状態とする、請求項４記載の半導体装置。
【請求項６】
セキュリティ制御モードビットを有する制御モードレジスタを更に有し、
前記セキュリティ制御モードビットが第１の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行が可能にされ、
前記セキュリティ制御モードビットが第２の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行によるセキュリティ状態の変更が不可能にされる、請求項４記載の半導体装置。
【請求項７】
前記セキュリティ制御モードにおいて現在のセキュリティ状態を示すセキュリティ制御ステータスレジスタを更に備える、請求項６記載の半導体装置。
【請求項８】
前記所定の条件下とは前記中央処理装置による前記外部バス回路を経由した外部アドレス空間への命令フェッチを一旦検出した以降であり、
前記第３セキュリティ状態における外部出力の禁止は、読み出し要求に応答する前記不揮発性記憶装置の出力をメモリ読み出し動作によらない所定の既定値又は前記不揮発性記憶装置の出力データとは異なるランダムな値とすることである、請求項１記載の半導体装置。
【請求項９】
前記メモリ制御部は、前記内部バスを介して与えられる秘密情報を記憶する領域への読み出しアクセスの要求を無効にする、請求項１記載の半導体装置。
【請求項１０】
夫々内部バスに接続された電気的に書き換え可能な不揮発性記憶装置、命令を実行する中央処理装置、デバッグ専用の外部インタフェースに割り当てられた第１外部インタフェース回路、その他の外部インタフェースに割り当てられた第２外部インタフェース回路および外部バス回路を有する半導体装置であって、
前記不揮発性記憶装置の遷移可能なセキュリティ状態として、
前記不揮発性記憶装置に第１秘密情報及び第２秘密情報がセットされていないとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ前記不揮発性記憶装置に対する書き換えが許可され、且つ前記第１外部インタフェース回路及び第２外部インタフェース回路からの外部出力が許可される第１セキュリティ状態と、
前記不揮発性記憶装置に前記第１秘密情報セットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記第１外部インタフェース回路及び第２外部インタフェース回路からの外部出力が許可される第２セキュリティ状態と、
前記不揮発性記憶装置に前記第１秘密情報セットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記第１外部インタフェース回路及び第２外部インタフェース回路からの外部出力が許可される第３セキュリティ状態と、
前記不揮発性記憶装置に前記第２秘密情報セットされているとき、前記不揮発性記憶装置に対する読み出しが許可され、且つ当該秘密情報を利用する認証結果が正当であることを条件に、前記不揮発性記憶装置に対する書き換えが許可され、且つ前記第１外部インタフェース回路及び第２外部インタフェース回路からの外部出力が許可される第４セキュリティ状態と、
前記不揮発性記憶装置に前記第２秘密情報セットされているとき、当該秘密情報を利用する認証結果の正当性が確認されるまで、前記不揮発性記憶装置に対する書き換えが禁止され、且つ前記不揮発性記憶装置に対する読み出しが所定の条件下で禁止され、且つ前記第１外部インタフェース回路のインタフェース動作が無効にされ、且つ前記第２外部インタフェース回路からの外部出力が許可される第５セキュリティ状態と、を有する半導体装置。
【請求項１１】
前記不揮発性記憶装置は不揮発性メモリセルのアレイが配置された不揮発性記憶部と、前記不揮発性記憶部のメモリセルに対する消去書き込みと読み出し動作手順を制御するメモリ制御部とを有し、
前記メモリ制御部は更に前記第1セキュリティ状態乃至第５セキュリティ状態の制御を行う、請求項１０記載の半導体装置。
【請求項１２】
前記第２セキュリティ状態又は第３セキュリティ状態において指示される半導体装置のリセット動作において前記メモリ制御部は前記不揮発性記憶装置の初期セキュリティ状態を第３セキュリティ状態とし、
前記第４セキュリティ状態又は第５セキュリティ状態において指示される半導体装置のリセット動作において前記メモリ制御部は前記不揮発性記憶装置の初期セキュリティ状態を第５セキュリティ状態とする、請求項１１記載の半導体装置。
【請求項１３】
前記不揮発性記憶部は前記第１秘密情報の格納に割り当てられた第１記憶領域と第２秘密情報の格納に割り当てられた第２記憶領域とを別々に有する、請求項１１記載の半導体装置。
【請求項１４】
前記メモリ制御部は、前記第1セキュリティ状態乃至第５セキュリティ状態の制御を行うためのコマンドセットとして、セットコマンド、リセットコマンド及び認証コマンドを有し、
前記セットコマンドは、前記第１外部インタフェース回路又は第２外部インタフェース回路から入力された情報を前記第１記憶領域又は第２記憶領域を指定して書き込む動作を指示するコマンドであり、
リセットコマンドは、前記第１記憶領域及び第２記憶領域の情報に対して無効を指示するコマンドであり、
前記認証コマンドは、前記第１記憶領域又は第２記憶領域を指定して入力された情報を指定された前記第１記憶領域又は第２記憶領域の情報とを比較し、指定された記憶領域の情報に関する比較一致により当該指定された記憶領域の秘密譲情報について認証正当、指定された記憶領域の情報に関する比較不一致により認証不当、と判別して前記セキュリティ状態の遷移制御を行う動作を指示するコマンドである、請求項１３記載の半導体装置。
【請求項１５】
前記メモリ制御部は、前記第２セキュリティ状態における前記リセットコマンドの実行、前記第４セキュリティ状態における前記リセットコマンドの実行、又は前記第１記憶領域及び第２記憶領域の情報が無効にされている状態での半導体装置のリセット動作により、セキュリティ状態を第１セキュリティ状態とし、
前記第１セキュリティ状態における前記第１記憶領域を指定したセットコマンドの実行、又は第３セキュリティ状態における前記第１記憶領域を指定した認証コマンド実行による認証結果の認証正当により、セキュリティ状態を前記第２セキュリティ状態とし、
前記第２セキュリティ状態における前記第１記憶領域を指定した認証コマンド実行による認証結果の認証不当、又は前記第１記憶領域に秘密情報がセットされている状態での半導体装置のリセット動作により、セキュリティ状態を第３セキュリティ状態とし、
前記第１セキュリティ状態における前記第２記憶領域を指定したセットコマンドの実行、第５セキュリティ状態における前記第２記憶領域を指定した認証コマンド実行による認証結果の認証正当、又は前記第２セキュリティ状態における前記第２記憶領域を指定したセットコマンドの実行により、セキュリティ状態を前記第４セキュリティ状態とし、
前記第４セキュリティ状態における前記第２記憶領域を指定した認証コマンド実行による認証結果の認証不当、又は前記第２記憶領域に秘密情報がセットされている状態での半導体装置のリセット動作により、セキュリティ状態を第５セキュリティ状態とする、請求項１４記載の半導体装置。
【請求項１６】
セキュリティ制御モードビットを有する制御モードレジスタを更に有し、
前記セキュリティ制御モードビットが第１の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行が可能にされ、
前記セキュリティ制御モードビットが第２の値に設定されたとき、前記セットコマンド、リセットコマンド及び認証コマンドの実行によるセキュリティ状態の変更が不可能にされる、請求項１４記載の半導体装置。
【請求項１７】
前記セキュリティ制御モードにおいて現在のセキュリティ状態を示すセキュリティ制御ステータスレジスタを更に備える、請求項１６記載の半導体装置。
【請求項１８】
前記所定の条件下とは前記中央処理装置による前記外部バス回路を経由した外部アドレス空間への命令フェッチを一旦検出した以降であり、
前記第３セキュリティ状態及び第５セキュリティ状態における外部出力の禁止は、読み出し要求に応答する前記不揮発性記憶装置の出力をメモリ読み出し動作によらない所定の既定値又は前記不揮発性記憶装置の出力データとは異なるランダムな値とすることである、請求項１０記載の半導体装置。
【請求項１９】
前記メモリ制御部は、前記内部バスを介して与えられる秘密情報を記憶する領域への読み出しアクセスの要求を無効にする、請求項１０記載の半導体装置。
【請求項２０】
請求項１記載の半導体装置を用いたデータ処理システムにおいて、前記外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法であって、
前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理と、
前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、
前記第２処理によって遷移された第２セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置を書き換える第３処理と、
前記第３処理の後に前記秘密情報と異なる情報を外部機器が半導体装置に供給する第４処理と、
前記第４処理で供給された情報が前記秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第５処理と、を含むデータ処理方法。
【請求項２１】
請求項１記載の半導体装置を用いたデータ処理システムにおいて前記外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法であって、
前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理と、
前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、
前記第２処理によって遷移された第２セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置に格納されている秘密情報を無効化して第1セキュリティ状態に遷移させる第３処理と、
前記第３処理によって遷移された不揮発性記憶装置の第１セキュリティ状態で外部機器が半導体装置を書き換えながら動作の解析を行う第４処理と、
前記第４処理の後に外部機器が秘密情報をセットする第５処理と、
前記第５処理でセットした秘密情報と異なる情報を外部機器が半導体装置に供給する第６処理と、
前記第６処理で供給された情報が第５処理でセットされた秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第７処理と、を含むデータ処理方法。
【請求項２２】
請求項１０記載の半導体装置を用いたデータ処理システムにおいて前記第１外部インタフェース回路又は第２外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法であって、
前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理と、
前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、
前記第２処理によって遷移された第２セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置を書き換える第３処理と、
前記第３処理の後に前記秘密情報と異なる情報を外部機器が半導体装置に供給する第４処理と、
前記第４処理で供給された情報が前記秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第５処理と、を含むデータ処理方法。
【請求項２３】
請求項１０記載の半導体装置を用いたデータ処理システムにおいて前記第１外部インタフェース回路又は第２外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法であって、
前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理と、
前記第３セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第２セキュリティ状態に遷移させる第２処理と、
前記第２処理によって遷移された第２セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置に格納されている秘密情報を無効化して第1セキュリティ状態に遷移させる第３処理と、
前記第３処理によって遷移された不揮発性記憶装置の第１セキュリティ状態で外部機器が半導体装置を書き換えながら動作の解析を行う第４処理と、
前記第４処理の後に外部機器が秘密情報をセットする第５処理と、
前記第５処理でセットした秘密情報と異なる情報を外部機器が半導体装置に供給する第６処理と、
前記第６処理で供給された情報が第５処理でセットされた秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第７処理と、を含むデータ処理方法。
【請求項２４】
請求項１０記載の半導体装置を用いたデータ処理システムにおいて前記第２外部インタフェース回路に外部機器を接続して前記不揮発性記憶装置を書き換えるデータ処理方法であって、
前記不揮発性記憶装置が秘密情報を保持しているとき、外部機器から半導体装置に供給された情報が秘密情報に一致するかを半導体装置が判別する第１処理と、
前記第５セキュリティ状態において前記第1処理による判別結果が一致のとき半導体装置は不揮発性記憶装置のセキュリティ状態を第４セキュリティ状態に遷移させる第２処理と、
前記第２処理によって遷移された第４セキュリティ状態において外部装置が半導体装置の不揮発性記憶装置を書き換える第３処理と、
前記第３処理の後に前記秘密情報と異なる情報を外部機器が半導体装置に供給する第４処理と、
前記第４処理で供給された情報が前記秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第５セキュリティ状態に遷移させる第５処理と、を含むデータ処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
また、前記データ処理方法は、前記第５処理でセットした秘密情報と異なる情報を外部機器が半導体装置に供給する第６処理と、前記第６処理で供給された情報が第５処理でセットされた秘密情報に一致しないことを確認して半導体装置が不揮発性記憶装置のセキュリティ状態を第３セキュリティ状態に遷移させる第７処理と、を含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
前記メモリ制御シーケンサ１２はメモリアクセス制御と共にセキュリティ制御を行って、不揮発性メモリ部１３に対する不正な消去及び書き込み並びに読み出しを抑制する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１１６
【補正方法】変更
【補正の内容】
【０１１６】
図７にはターゲットシステムに対するメンテナンス環境が例示される。ターゲットシステム３０は例えばマイクロコンピュータ１０を搭載した実機であり、例えば自動車に搭載されるＥＣＵである。ターゲットシステム３０のマイクロコンピュータ１０に搭載された通信インタフェース回路１６に通信ケーブルを介してパーソナルコンピュータやワークステーションによって構成されたオンボード書き込みホスト装置３１が接続される。オンボード書き込みホスト装置３１は通信インタフェース回路１６を経由して不揮発性記憶装置１４が保有するプログラムなどの書き換え若しくは書き込みを制御する。不揮発性記憶装置１４は所謂オンボード書き込みが行われる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１１７
【補正方法】変更
【補正の内容】
【０１１７】
図８にはマイクロコンピュータ１０にオンチップされた初期状態の不揮発性記憶装置にソフトウェアを書き込むときの動作手順が例示される。図８では図６のエミュレータを用いた書き込みと図７のオンボード書き込みの区別なく示している。図８ではエミュレータホスト装置２２又はオンボード書き込み装置３１の操作（ホストの操作）、マイクロコンピュータ１０の動作（ＣＰＵの動作、メモリ制御シーケンサの動作、不揮発性メモリ部の動作）、及び不揮発性記憶装置１４のセキュリティ状態に大別して動作手順を示している。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１２０
【補正方法】変更
【補正の内容】
【０１２０】
マイクロコンピュータ１０はキーコード認証処理（５０）として、ホスト装置から受取ったキーコードとキーコード認証コマンドをメモリ制御シーケンサ１２に与える。メモリ制御シーケンサ１２は不揮発性メモリ部１３によるキーコード領域からの読み出し動作（７０）によって得られたリードデータをそのキーコードと比較してその結果をＣＰＵ１１に返す（６０）。ＣＰＵ１１は比較結果に応ずる認証結果が得られたことによって接続確認をホスト装置に返す（５１）。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
ホスト装置はソフトウェアをＣＰＵ１１に転送して書き込み確認を待つ（４１）。ＣＰＵ１１は当該ソフトウェアをダウンロードし（５２）、メモリ制御シーケンサ１２にメモリ書き込みを指示する（５３）。メモリ制御シーケンサ１２は書き込みコマンドと書き込みデータにしたがって不揮発性メモリ部１３に書き込み動作を制御し（６１）、これによって不揮発性メモリ部１３にソフトウェアが書き込まれる（７１）。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１２２
【補正方法】変更
【補正の内容】
【０１２２】
ホスト装置は書き込み確認を受けた後にＣＰＵ１１にキーコードの書き込み指示し、接続確認を待つ（４２）。ＣＰＵ１１はこれに応答してキーコードセットコマンドをメモリ制御シーケンサ１２に発行し（５４）、メモリ制御シーケンサ１２は当該コマンドに応答して、コマンドで指定されたキーコードを不揮発性メモリ部１３に書き込む（７２）。ＣＰＵ１１は書き込み完了を確認して（５５）、これをホスト装置に通知する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１２５
【補正方法】変更
【補正の内容】
【０１２５】
ホスト装置はまず認証するキーコードをマイクロコンピュータ１０に与えて接続確認を待つ（８０）。マイクロコンピュータ１０はキーコード認証処理（９０）として、ホスト装置から受取ったキーコードとキーコード認証コマンドをメモリ制御シーケンサ１２に与える。メモリ制御シーケンサ１２は不揮発性メモリ部１３によるキーコード領域からの読み出し動作（１１０）によって得られたリードデータをそのキーコードと比較してその結果をＣＰＵ１１に返す（１００）。ここでは比較一致とする。ＣＰＵ１１は比較結果に応ずる認証結果が得られたことによって接続確認をホスト装置に返す（９１）。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１２６
【補正方法】変更
【補正の内容】
【０１２６】
ホスト装置はソフトウェアをＣＰＵ１１に転送して書き込み確認を待つ（８１）。ＣＰＵ１１は当該ソフトウェアをダウンロードし（９２）、メモリ制御シーケンサ１２にメモリ書き込みを指示する（９３）。メモリ制御シーケンサ１２は書き込みコマンドと書き込みデータにしたがって不揮発性メモリ部１３に書き込み動作を制御し（１０１）、これによって不揮発性メモリ部１３にソフトウェアが書き込まれる（１１１）。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１２９
【補正方法】変更
【補正の内容】
【０１２９】
図１１には実機上でマイクロコンピュータが実行するアプリケーションプログラムに基づいて不揮発性記憶装置の書き換えを行う場合の動作手順が例示される。ＣＰＵ１１は不揮発性メモリ部１３が保有するアプリケーションソフトウェア（１６０）をプロテクトロック状態で実行し（１４０）、その途上で、不揮発性メモリ部１３の書き換えを行うときは、まずキーコード認証処理（１４１）として、アプリケーションソフトウェアに基づいて指定されたキーコードとキーコード認証コマンドをメモリ制御シーケンサ１２に与える。メモリ制御シーケンサ１２は不揮発性メモリ部１３によるキーコード領域からの読み出し動作（１６１）によって得られたリードデータをそのキーコードと比較してその結果をＣＰＵ１１に返す（１５０）。比較一致の場合には不揮発性記憶装置１４のセキュリティ状態はプロテクトアンロックに遷移する。ＣＰＵ１１は比較結果に応ずる認証結果を確認する（１４２）。比較不一致の場合にはＣＰＵ１１は図示を省略する例外処理などを行う。比較一致の場合には、ＣＰＵ１１はソフトウェアをダウンロードし（１４３）、メモリ制御シーケンサ１２にメモリ書き込みを指示する（１４４）。メモリ制御シーケンサ１２は書き込みコマンドと書き込みデータにしたがって不揮発性メモリ部１３に書き込み動作を制御し（１５１）、これによって不揮発性メモリ部１３にソフトウェアが書き込まれる（１６２）。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１３０
【補正方法】変更
【補正の内容】
【０１３０】
書き込み処理（１４４）の後、ＣＰＵ１１はキーコード認証処理（１４５）を行って正規のキーコードに一致しないコード情報とキーコード認証コマンドをメモリ制御シーケンサ１２に与える。メモリ制御シーケンサ１２は不揮発性メモリ部１３によるキーコード領域からの読み出し動作（１６３）によって得られたリードデータをそのコード情報と比較してその結果をＣＰＵ１１に返す（１５２）。比較不一致により不揮発性記憶装置１４のセキュリティ状態はプロテクトアンロック状態からプロテクトロック状態に遷移する。ＣＰＵ１１は比較結果に応ずる認証結果を確認する（１４６）。比較不一致の場合にはＣＰＵ１１は図示を省略する例外処理などを行う。比較不一致が確認された後は、特に制限されないが、書き換えられたアプリケーションソフトウェアに基づき、プロテクトロック状態で次の処理が開始される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１３１
【補正方法】変更
【補正の内容】
【０１３１】
図１２にはキーコードセット動作手順が示される。まず、制御モードレジスタＭＲＥＧのセキュリティ制御モードビットＳＣＭに“１”がセットされ（２００）、次に、メモリ制御シーケンサ１２のコマンドレジスタにキーコードセットコマンドが書き込まれる（２０１）。キーコードセットコマンドは、特に制限されないが、キーコードのバッファデータレジスタのアドレスとセットすべきキーコードを伴う書き込みコマンドに相当する。それらの動作制御主体はＣＰＵ１１である。キーコードセットコマンドに従ってメモリ制御シーケンサ１２がキーコードの書き込みを開始する（２０２）。特に制限されないが、ここではキーコードの書き込みに４サイクルの書き込みサイクルを要するものとし、書き込みサイクル数を管理するために変数ｎに初期値１をセットし（２０３）、次の書き込みサイクルを実行し（２０４）、書き込みサイクル数が４になるまで、変数ｎをｎ＋１に更新しながら（２０６）ステップ２０４の書き込みを繰り返す（２０５）。その間、ＣＰＵ１１はキーコードセット終了フラグがセットされたか否かを確認しており（２０７）、その前に、書き込みに必要な書き込みベリファイ動作時間が経過したときは（２０８のｙｅｓ）、フラッシュ制御シーケンサ１２が初期化され今回のキーコードセットコマンドによる書き込み要求がクリアされる（２１０）。キーコードセット終了フラグのセットが確認されると（２０７の“１”）、ステータスレジスタＳＲＥＧ等をリードしてエラーの確認を行う（２０９）。即ち、今回の書き込み及びベリファイ動作によってセキュリティ状態がプロテクトロック状態になっていることステータスＳＴＴによって確認する。これによって、不揮発性メモリ部１３にキーコードがセットされて不揮発性記憶装置はプロテクトロック状態になる。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１３２
【補正方法】変更
【補正の内容】
【０１３２】
図１３にはキーコードリセット動作手順が示される。まず、制御モードレジスタＭＲＥＧのセキュリティ制御モードビットＳＣＭに“１”がセットされ（２２０）、次に、メモリ制御シーケンサ１２のコマンドレジスタにキーコードリセットコマンドが書き込まれる（２２１）。キーコードリセットコマンドは、特に制限されないが、キーコード領域のアドレスを特定する消去コマンドに相当する。それらの動作制御主体はＣＰＵ１１である。キーコードリセットコマンドに従ってメモリ制御シーケンサ１２は現在のセキュリティ状態がプロテクトアンロック状態であることを確認してからキーコードの消去を開始する。現在のセキュリティ状態がプロテクトアンロック状態でないときは当該コマンドの受付は拒否される。その間、ＣＰＵ１１はキーコードリセット終了フラグがセットされたか否かを確認しており（２２２）、その前に、消去に必要な消去時間が経過したときは（２２３のｙｅｓ）、フラッシュ制御シーケンサ１２が初期化され今回のキーコードリセットコマンドによる消去要求がクリアされる（２２５）。キーコードリセット終了フラグのセットが確認されると（２２２の“１”）、ステータスレジスタＳＲＥＧ等をリードしてエラーの確認を行う（２２４）。即ち、今回の消去及びベリファイ動作によってセキュリティ状態がアンプロテクトロック状態になっていることステータスＳＴＴによって確認する。これによって、不揮発性記憶装置はアンプロテクト状態にされる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０１３３
【補正方法】変更
【補正の内容】
【０１３３】
図１４にはキーコード認証動作手順が示される。まず、制御モードレジスタＭＲＥＧのセキュリティ制御モードビットＳＣＭに“１”がセットされ（２３０）、次に、メモリ制御シーケンサ１２のコマンドレジスタにキーコード認証コマンドが書き込まれる（２３１）。キーコード認証コマンドは、特に制限されないが、キーコードのバッファデータレジスタのアドレスと認証すべきキーコードを伴う書き込みベリファイコマンドに相当する。それらの動作制御主体はＣＰＵ１１である。キーコード認証コマンドに従ってメモリ制御シーケンサ１２が不揮発性メモリ部１３からキーコードをリードしリードしたキーコードをバッファデータレジスタの認証すべきキーコードと比較するベリファイ動作による認証動作を開始する（２３２）。特に制限されないが、ここではキーコードの認証に４サイクルのベリファイサイクルを要するものとし、ベリファイサイクル数を管理するために変数ｎに初期値１をセットし（２３３）、次のベリファイサイクルを実行し（２３４）、変数
ｎをｎ＋１に更新しながら（２３６）ベリファイサイクル数が４になるまでステップ２３４のベリファイを繰り返す（２３５）。その間、ＣＰＵ１１はキーコード認証終了フラグがセットされたか否かを確認しており（２３７）、その前に、ベリファイに必要なベリファイ動作時間が経過したときは（２３８のｙｅｓ）、フラッシュ制御シーケンサ１２が初期化され今回のキーコード認証コマンドによる認証要求がクリアされる（２４０）。キーコードセット終了フラグのセットが確認されると（２３７の“１”）、ステータスレジスタＳＲＥＧ等をリードしてエラーの確認を行う（２３９）。即ち、今回のキーコード認証動作によってセキュリティ状態がプロテクトアンロック状態になっていることステータスＳＴＴによって確認する。これによって、不揮発性メモリ部１３にキーコードがセットされて不揮発性記憶装置はプロテクトロック状態になる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１４６
【補正方法】変更
【補正の内容】
【０１４６】
市場では、書き込み完了状態（３２２，３２５）であるプロテクトロック状態又はキーコード認証不一致（３２１，３２４）によるプロテクトロック状態において、ＣＰＵ１１は不揮発性記憶装置１４に書き込まれたソフトウェアを実行してアプリケーション動作を行うことができる（３３０）。当然その場合には不揮発性記憶装置１４に対する消去及び書き込み並びにキーコード領域に対する読み出しは阻止されている。アプリケーション動作状態（３３０）においてキーコード認証を行って正当性が判別されれば（３４０）、プロテクトアンロック状態でソフトウェアの書き換えが可能になり（３４１）、ソフトウェア書き込み後に不一致のキーコード認証を行えば（３４３）、再度プロテクトロック状態でアプリケーション動作可能な状態に遷移することができる（３３０）。処理３４１の前記ソフトウェア書き換え後にキーコードリセット動作を行ってキーコードを書き換え（３４２）、その後、不一致のキーコード認証を行えば（３４３）、再度プロテクトロック状態でアプリケーション動作可能な状態に遷移することができる（３３０）。一方、システム解析が必要な場合には、プロテクトロック状態でキーコード認証を行い（３５０）、プロテクトアンロック状態でキーコードリセットを行って（３５１）、アンプロテクト状態に遷移して、ここでエミュレータ等を用いてシステム解析を行うことができる（３５２）。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１５９
【補正方法】変更
【補正の内容】
【０１５９】
前記メモリ制御シーケンサ４１２はメモリアクセス制御と共にセキュリティ制御を行って、不揮発性メモリ部４１３に対する不正な消去及び書き込み並びに読み出しを抑制する。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０１６７
【補正方法】変更
【補正の内容】
【０１６７】
また、セキュリティレベル１及び２のプロテクトロック状態において前記所定の条件下では不揮発性記憶装置４１４が保持する正規のデータは如何なる意味においても不揮発性記憶装置４１４の外部に存在することにはならず、マイクロコンピュータ４００の外部への正規データの出力を阻止しても内部のバスやバッファ上に滞留するという事態も抑制することができる。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】０１７４
【補正方法】変更
【補正の内容】
【０１７４】
前記セキュリティレベル１のプロテクトアンロック状態２Ａにおける認証コマンド実行による認証結果の認証不当（キーコード認証不一致）、又は不揮発性メモリ部４１３にレベル１キーコードがセットされている状態でのマイクロコンピュータ１０のリセット動作により、セキュリティ状態がセキュリティレベル１のプロテクトロック状態３Ａとされる。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０１７６
【補正方法】変更
【補正の内容】
【０１７６】
前記セキュリティレベル２のプロテクトアンロック状態２Ｂにおける認証コマンド実行による認証結果の認証不当（キーコード認証不一致）、又は不揮発性メモリ部４１３にレベル２キーコードがセットされている状態でのマイクロコンピュータ４００のリセット動作により、セキュリティ状態がセキュリティレベル２のプロテクトロック状態３Ｂとされる。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】０１７９
【補正方法】変更
【補正の内容】
【０１７９】
特に、５レベルによるセキュリティ状態の遷移制御を行う本実施の形態によれば、不揮発性記憶装置４１４を単に書き換えるような処理主体に対してはアンプロテクトセキュリティ状態１、レベル２のプロテクトアンロック及びプロテクトロックのセキュリティ状態への遷移だけで運用できる。つまり、インタフェース仕様が公開されるデバッグ専用のデバッグインタフェース回路４１７を使用したマイクロコンピュータ４００内部の不正アクセスによる不揮発性記憶装置４１４に対するアタックが容易に行えないようになる。更に詳述すれば、実施の形態１ではプロテクトロック状態でセキュリティ性を保った状態でも、インサーキットエミュレータのデバッグインタフェースではキーコード認証を実施して一致した場合はエミュレータの接続が許可されデバッグが可能になる。つまり、キーコードは有限な組み合わせのため、組み合わせの総当りなどの攻撃によりキーコードを本来知りえない第三者でもエミュレータの接続が可能になるポテンシャルは残っている。そのため、更なるセキュリティ性の向上のためエミュレータのインタフェースがキーコード認証により接続が許可されるプロテクトロック状態（プロテクトロック状態レベル１）とエミュレータのインタフェースが全く使用できないプロテクトロック状態（プロテクトロック状態レベル２）の２種類の状態のプロテクトロック状態を用意することによって更にセキュリティ性能を向上させる事ができる。一方、システムデバッグの一環として不揮発性記憶装置４１４の書き換えを伴う処理などを行うような処理主体に対してはレベル１のプロテクトアンロック及びプロテクトロックのセキュリティ状態への遷移も可能に運用させることにより、使い勝手の良好なデバッグ環境を提供することが可能になる。