(57)【要約】【課題】保護レジスタに対しての不正な書き込みを防止すると共に不正な書き込みを検出することにより、早期に誤動作を防止することができるレジスタ保護装置を提供することを課題とする。【解決手段】データを記憶するための保護レジスタ（１２６ａ）と、前記保護レジスタに書き込みを行うためのマスターキーコードを記憶するマスターキーコード記憶部（１０６ａ）と、入力キーコードと前記マスターキーコードとが一致するか否かを比較する比較回路（１０７ａ）と、前記比較回路による比較結果が一致のときには前記保護レジスタの書き込み許可フラグをセットし、前記比較回路による比較結果が不一致のときには前記保護レジスタの書き込み許可フラグをセットしない許可フラグ設定回路（１０９ａ）と、前記比較回路による比較結果が不一致のときにはリセット信号又は割り込み信号を出力する第１の信号出力回路（１１３）とを有するレジスタ保護装置が提供される。【選択図】図１
2008204387.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するための保護レジスタと、
前記保護レジスタに書き込みを行うためのマスターキーコードを記憶するマスターキーコード記憶部と、
入力キーコードと前記マスターキーコードとが一致するか否かを比較する比較回路と、
前記比較回路による比較結果が一致のときには前記保護レジスタの書き込み許可フラグをセットし、前記比較回路による比較結果が不一致のときには前記保護レジスタの書き込み許可フラグをセットしない許可フラグ設定回路と、
前記比較回路による比較結果が不一致のときにはリセット信号又は割り込み信号を出力する第１の信号出力回路と
を有することを特徴とするレジスタ保護装置。
【請求項２】
前記保護レジスタは複数設けられ、
前記マスターキーコード記憶部は、前記複数の保護レジスタに対応して複数のマスターキーコードを記憶し、
前記比較回路は、前記入力キーコードと前記複数のマスターキーコードとが一致するか否かを比較し、
前記許可フラグ設定回路は、前記入力キーコードがいずれかのマスターキーコードと一致したときには一致したマスターキーコードに対応する保護レジスタの書き込み許可フラグをセットし、前記入力キーコードがすべてのマスターキーコードと不一致のときにはすべての保護レジスタの書き込み許可フラグをセットせず、
前記第１の信号出力回路は、前記入力キーコードがすべてのマスターキーコードと不一致のときにはリセット信号又は割り込み信号を出力することを特徴とする請求項１記載のレジスタ保護装置。
【請求項３】
さらに、前記保護レジスタへの書き込み信号が入力されたときに、前記書き込みフラグがセットされていないときにはリセット信号又は割り込み信号を出力する第２の信号出力回路と、
前記保護レジスタへの書き込み信号が入力されたときに、前記書き込みフラグがセットされているときには前記保護レジスタへの書き込みを行い、前記書き込みフラグがセットされていないときには前記保護レジスタへの書き込みを行わない書き込み回路と
を有することを特徴とする請求項１記載のレジスタ保護装置。
【請求項４】
データを記憶するための保護レジスタと、
前記保護レジスタに書き込みを行うためのマスターキーコードを記憶するマスターキーコード記憶部と、
入力キーコードと前記マスターキーコードとが一致するか否かを比較する比較回路と、
前記比較回路による比較結果が一致のときには前記保護レジスタの書き込み許可フラグをセットし、前記比較回路による比較結果が不一致のときには前記保護レジスタの書き込み許可フラグをセットしない許可フラグ設定回路と、
前記保護レジスタへの書き込み信号が入力されたときに、前記書き込みフラグがセットされていないときにはリセット信号又は割り込み信号を出力する第１の信号出力回路と、
前記保護レジスタへの書き込み信号が入力されたときに、前記書き込みフラグがセットされているときには前記保護レジスタへの書き込みを行い、前記書き込みフラグがセットされていないときには前記保護レジスタへの書き込みを行わない書き込み回路と
を有することを特徴とするレジスタ保護装置。
【請求項５】
前記保護レジスタは複数設けられ、
前記マスターキーコード記憶部は、前記複数の保護レジスタに対応して複数のマスターキーコードを記憶し、
前記比較回路は、前記入力キーコードと前記複数のマスターキーコードとが一致するか否かを比較し、
前記許可フラグ設定回路は、前記入力キーコードがいずれかのマスターキーコードと一致したときには一致したマスターキーコードに対応する保護レジスタの書き込み許可フラグをセットし、前記入力キーコードがすべてのマスターキーコードと不一致のときにはすべての保護レジスタの書き込み許可フラグをセットせず、
前記第１の信号出力回路は、前記複数の保護レジスタのうちの１個の保護レジスタへの書き込み信号が入力されたときに、前記書き込み信号が入力された保護レジスタに対応する書き込み許可フラグがセットされていないときにはリセット信号又は割り込み信号を出力することを特徴とする請求項４記載のレジスタ保護装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レジスタ保護装置に関し、特にレジスタへの不正書き込みを防止するレジスタ保護装置に関する。
【背景技術】
【０００２】
従来、マイクロコントローラにおいて、動作モードやクロックを制御するような重要なレジスタへの書き込みアクセスは、キーレジスタへの正しいキー設定を必要とすることで保護していた。しかし、暴走や不正アクセス等によってキーレジスタへ誤ったキーを設定したり、キーを設定せずに重要なレジスタへ不正な書き込みアクセスをしても書き換えられないだけでアラームを出力するような機構はなかった。そのため、みすみすマイクロコントローラの暴走や不正アクセス等を見逃してシステムが誤動作に陥ったり、誤動作に対する対処が遅れる可能性があった。
【０００３】
下記の特許文献１には、クロック周波数、オーバーフロー判定値などの組み合わせをＣＰＵが実行するアプリケーションのプログラムに合わせてモード指定でき、且つ、ＣＰＵの暴走等によってユーザの意図しないモード変更が発生しないように防御性を向上させたウォッチドッグタイマが記載されている。
【０００４】
また、下記の特許文献２には、フィールド・プログラマブル・ゲート・アレイ内に外部回路から内部ロジックへのアクセスを制御するゲート回路を設け、予め内部の許可キー設定レジスタに設定された許可キーと前記外部回路から入力される許可キーとを一致比較し、一致した場合に前記ゲート回路のロックを解除して前記外部回路から内部ロジックへのアクセスを許可することを特徴とする回路構成特定防止方法が記載されている。
【０００５】
【特許文献１】特開２００３−１５０４１０号公報
【特許文献２】特開２００６−１８５７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、保護レジスタに対しての不正な書き込みを防止すると共に、不正な書き込みを検出することにより、早期に誤動作を防止することができるレジスタ保護装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明のレジスタ保護装置は、データを記憶するための保護レジスタと、前記保護レジスタに書き込みを行うためのマスターキーコードを記憶するマスターキーコード記憶部と、入力キーコードと前記マスターキーコードとが一致するか否かを比較する比較回路と、前記比較回路による比較結果が一致のときには前記保護レジスタの書き込み許可フラグをセットし、前記比較回路による比較結果が不一致のときには前記保護レジスタの書き込み許可フラグをセットしない許可フラグ設定回路と、前記比較回路による結果が不一致のときにはリセット信号又は割り込み信号を出力する第１の信号出力回路とを有することを特徴とする。
【０００８】
また、本発明のレジスタ保護装置は、データを記憶するための保護レジスタと、前記保護レジスタに書き込みを行うためのマスターキーコードを記憶するマスターキーコード記憶部と、入力キーコードと前記マスターキーコードとが一致するか否かを比較する比較回路と、前記比較回路による比較結果が一致のときには前記保護レジスタの書き込み許可フラグをセットし、前記比較回路による比較結果が不一致のときには前記保護レジスタの書き込み許可フラグをセットしない許可フラグ設定回路と、前記保護レジスタへの書き込み信号が入力されたときに、前記書き込みフラグがセットされていないときにはリセット信号又は割り込み信号を出力する第１の信号出力回路と、前記保護レジスタへの書き込み信号が入力されたときに、前記書き込みフラグがセットされているときには前記保護レジスタへの書き込みを行い、前記書き込みフラグがセットされていないときには前記保護レジスタへの書き込みを行わない書き込み回路とを有することを特徴とする。
【発明の効果】
【０００９】
リセット信号又は割り込み信号が出力されるので、保護レジスタへの不正な書き込みを検出することができ、早期に誤動作を防止することができる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施形態によるマイクロコントローラ１００のレジスタ保護装置の構成例を示す図である。レジスタ保護装置は、第１の重要レジスタ１２６ａ及び第２の重要レジスタ１２６ｂへの不正書き込みを防止することができる。重要レジスタ１２６ａ及び１２６ｂは、保護すべきデータを記憶するための保護レジスタである。ＣＰＵ１０１は、第１の重要レジスタ１２６ａにデータを書き込む場合には、その前に、第１のマスターキーコード記憶部１０６ａに記憶されている第１のマスターキーコードと同じキーコードをキーコードレジスタ１０５に書き込む必要がある。また、ＣＰＵ１０１は、第２の重要レジスタ１２６ｂにデータを書き込む場合には、その前に、第２のマスターキーコード記憶部１０６ｂに記憶されている第２のマスターキーコードと同じキーコードをキーコードレジスタ１０５に書き込む必要がある。
【００１１】
まず、ＣＰＵ１０１は、キーコードレジスタ１０５にキーコードを書き込むため、内部バス１０２を介して、キーコードレジスタ１０５にキーコードを出力し、アドレスデコード部１０３にキーコードレジスタ１０５のアドレスを出力し、書き込みパルス（書き込み信号）ＷＰを出力する。書き込みパルスＷＰは、値「１」の正のパルス信号である。アドレスデコード部１０３は、ＣＰＵ１０１から入力したアドレスがキーコードレジスタ１０５のアドレスであるときには「１」を出力し、キーコードレジスタ１０５のアドレスでないときには「０」を出力する。論理積（ＡＮＤ）回路１０４は、アドレスデコード部１０３の出力信号及び書き込みパルスＷＰの論理積信号を出力する。すなわち、ＡＮＤ回路１０４は、アドレスデコード部１０３が「１」を出力しているときには書き込みパルスＷＰをそのまま出力し、アドレスデコード部１０３が「０」を出力しているときには書き込みパルスＷＰを出力せずに「０」を出力する。キーコードレジスタ１０５は、ＡＮＤ回路１０４の出力信号が書き込みパルスＷＰであるときにはＣＰＵ１０１から入力したキーコードを書き込み、ＡＮＤ回路１０４の出力信号が「０」であるときにはＣＰＵ１０１から入力したキーコードを書き込まない。
【００１２】
第１のマスターキーコード記憶部１０６ａは、第１の重要レジスタ１２６ａに書き込みを行うための第１のマスターキーコードを記憶する。第２のマスターキーコード記憶部１０６ｂは、第２の重要レジスタ１２６ｂに書き込みを行うための第２のマスターキーコードを記憶する。マスターキーコード記憶部１０６ａ及び１０６ｂは、複数の重要レジスタ１２６ａ及び１２６ｂに対応して複数のマスターキーコードを記憶する。
【００１３】
比較回路１０７ａは、キーコードレジスタ１０５が記憶しているキーコードと第１のマスターキーコード記憶部１０６ａが記憶している第１のマスターキーコードとが一致するか否かを比較し、一致しているときには「１」を出力し、不一致のときには「０」を出力する。比較回路１０７ｂは、キーコードレジスタ１０５が記憶しているキーコードと第２のマスターキーコード記憶部１０６ｂが記憶している第２のマスターキーコードとが一致するか否かを比較し、一致しているときには「１」を出力し、不一致のときには「０」を出力する。
【００１４】
判定部１１０は、ＡＮＤ回路１１１及び１１２を有する。ＡＮＤ回路１１１は、比較回路１０７ａの出力信号の論理反転信号と比較回路１０７ｂの出力信号の論理反転信号との論理積信号を出力する。ＡＮＤ回路１１２は、ＡＮＤ回路１０４の出力信号とＡＮＤ回路１１１の出力信号との論理積信号を出力する。すなわち、ＡＮＤ回路１１２は、ＡＮＤ回路１０４が書き込み信号ＷＰを出力し、かつ比較回路１０７ａ及び１０７ｂが「０」を出力したときに「１」を出力する。ＪＫフリップフロップ１１３は、Ｊ入力端子がＡＮＤ回路１１２の出力端子に接続され、出力端子及びＫ入力端子が相互に接続される。ＡＮＤ回路１１２が「１」を出力すると、ＪＫフリップフロップ１１３は内部状態をセットし、リセット信号又は割り込み信号１３１として「１」を出力する。すなわち、キーコードレジスタ１０５にキーコードの書き込みが行われたときに、その書き込まれたキーコードが第１のマスターキーコード及び第２のマスターキーコードのいずれとも一致しないときに、不正アクセスとしてリセット信号又は割り込み信号１３１として「１」を出力する。リセット信号又は割り込み信号１３１は、「１」がアクティブ状態を示し、「０」が非アクティブ状態を示す。リセット信号又は割り込み信号１３１が「１」になると、ＪＫフリップフロップ１１３は内部状態をリセットし、リセット信号又は割り込み信号１３１が「０」になる。すなわち、リセット信号又は割り込み信号１３１は正のパルス信号になる。マイクロコントローラ１００は、「１」のリセット信号又は割り込み信号１３１を基にリセット処理又は割り込み処理を行い、早期に誤動作を防止することができる。
【００１５】
ＡＮＤ回路１０８ａは、ＡＮＤ回路１０４の出力信号と比較回路１０７ａの出力信号との論理積信号を出力する。ＪＫフリップフロップ１０９ａは、Ｊ入力端子がＡＮＤ回路１０８ａの出力端子に接続される。ＡＮＤ回路１０８ａが「１」を出力すると、ＪＫフリップフロップ１０９ａは、第１の重要レジスタ１２６ａの書き込み許可フラグ１３２ａとして「１」を出力する。書き込み許可フラグ１３２ａは、「１」が第１の重要レジスタ１２６ａへの書き込み許可を示し、「０」が第１の重要レジスタ１２６ａへの書き込み不許可を示す。すなわち、キーコードレジスタ１０５にキーコードの書き込みが行われ、その書き込まれたキーコードが第１のマスターキーコードと一致したときには、ＪＫフリップフロップ１０９ａは「１」の書き込み許可フラグ１３２ａを出力する。
【００１６】
ＡＮＤ回路１０８ｂは、ＡＮＤ回路１０４の出力信号と比較回路１０７ｂの出力信号との論理積信号を出力する。ＪＫフリップフロップ１０９ｂは、Ｊ入力端子がＡＮＤ回路１０８ｂの出力端子に接続される。ＡＮＤ回路１０８ｂが「１」を出力すると、ＪＫフリップフロップ１０９ｂは、第２の重要レジスタ１２６ｂの書き込み許可フラグ１３２ｂとして「１」を出力する。書き込み許可フラグ１３２ｂは、「１」が第２の重要レジスタ１２６ｂへの書き込み許可を示し、「０」が第２の重要レジスタ１２６ｂへの書き込み不許可を示す。すなわち、キーコードレジスタ１０５にキーコードの書き込みが行われ、その書き込まれたキーコードが第２のマスターキーコードと一致したときには、ＪＫフリップフロップ１０９ｂは「１」の書き込み許可フラグ１３２ｂを出力する。
【００１７】
次に、ＣＰＵ１０１は、第１の重要レジスタ１２６ａ又は第２の重要レジスタ１２６ｂにデータを書き込む。まず、ＣＰＵ１０１が第１の重要レジスタ１２６ａにデータを書き込む場合を説明する。
【００１８】
ＣＰＵ１０１は、第１の重要レジスタ１２６ａにデータを書き込むため、内部バス１０２を介して、第１の重要レジスタ１２６ａにデータを出力し、アドレスデコード部１２１ａに第１の重要レジスタ１２６ａのアドレスを出力し、書き込みパルスＷＰを出力する。アドレスデコード部１２１ａは、ＣＰＵ１０１から入力したアドレスが第１の重要レジスタ１２６ａのアドレスであるときには「１」を出力し、第１の重要レジスタ１２６ａのアドレスでないときには「０」を出力する。ＡＮＤ回路１２２ａは、アドレスデコード部１２１ａの出力信号、書き込み許可フラグ１３２ａ及び書き込みパルスＷＰの論理積信号を出力する。すなわち、ＡＮＤ回路１２２ａは、アドレスデコード部１２１ａが「１」を出力しかつ書き込み許可フラグ１３２ａが「１」であるときには書き込みパルスＷＰをそのまま出力し、それ以外のときには書き込みパルスＷＰを出力せずに「０」を出力する。第１の重要レジスタ１２６ａは、ＡＮＤ回路１２２ａの出力信号が書き込みパルスＷＰであるときにはＣＰＵ１０１から入力したデータを書き込み、ＡＮＤ回路１２２ａの出力信号が「０」であるときにはＣＰＵ１０１から入力したデータを書き込まない。また、ＡＮＤ回路１２２ａの出力信号が書き込みパルスＷＰであるときには、ＪＫフリップフロップ１０９ａは内部状態をリセットし、「０」の書き込み許可フラグ１３２ａを出力する。
【００１９】
判定部１２３ａは、否定（ＮＯＴ）回路１２４ａ及びＡＮＤ回路１２５ａを有する。ＮＯＴ回路１２４ａは、書き込み許可フラグ１３２ａの論理反転信号を出力する。ＡＮＤ回路１２５ａは、ＮＯＴ回路１２４ａの出力信号とアドレスデコード部１２１ａの出力信号と書き込みパルスＷＰとの論理積信号を出力する。ＪＫフリップフロップ１２７ａは、Ｊ入力端子がＡＮＤ回路１２５ａの出力端子に接続され、出力端子及びＫ入力端子が相互に接続される。ＡＮＤ回路１２５ａが「１」を出力すると、ＪＫフリップフロップ１２７ａは内部状態をセットし、リセット信号又は割り込み信号１３３ａとして「１」を出力する。すなわち、ＪＫフリップフロップ１２７ａは、第１の重要レジスタ１２６ａのアドレスと共に書き込みパルスＷＰが入力されたときに、書き込み許可フラグ１３２ａが「０」であるときには書き込み許可されていないのでリセット信号又は割り込み信号１３３ａとして「１」を出力し、書き込み許可フラグ１３２ａが「１」であるときには書き込み許可されているのでリセット信号又は割り込み信号１３３ａとして「０」を出力する。リセット信号又は割り込み信号１３３ａは、「１」がアクティブ状態を示し、「０」が非アクティブ状態を示す。リセット信号又は割り込み信号１３３ａが「１」になると、ＪＫフリップフロップ１２７ａは内部状態をリセットし、リセット信号又は割り込み信号１３３ａが「０」になる。すなわち、第１の保護レジスタ１２６ａへの不正書き込みが行われると、リセット信号又は割り込み信号１３３ａは正のパルス信号になる。マイクロコントローラ１００は、「１」のリセット信号又は割り込み信号１３３ａを基にリセット処理又は割り込み処理を行い、早期に誤動作を防止することができる。
【００２０】
次に、ＣＰＵ１０１が第２の重要レジスタ１２６ｂにデータを書き込む場合を説明する。ＣＰＵ１０１は、第２の重要レジスタ１２６ｂにデータを書き込むため、内部バス１０２を介して、第２の重要レジスタ１２６ｂにデータを出力し、アドレスデコード部１２１ｂに第２の重要レジスタ１２６ｂのアドレスを出力し、書き込みパルスＷＰを出力する。アドレスデコード部１２１ｂは、ＣＰＵ１０１から入力したアドレスが第２の重要レジスタ１２６ｂのアドレスであるときには「１」を出力し、第２の重要レジスタ１２６ｂのアドレスでないときには「０」を出力する。ＡＮＤ回路１２２ｂは、アドレスデコード部１２１ｂの出力信号、書き込み許可フラグ１３２ｂ及び書き込みパルスＷＰの論理積信号を出力する。すなわち、ＡＮＤ回路１２２ｂは、アドレスデコード部１２１ｂが「１」を出力しかつ書き込み許可フラグ１３２ｂが「１」であるときには書き込みパルスＷＰをそのまま出力し、それ以外のときには書き込みパルスＷＰを出力せずに「０」を出力する。第２の重要レジスタ１２６ｂは、ＡＮＤ回路１２２ｂの出力信号が書き込みパルスＷＰであるときにはＣＰＵ１０１から入力したデータを書き込み、ＡＮＤ回路１２２ｂの出力信号が「０」であるときにはＣＰＵ１０１から入力したデータを書き込まない。また、ＡＮＤ回路１２２ｂの出力信号が書き込みパルスＷＰであるときには、ＪＫフリップフロップ１０９ｂは内部状態をリセットし、「０」の書き込み許可フラグ１３２ｂを出力する。
【００２１】
判定部１２３ｂは、ＮＯＴ回路１２４ｂ及びＡＮＤ回路１２５ｂを有する。ＮＯＴ回路１２４ｂは、書き込み許可フラグ１３２ｂの論理反転信号を出力する。ＡＮＤ回路１２５ｂは、ＮＯＴ回路１２４ｂの出力信号とアドレスデコード部１２１ｂの出力信号と書き込みパルスＷＰとの論理積信号を出力する。ＪＫフリップフロップ１２７ｂは、Ｊ入力端子がＡＮＤ回路１２５ｂの出力端子に接続され、出力端子及びＫ入力端子が相互に接続される。ＡＮＤ回路１２５ｂが「１」を出力すると、ＪＫフリップフロップ１２７ｂは内部状態をセットし、リセット信号又は割り込み信号１３３ｂとして「１」を出力する。すなわち、ＪＫフリップフロップ１２７ｂは、第２の重要レジスタ１２６ｂのアドレスと共に書き込みパルスＷＰが入力されたときに、書き込み許可フラグ１３２ｂが「０」であるときには書き込み許可されていないのでリセット信号又は割り込み信号１３３ｂとして「１」を出力し、書き込み許可フラグ１３２ｂが「１」であるときには書き込み許可されているのでリセット信号又は割り込み信号１３３ｂとして「０」を出力する。リセット信号又は割り込み信号１３３ｂは、「１」がアクティブ状態を示し、「０」が非アクティブ状態を示す。リセット信号又は割り込み信号１３３ｂが「１」になると、ＪＫフリップフロップ１２７ｂは内部状態をリセットし、リセット信号又は割り込み信号１３３ｂが「０」になる。すなわち、第２の保護レジスタ１２６ｂへの不正書き込みが行われると、リセット信号又は割り込み信号１３３ｂは正のパルス信号になる。マイクロコントローラ１００は、「１」のリセット信号又は割り込み信号１３３ｂを基にリセット処理又は割り込み処理を行い、早期に誤動作を防止することができる。
【００２２】
以上のように、マイクロコントローラ１００では、例えば動作モードやクロックを制御するためのデータを記憶する重要レジスタを保護するためのマスターキーコードを重要レジスタ毎に有する。キーコードレジスタ１０５へ書き込まれたキーコードがマスターキーコードと一致した場合には、その重要レジスタが持つ書き込み許可フラグ１３２ａ又は１３２ｂがセットされ、重要レジスタへの書き込みが可能となる。入力キーコードがどのマスターキーコードにも一致しない不正なキーコードがキーコードレジスタ１０５に書き込まれた場合には、暴走又は不正アクセスと判断し、リセット又は割り込みを発生する。また、キーコードレジスタ１０５へ書き込まれたキーコードがマスターキーコードと一致した場合に書き込み許可フラグ１３２ａ又は１３２ｂがセットされ、重要レジスタへの書き込み時に書き込み許可フラグ１３２ａ又は１３２ｂを判定することで、キーコードレジスタ１０５に正しいキーコードを書き込まずに重要レジスタへの書き込みを行った場合に、暴走又は不正アクセスと判断し、リセット又は割り込みを発生させる。
【００２３】
キーコードレジスタ１０５へ第１又は第２のマスターキーコードと同じキーコードが書き込まれた場合、対象となる重要レジスタの書き込み許可フラグ１３２ａ又は１３２ｂがセットされ、重要レジスタ１２６ａ又は１２６ｂへの書き込みが可能となる。重要レジスタ１２６ａ又は１２６ｂへの書き込みと同時に重要レジスタの書き込み許可フラグ１３２ａ又は１３２ｂはリセットされ、重要レジスタ１２６ａ又は１２６ｂへの書き込みは禁止される。この方法によれば、各々の重要レジスタ１２６ａ，１２６ｂ毎に書き込み許可フラグ１３２ａ，１３２ｂを有することで、一括保護ではなく、個別に保護できるので安全性をより高めることができる。
【００２４】
また、暴走又は不正アクセス発生時には、キーコードレジスタ１０５への書き込みキーコードが、どのマスターキーコードとも一致しなかった場合（判定部１１０で判定）、暴走又は不正アクセス動作と判断し、リセット又は割り込み動作を発生させる。一方、重要レジスタへの書き込みの際は、各重要レジスタの書き込み許可フラグ１３２ａ又は１３２ｂがセットされているかを判定部１２３ａ又は１２３ｂで判定する。この時、書き込み許可フラグ１３２ａ又は１３２ｂがセットされていない状態で、重要レジスタ１２６ａ又は１２６ｂへの書き込みアクセスが発生した場合は、暴走又は不正アクセス動作と判断し、リセット又は割り込み動作を発生させる。
【００２５】
図２は、本実施形態によるマイクロコントローラのレジスタ保護装置のキーコード書き込み処理を示すフローチャートである。まず、ステップＳ２０１では、ＣＰＵ１０１は、キーコードレジスタ１０５にキーコードを書き込む。次に、ステップＳ２０２では、比較回路１０７ａはキーコードレジスタ１０５のキーコードと第１のマスターキーコード記憶部１０６ａの第１のマスターキーコードとが一致しているか否かを比較し、比較回路１０７ｂはキーコードレジスタ１０５のキーコードと第２のマスターキーコード記憶部１０６ｂの第２のマスターキーコードとが一致しているか否かを比較する。キーコードが第１又は第２のマスターキーコードに一致したときにはステップＳ２０３へ進み、キーコードが第１及び第２のマスターキーコードのいずれとも一致しないときにはステップＳ２０４へ進む。ステップＳ２０３では、ＪＫフリップフロップ１０９ａはキーコードが第１のマスターキーコードに一致したときには第１の重要レジスタ１２６ａの書き込み許可フラグ１３２ａを「１」にセットして出力し、ＪＫフリップフロップ１０９ｂはキーコードが第２のマスターキーコードに一致したときには第２の重要レジスタ１２６ｂの書き込み許可フラグ１３２ｂを「１」にセットして出力する。ステップＳ２０４では、ＪＫフリップフロップ１１３は、「１」のリセット信号又は割り込み信号１３１を出力する。
【００２６】
図３は、本実施形態によるマイクロコントローラのレジスタ保護装置の重要レジスタ書き込み処理を示すフローチャートである。まず、ステップＳ３０１では、ＣＰＵ１０１は、第１の重要レジスタ１２６ａ又は第２の重要レジスタ１２６ｂにデータを書き込むためにデータ、アドレス及び書き込みパルスＷＰを出力する。次に、ステップＳ３０２では、第１の重要レジスタ１２６ａへの書き込み処理があったときには判定部１２５ａは書き込み許可フラグ１３２ａが「１」にセットされているか否かを判定し、第２の重要レジスタ１２６ｂへの書き込み処理があったときには判定部１２５ｂは書き込み許可フラグ１３２ｂが「１」にセットされているか否かを判定する。書き込み許可フラグ１３２ａ又は１３２ｂが「１」にセットされているときにはステップＳ３０３へ進み、「１」にセットされていないときにはステップＳ３０５へ進む。ステップＳ３０５では、ＪＫフリップフロップ１２７ａ又は１２７ｂは「１」のリセット信号又は割り込み信号１３３ａ又は１３３ｂを出力する。ステップＳ３０３では、第１の重要レジスタ１２６ａ又は第２の重要レジスタ１２６ｂは、データを書き込む。次に、ステップＳ３０４では、ＪＫフリップフロップ１０９ａ又は１０９ｂは、書き込み許可フラグ１３２ａ又は１３２ｂを「０」にクリア（リセット）する。
【００２７】
以上のように、本実施形態では、重要レジスタ１２６ａ，１２６ｂはデータを記憶するための保護レジスタであり、マスターキーコード記憶部１０６ａ，１０６ｂは、重要レジスタ１２６ａ，１２６ｂに書き込みを行うためのマスターキーコードを記憶する。比較回路１０７ａ，１０７ｂは、入力キーコードと前記マスターキーコードとが一致するか否かを比較する。ＪＫフリップフロップ１０９ａ，１０９ｂは、前記比較結果が一致のときには重要レジスタの書き込み許可フラグ１３２ａ又は１３２ｂをセットし、前記比較結果が不一致のときには重要レジスタの書き込み許可フラグ１３２ａ及び１３２ｂをセットしない許可フラグ設定回路である。ＪＫフリップフロップ１１３は、前記比較結果が不一致のときにはリセット信号又は割り込み信号１３１を出力する第１の信号出力回路である。
【００２８】
ＪＫフリップフロップ１２７ａ，１２７ｂは、重要レジスタ１２６ａ又は１２６ｂへの書き込み信号ＷＰが入力されたときに、書き込みフラグ１３２ａ又は１３２ｂがセットされていないときにはリセット信号又は割り込み信号１３３ａ又は１３３ｂを出力する第２の信号出力回路である。ＡＮＤ回路１２２ａ，１２２ｂは、重要レジスタ１２６ａ又は１２６ｂへの書き込み信号ＷＰが入力されたときに、書き込みフラグ１３２ａ又は１３２ｂがセットされているときには重要レジスタ１２６ａ又は１２６ｂへの書き込みを行い、書き込みフラグ１３２ａ又は１３２ｂがセットされていないときには重要レジスタ１２６ａ又は１２６ｂへの書き込みを行わない書き込み回路である。
【００２９】
なお、上記では２個の重要レジスタ１２６ａ及び１２６ｂのデータを保護する場合を例に説明したが、重要レジスタは２個に限定されず１個でも３個以上でもよい。
【００３０】
重要レジスタ１２６ａ，１２６ｂ等は複数設けられる。マスターキーコード記憶部１０６ａ，１０６ｂ等は、複数の重要レジスタ１２６ａ，１２６ｂ等に対応して複数のマスターキーコードを記憶する。比較回路１０７ａ，１０７ｂ等は、入力キーコードと前記複数のマスターキーコードとが一致するか否かを比較する。ＪＫフリップフロップ（許可フラグ設定回路）１０９ａ，１０９ｂ等は、前記入力キーコードがいずれかのマスターキーコードと一致したときには一致したマスターキーコードに対応する重要レジスタの書き込み許可フラグ１３２ａ，１３２ｂ等をセットし、前記入力キーコードがすべてのマスターキーコードと不一致のときにはすべての重要レジスタの書き込み許可フラグ１３２ａ，１３２ｂ等をセットしない。ＪＫフリップフロップ（第１の信号出力回路）１３１は、前記入力キーコードがすべてのマスターキーコードと不一致のときにはリセット信号又は割り込み信号１３１を出力する。ＪＫフリップフロップ（第２の信号出力回路）１２７ａ，１２７ｂ等は、前記複数の重要レジスタ１２６ａ，１２６ｂ等のうちの１個の重要レジスタへの書き込み信号ＷＰが入力されたときに、前記書き込み信号ＷＰが入力された重要レジスタに対応する書き込み許可フラグ１３２ａ，１３２ｂ等がセットされていないときにはリセット信号又は割り込み信号１３３ａ，１３３ｂ等を出力する。
【００３１】
本実施形態によれば、マイクロコントローラ１００の重要レジスタに対しての不正な書き込みを防止すると共に、不正な書き込みを検出することにより、深刻な誤動作に陥ることをいち早く防止できる。
【００３２】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施形態によるマイクロコントローラのレジスタ保護装置の構成例を示す図である。
【図２】本実施形態によるマイクロコントローラのレジスタ保護装置のキーコード書き込み処理を示すフローチャートである。
【図３】本実施形態によるマイクロコントローラのレジスタ保護装置の重要レジスタ書き込み処理を示すフローチャートである。
【符号の説明】
【００３４】
１００  マイクロコントローラ
１０１  ＣＰＵ
１０２  内部バス
１０３，１２１ａ，１２１ｂ  アドレスデコード部
１０５  キーコードレジスタ
１０６ａ  第１のマスターキーコード記憶部
１０６ｂ  第２のマスターキーコード記憶部
１０７ａ，１０７ｂ  比較回路
１１０，１２３ａ，１２３ｂ  判定部
１２６ａ  第１の重要レジスタ
１２６ｂ  第２の重要レジスタ
【図１】
2008204387.tif 000003
【図２】
2008204387.tif 000004
【図３】
2008204387.tif 000005