(57)【要約】【課題】マイクロコンピュータにおけるプログラムの暴走時にレジスタの値を誤書き込みからより確実に保護する。【解決手段】半導体装置は、タイマ４と、保護回路５とを具備する。タイマ４は、保護対象のレジスタ６ａ、７ａへの書き込みを制御する制御信号Ｓ１に応答して、所定の第１時間経過後にタイマ信号ＣＭＰを出力する。保護回路５は、タイマ信号ＣＭＰを受信するまで書き込みを無効とし、タイマ信ＣＭＰ号を受信開始後の所定の第２時間内の書き込みを有効とする。【選択図】図５
2011210182.tif 000002
【特許請求の範囲】
【請求項１】
保護対象のレジスタへの書き込みを制御する制御信号に応答して、所定の第１時間経過後にタイマ信号を出力するタイマと、
前記タイマ信号を受信するまで書き込みを無効とし、前記タイマ信号を受信開始後の所定の第２時間内の書き込みを有効とする保護回路と
を具備する
半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記タイマは、前記第１時間経過後に前記タイマ信号を前記第２時間の間だけ出力し、
前記保護回路は、前記タイマ信号を受信中の書き込みを有効とする
半導体装置。
【請求項３】
請求項１又は２に記載の半導体装置において、
前記保護回路は、
前記保護対象のレジスタへの書き込みを指示する指令信号に応答して、前記制御信号を生成する制御部と、
前記タイマ信号と前記指令信号とに基づいて、前記タイマ信号を受信するまで書き込みを無効とし、前記タイマ信号を受信開始後の前記第２時間内の書き込みを有効とする許可信号を出力する許可部と、
前記許可信号に基づいて、前記保護対象のレジスタへの書き込みを有効又は無効とする演算部と
を備える
半導体装置。
【請求項４】
請求項３に記載の半導体装置において、
前記タイマは、
前記制御信号に応答して、カウントを開始するカウンタと、
前記第１時間に相当するカウント値を保持するカウント値記憶部と、
前記カウンタのカウント値と前記カウント値記憶部に保持されたカウント値とが等しくなった時、前記タイマ信号を出力する比較部と
を備える
半導体装置。
【請求項５】
請求項４に記載の半導体装置において、
前記カウンタは、前記第１時間と前記第２時間とを併せたに時間に相当するカウント値でオーバーフローして、オーバーフロー信号を前記比較部及び前記制御部に出力し、
前記比較部は、前記タイマ信号の出力を停止し、
前記制御部は、前記制御信号の出力を停止する
半導体装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の半導体装置において、
前記保護回路は、更に、前記第２時間外に前記書き込みを受信した場合、割り込み信号又はリセット信号を出力する割り込み部を備える
半導体装置。
【請求項７】
保護対象のレジスタへの書き込みを制御する制御信号に応答して、所定の第１時間経過後にタイマ信号を出力するステップと、
前記タイマ信号を受信するまで書き込みを無効とし、前記タイマ信号を受信開始後の所定の第２時間内の書き込みを有効とするステップと
を具備する
レジスタの保護方法。
【請求項８】
請求項７に記載のレジスタの保護方法において、
前記タイマ信号を出力するステップは、前記第１時間経過後に前記タイマ信号を前記第２時間の間だけ出力するステップを備え、
前記書き込みを無効又は有効とするステップは、前記タイマ信号を受信中の書き込みを有効とするステップを備える
レジスタの保護方法。
【請求項９】
請求項７又は８に記載のレジスタの保護方法において、
前記第２時間外に前記書き込みを受信した場合、割り込み信号又はリセット信号を出力するステップを更に具備する
レジスタの保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特にレジスタ書き込み保護回路を有する半導体装置に関する。
【背景技術】
【０００２】
近年、マイクロコンピュータの応用製品である家電機器に対して、ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ：国際電気標準会議）の安全基準に準拠することが義務付けられた。それに伴い、マイクロコンピュータにもより高度な安全機能が要求されている。一般に、マイクロコンピュータは、周辺環境やノイズや家電機器の他の部分の故障等の影響により、誤動作を起こす可能性が考えられる。その誤動作の原因の一つとして、マイクロコンピュータのプログラムが暴走する可能性が考え得る。マイクロコンピュータのプログラムが暴走すると、重要な設定であって書き換えてはいけないレジスタの値を書き換えてしまう事象が発生し得る。そのようなレジスタの値を確実に保護する技術が望まれている。
【０００３】
マイクロコンピュータにおけるプログラムの暴走時にレジスタの値が変化しないように保護する技術として、特開平１１−０７３３７１号公報（ＵＳ６０２１４６０（Ａ））に、レジスタのプロテクト回路が開示されている。図１は、特開平１１−０７３３７１号公報のレジスタのプロテクト回路の構成を示す回路図である。このレジスタのプロテクト回路は、第１及び第２レジスタ１０２、１０３と、タイマ１１２と、制御手段１１５とを備えている。第１及び第２レジスタ１０２、１０３は、コンピュータにおけるデータバス１０１上のデータが所定間隔で書き込まれる。タイマ１１２は、上記第１レジスタ１０２へのデータ書き込み時に動作を開始し、上記所定間隔に対応する時間が動作開始からオーバーフローするまでの時間として設定されている。制御手段１１５は、上記第１レジスタ１０２にデータが書き込まれた後、上記タイマ１１２がオーバーフローする前に上記第２レジスタ１０３に上記第１レジスタ１０２と同じ値のデータが書き込まれた場合にのみ、保護対象レジスタの値を上記第１レジスタ１０２に書き込まれたデータ値に変更する。
【０００４】
具体的な動作は以下の通りである。まず、正常な場合について説明する。図２は、レジスタのプロテクト回路の動作を示すタイミングチャート（正常時）を示している。図１、図２において、まず、時刻ｔ１において、φｗ１により第１レジスタ１０２のＡの値を書き換える。その後、タイマ１１２でカウントされる一定時間内である時刻ｔ２において、φｗ２により第２レジスタ１０３のＢの値を書き換える。それにより、所定のレジスタへの書き込みを有効として、制御回路１１５からレジスタ制御データＲが、保護対象のレジスタ（図示されず）へ出力される。
【０００５】
次に、異常な場合について説明する。図３は、レジスタのプロテクト回路の動作を示すタイミングチャート（異常時）を示している。図１、図３において、まず、時刻ｔ３において、φｗ１により第１レジスタ１０２のＡの値を書き換える。その後、φｗ２による第２レジスタ１０３でのＢの値の書き換えが起きる前に、タイマ１１２でカウントされる一定時間が経過すると、タイマ１１２からオーバーフローフラグＦが制御回路１１５及び割り込み制御回路１１４に出力される。その結果、制御回路１１５からレジスタ制御データＲは保護対象のレジスタ（図示されず）へ出力されず、割り込み制御回路１１４から割り込み信号又はリセット信号が出力される。これにより、マイクロコンピュータが暴走しても所定のレジスタへの書き込みを無効にでき、且つ暴走を検出できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−０７３３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特開平１１−０７３３７１号公報のレジスタのプロテクト回路（書込み保護回路）では、プログラムにおける書込み保護解除の時刻（第１レジスタ１０２のＡの値の書き換えの時刻に相当）と書込み保護が有効となる時刻（第２レジスタ１０３のＢの値の書き換えの時刻に相当）との間隔はタイマ１１６で設定された一定時間ある。そのため、その一定時間よりも短い間隔で誤書き込みが発生するような暴走モードに陥る可能性が有る。このような場合、レジスタの値が書き変わってしまうという問題が有る。
【０００８】
それは、以下の理由による。上記特開平１１−０７３３７１号公報のレジスタのプロテクト回路では、タイマ１１６がオーバーフローしてから、保護対象のレジスタを保護する。そのため、第１レジスタ１０２でのＡの値の書き換え後であってタイマ１１６がオーバーフローする前に、第２レジスタ１０３でのＢの値への誤書き込みが発生した場合には、この誤書き込みは誤書き込みと認識されず、有効となってしまう。その結果、その誤書き込みにより、レジスタの値が書き変わってしまう。
【０００９】
従来、マイクロコンピュータにおけるプログラムの暴走時に異常な信号が出力される場合、ランダムに異常な信号が発生される場合がほとんどであり、一つのレジスタの値を変更できるように、短時間で連続的に異常な信号（図２におけるφｗ１及びφｗ２）が出力されることは想定されていなかったと考えられる。そのため、記特開平１１−０７３３７１号公報では想定されていなかった、短い間隔で誤書き込みが発生するような暴走モードに陥ると、レジスタの値が書き変わってしまうという問題がある。
【課題を解決するための手段】
【００１０】
以下に、発明を実施するための形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１１】
本発明の半導体装置は、タイマ（４）と、保護回路（５）とを具備する。タイマ（４）は、保護対象のレジスタ（６ａ、７ａ）への書き込みを制御する制御信号（Ｓ１）に応答して、所定の第１時間（Δｔ１）経過後にタイマ信号（ＣＭＰ）を出力する。保護回路（５）は、タイマ信号（ＣＭＰ）を受信するまで書き込み（ＷＲ）を無効とし、タイマ信号（ＣＭＰ）を受信開始後の所定の第２時間（Δｔ２）内の書き込み（ＷＲ）を有効とする。
【００１２】
本発明では、書き込みを制御する制御信号（Ｓ１）の発行後、第１時間（Δｔ１）の間の書き込みを無効とし、第１時間経過後から第２時間（Δｔ２）の間の書き込みを有効としている。すなわち、制御信号（Ｓ１）の発行後における所定の期間の全期間（Δｔ１＋Δｔ２）を書き込み可能とするのではなく、当初の第１時間（Δｔ１）は書き込み無効な期間とし、その後の第２時間（Δｔ２）は書き込み有効な期間（Δｔ２）としている。このように、書き込みを許可するウインドウ期間（Δｔ２）を設けることにより、短い間隔で誤書き込みが発生するような暴走モードにおいても、重要なレジスタへの書き込みをより隔日に保護することが可能となる。
【００１３】
本発明のレジスタの保護方法は、保護対象のレジスタ（６ａ、７ａ）への書き込みを制御する制御信号（Ｓ１）に応答して、所定の第１時間（Δｔ１）経過後にタイマ信号（ＣＭＰ）を出力するステップと、タイマ信号（ＣＭＰ）を受信するまで書き込み（ＷＲ）を無効とし、タイマ信（ＣＭＰ）号を受信開始後の所定の第２時間（Δｔ２）内の書き込み（ＷＲ）を有効とするステップとを具備する。
この場合にも、上記半導体装置の場合と同様の効果を得る事ができる。
【発明の効果】
【００１４】
本発明により、マイクロコンピュータにおけるプログラムの暴走時にレジスタの値を誤書き込みからより確実に保護することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】図１は、特開平１１−０７３３７１号公報のレジスタのプロテクト回路の構成を示す回路図である。
【図２】図２は、レジスタのプロテクト回路の動作を示すタイミングチャート（正常時）を示している。
【図３】図３は、レジスタのプロテクト回路の動作を示すタイミングチャート（異常時）を示している。
【図４】図４は、本発明の実施の形態に係る半導体装置の構成の一例を示すブロック図である。
【図５】図５は、本発明の第１の実施の形態に係る保護回路及びタイマの構成の一例を示すブロック図である。
【図６】図６は、本発明の第１の実施の形態に係る半導体装置の動作（レジスタの保護方法）の一例を示すタイミングチャートである。
【図７】図７は、本発明の第２の実施の形態に係る保護回路及びタイマの構成の一例を示すブロック図である。
【図８】図８は、本発明の第２の実施の形態に係る半導体装置の動作（レジスタの保護方法）の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明のレジスタ書き込み保護回路及び半導体装置の実施の形態に関して、添付図面を参照して説明する。
【００１７】
（第１の実施の形態）
本発明の第１の実施の形態に係る半導体装置の構成について説明する。図４は、本発明の第１の実施の形態に係る半導体装置の構成の一例を示すブロック図である。半導体装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２、メモリ３、タイマ４、保護回路５、マクロ６、７、アドレスデコーダ８、９、１０、バス１１を具備する。ＣＰＵ２、メモリ３、タイマ４、保護回路５、マクロ６、７、アドレスデコーダ８、９、１０は、バス１１を介して接続されている。バス１１は、データバス、ＣＰＵバス、アドレスバス、命令バスなどを含んでいる。
【００１８】
ＣＰＵ２は、コンピュータプログラムに基づいた半導体装置１における情報処理を実行する。メモリ３は、コンピュータプログラムを記録し、ＣＰＵ２が利用する情報や生成する情報を記録する。マクロ６、７は、半導体装置１における情報処理の機能において重要な役割を担うマクロである。
【００１９】
マクロ６、７は、それぞれレジスタ６ａ、７ａを備えている。レジスタ６ａ、７ａは、重要な設定であって、特別な場合を除いて書き換えが許可されないデータが格納されている。マクロ６、７は、例えば、ＣＰＵ２の制御信号に応答して、レジスタ６ａ、７ａのデータを用いて所定の演算を行い、その演算結果をＣＰＵ２に出力する機能や、レジスタ６ａ、７ａのデータをそのままＣＰＵ２に出力する機能を有している。レジスタ６ａ、７ａは、保護回路５による書き込み保護の対象となるレジスタである。なお、ここでは、一例として、マクロが２個の例について記載しているが、本実施の形態がこの例に限定されるものではなく更に多くのマクロを有していてもよい。また、一例として、マクロ内のレジスタが１個の例について記載しているが、本実施の形態がこの例に限定されるものではなく更に多くのレジスタを有していてもよい。また、レジスタはマクロに含まれていなくても良い。
【００２０】
タイマ４は、保護回路５からの信号（Ｓ１）に応答して、保護対象のレジスタ６ａ、７ａを誤書き込みから保護する保護期間、及び、保護を解除して書き込みを可能とする保護の解除期間を設定するための信号（ＣＭＰ、ＯＦ）を保護回路５へ出力する。タイマ４の構成は後述される。
【００２１】
保護回路５は、ＣＰＵ２からの信号（Ｓ０）に基づいて、タイマ４を制御する信号（Ｓ１）をタイマ４へ出力する。そして、タイマ４からの信号（ＣＭＰ、ＯＦ）に基づいて、保護対象のレジスタ６ａ、７ａの保護期間、及び、保護の解除期間を設定する。すなわち、タイマ４からの信号（ＣＭＰ）を受信するまでレジスタ６ａ、７ａへの書き込み（ＷＲ）を無効とし、信号（ＣＭＰ）を受信開始後の所定の時間内（ＯＦ信号を受信するときまで）のレジスタ６ａ、７ａへの書き込み（ＷＲ）を有効とする。保護回路５の構成は後述される。
【００２２】
アドレスデコーダ８は、保護回路５を選択する選択信号ＣＳを保護回路５へ出力する。アドレスデコーダ９は、レジスタ６ａを選択する選択信号ＣＳを保護回路５へ出力する。アドレスデコーダ１０は、レジスタ７ａを選択する選択信号ＣＳを保護回路５へ出力する。
【００２３】
保護回路５は、プロテクトレジスタ部２１、演算部２２、第１演算部２３、２４、第２演算部２５、２６を備えている。
プロテクトレジスタ部２１は、ＣＰＵ２からの信号（Ｓ０）とタイマ４からの信号（ＣＭＰ、ＯＦ）に基づいて、保護の解除期間を示す許可信号Ｃを出力する。演算部２２は、アドレスデコーダ８から出力されるプロテクトレジスタ部２１を選択する選択信号と書き込み信号ＷＲとに基づいて、そのＡＮＤ演算結果を出力する。出力がＨｉｇｈの場合、プロテクトレジスタ部２１が選択される。第１演算部２３は、アドレスデコーダ９から出力されるレジスタ６ａを選択する選択信号ＣＳと許可信号Ｃとに基づいて、そのＡＮＤ演算結果を出力する。出力がＨｉｇｈの場合、レジスタ６ａの書込みが許可されたことになる。第２演算部２５は、第１演算部２３の演算結果と書き込み信号ＷＲ（書き込みを可能化する信号）とに基づいて、そのＡＮＤ演算結果を出力する。第１演算部２３の演算結果がＨｉｇｈの場合には書き込みが可能化されることになる。その結果、レジスタ６ａは、データバス（バス１１）からのデータ書き込みが可能になる。それにより、レジスタ６ａのデータが書き換えられる。第１演算部２４は、アドレスデコーダ１０から出力されるレジスタ７ａを選択する選択信号ＣＳと許可信号Ｃとに基づいて、そのＡＮＤ演算結果を出力する。出力がＨｉｇｈの場合、レジスタ７ａの書込みが許可されたことになる。第２演算部２６は、第１演算部２４の演算結果と書き込み信号ＷＲとに基づいて、そのＡＮＤ演算結果を出力する。第１演算部２４の演算結果がＨｉｇｈの場合には書き込みが可能化されることになる。その結果、レジスタ７ａは、データバス（バス１１）からのデータ書き込みが可能になる。それにより、レジスタ７ａのデータが書き換えられる。
【００２４】
レジスタがさらに増える場合には、例えば、レジスタ１個につき、アドレスデコーダ、第１演算部、及び第２演算部の組を設けることで、更に多数のレジスタに対しても拡張することができる。
【００２５】
このように、保護回路５は、保護対象のレジスタ６ａ、７ａの選択信号ＣＳをマスクして、誤書き込みから保護することができる。そして、この保護回路５による書込み保護は、タイマ４で制御されている。以下、保護回路５及びタイマ４による書込み保護の詳細について説明する。
【００２６】
図５は、本発明の第１の実施の形態に係る保護回路及びタイマの構成の一例を示すブロック図である。プロテクトレジスタ部２１は、制御部４１と、許可部４２とを備えている。この図では、レジスタ６ａに係る構成を代表して説明する。
【００２７】
制御部４１は、保護対象のレジスタ（６ａ、７ａ、…）ごとに設けられた制御ビット設定部を有している。制御部４１は、例えばＣＰＵ２からの保護対象のレジスタ６ａへの書き込みを指示する指令信号Ｓ０に応答して、レジスタ６ａ用に設けられた制御ビット設定部に制御ビット“１”をセットし、その制御ビット“１”を示す制御信号Ｓ１をタイマ４及び許可部４２に出力する。また、制御部４１は、カウンタ３１からオーバーフロー信号ＯＦを受信した場合、制御ビットをリセットして、制御信号Ｓ１の出力を停止する。
【００２８】
許可部４２は、タイマ４が制御信号Ｓ１を受信した後に出力するタイマ信号ＣＭＰと、制御信号Ｓ１（制御ビット“１”）、とに基づいて、タイマ信号ＣＭＰを受信するまで書き込み信号ＷＲを無効とし、タイマ信ＣＭＰ号を受信開始後の第２時間Δｔ２（ＯＦ信号を受信するときまで）の書き込み信号ＷＲを有効とする許可信号Ｃを出力する。すなわち、プロテクトレジスタ部２１は、タイマ信号ＣＭＰを受信中の書き込み信号ＷＲを有効とする。
【００２９】
第１演算部２３（、２４）は、許可信号Ｃが出力される場合（Ｈｉｇｈレベル）、保護対象のレジスタ６ａ（、７ａ）を選択する選択信号ＣＳを有効（Ｈｉｇｈレベル）にして、第２演算部２５（、２６）へ出力する。また、許可信号Ｃが出力されない場合（Ｌｏｗレベル）、保護対象のレジスタ６ａ（、７ａ）を選択する選択信号ＣＳを無効（Ｌｏｗレベル）にして、第２演算部２５（、２６）へ出力する。
【００３０】
第２演算部２５（、２６）は、選択信号ＣＳが有効な場合（Ｈｉｇｈレベル）、書き込み信号ＷＲを有効（Ｈｉｇｈレベル）にして、保護対象のレジスタ６ａ（、７ａ）へ出力する。レジスタ６ａ（、７ａ）は、書き込み信号ＷＲが有効なので、データバス（バス１１）からのデータ書き込みが可能化され、データの書き込みが実行される。また、選択信号ＣＳが無効な場合（Ｌｏｗレベル）、書き込み信号ＷＲを無効（Ｌｏｗレベル）にして、保護対象のレジスタ６ａ（、７ａ）へ出力する。レジスタ６ａ（、７ａ）は、書き込み信号ＷＲが無効なので、データバス（バス１１）からのデータ書き込みが可能化されず、データの書き込みが停止される。
【００３１】
タイマ４は、カウンタ３１と、カウント値記憶部３２と、比較部３３とを備えている。
カウンタ３１は、制御信号Ｓ１に応答して、予め設定された時間（第１時間Δｔ１＋第２時間Δｔ２）に相当する第１カウント値までカウントを開始する。また、カウンタ３１は、その第１カウント値でオーバーフローして、オーバーフロー信号ＯＦを比較部３３及び制御部４１に出力する。
【００３２】
カウント値記憶部３２は、予め設定された時間（第１時間Δｔ１）に相当する第２カウント値を保持する。
【００３３】
比較部３３はカウンタ３１のカウント値とカウント値記憶部３２に保持された第２カウント値とが等しくなった時（第１時間Δｔ１経過時）、タイマ信号ＣＭＰを演算部４２へ出力する。また、比較部３３は、カウンタ３１からオーバーフロー信号ＯＦを受信した場合（第２時間Δｔ２経過時）、タイマ信号ＣＭＰの出力を停止する。すなわち、比較部３３は、第１時間Δｔ１経過後に、タイマ信号ＣＭＰを第２時間Δｔ２の間だけ出力する。
【００３４】
次に、本発明の第１の実施の形態に係る半導体装置の動作（レジスタの保護方法）について説明する。図６は、本発明の第１の実施の形態に係る半導体装置の動作（レジスタの保護方法）の一例を示すタイミングチャートである。ここで、「制御ビット」は、保護対象のレジスタに対応して設けられた制御部４１の制御ビットの値（制御信号Ｓ１）を示す。「カウント値」は、カウンタ３１のカウント値を示す。「ＣＭＰ」は比較部３３からのタイマ信号ＣＭＰを示す。「Ｃ」は、許可部４２からの許可信号Ｃを示す。「ＷＲ」は、書き込み信号ＷＲを示す。横軸は時間である。以下では、レジスタ６ａに対する書き込み保護について説明する。
【００３５】
制御部４１が、ＣＰＵ２からレジスタ６ａへの書き込み指令を示す制御信号Ｓ０を受信すると、レジスタ６ａに対応する制御ビットが設定される。それにより、その制御ビットを示す制御信号Ｓ１がＨｉｇｈレベルになる。その制御信号Ｓ１に応答して、カウンタ３１がカウントを開始する（時刻ｔ１）。
【００３６】
比較部３３は、カウンタ３１のカウント値がカウント値記憶部３２の第２カウント値に達するまでは、タイマ信号ＣＭＰを出力しない（Ｌｏｗレベル）。そのため、タイマ信号ＣＭＰを出力しない段階では、許可部４２の許可信号ＣもＬｏｗレベルとなる。その結果、第１演算部２３、第２演算部２５の出力はＬｏｗレベルとなる。それにより、この段階での書き込み信号ＷＲは無効となり、レジスタ６ａに対する書き込みは行われない。すなわち、仮に選択信号ＣＳでレジスタ６ａが選択され、書き込み信号ＷＲが入力されたとしても、レジスタ６ａに対して書き込み可能期間（保護の解除期間）ではないので、自動的に、書込みができない保護状態になっている。
【００３７】
比較部３３は、カウンタ３１のカウント値がカウント値記憶部３２の第２カウント値に達すると、タイマ信号ＣＭＰを出力する（Ｈｉｇｈレベル）。それに伴い、制御信号Ｓ１とタイマ信号ＣＭＰとにより、許可部４２の許可信号ＣもＨｉｇｈレベルとなる（時刻ｔ１から第１時間Δｔ１経過；時刻ｔ２）。その結果、第１演算部２３、第２演算部２５の出力はＨｉｇｈレベルとなる。それにより、この段階において、レジスタ６ａが選択され（選択信号ＣＳがＨｉｇｈレベル）、書き込み信号ＷＲが入力された（書き込み信号ＷＲがＨｉｇｈレベル）場合、第１演算部２３、第２演算部２５の出力はＨｉｇｈレベルとなり、レジスタ６ａに対する書き込みが有効になる。すなわち、レジスタ６ａに対して保護の解除期間なので、自動的に、書込みができる状態になっている。このタイミングで、ＣＰＵ２からデータバス（バス１１）経由でデータが入力されることで、レジスタ６ａに対する書き込みが行われる。
【００３８】
カウンタ３１は、カウント値が第１カウント値に達すると、オーバーフロー信号ＯＦを制御部４１及び比較部３３に出力する。比較部３３は、オーバーフロー信号ＯＦの受信により、タイマ信号ＣＭＰの出力を停止する。制御部４１は、制御ビットをリセットする（時刻ｔ２から第２時間Δｔ２経過；時刻ｔ３）。それにより、制御信号Ｓ１がＬｏｗレベルとなる。これらの結果、許可信号ＣがＬｏｗレベルとなり、それ以降の書き込みが無効となる。
【００３９】
制御ビットがセットされる（時刻ｔ１）と同時にタイマ４でカウントアップされ、一定のカウント値になってから（時刻ｔ２）、オーバーフローするまでの間（時刻ｔ３）、許可部４２の許可信号ＣがＨｉｇｈレベルとなり、この期間書き込みが有効にされる。それ以外の区間（時刻ｔ１より前、時刻ｔ１〜ｔ２、及び時刻ｔ３以降）の書き込み信号ＷＲは無効となる。
【００４０】
このような動作により、本実施の形態に係るレジスタの保護方法が実行される。
【００４１】
なお、上記実施の形態では、許可部４２は、タイマ信号ＣＭＰの出力中に許可信号ＣをＨｉｇｈレベルにして出力している。しかし、許可部４２の構成やタイマ信号ＣＭＰや許可信号Ｃの出力方法はこの例に限定されるものではない。例えば、時刻ｔ２でタイマ信号ＣＭＰを一時的にＨｉｇｈレベルとし、更に時刻ｔ３でタイマ信号ＣＭＰを一時的にＨｉｇｈレベルとするようにして、最初のＨｉｇｈレベルの時から次のＨｉｇｈレベルの時までを許可信号ＣをＨｉｇｈレベルにして出力するように許可部４２を構成しても良い。このような構成は既存の論理回路で構成可能である。
【００４２】
上述した通り、本実施の形態では、ＣＰＵ２からの制御信号Ｓ０入力後において、タイマ４により、所定の第２カウント値までの書き込みを無効とし、第２カウント値からオーバーフローまでの書き込みを有効とする機能を設けている。これにより、プログラムにおける書き込み保護解除期間（タイマ信号ＣＭＰの出力期間：時刻ｔ２〜ｔ３）と書き込み操作（制御信号Ｓ０又はＳ１の生成：時刻ｔ１）との間に時間が空き（第１時間Δｔ１）、相関関係が薄れることで、短い時間間隔で発生する誤書き込みからレジスタを保護できる。
【００４３】
すなわち、本実施の形態では、書き込みを制御する制御信号Ｓ１の発行後、第１時間Δｔ１の間の書き込みを無効とし、第１時間Δｔ１経過後から第２時間Δｔ２の間の書き込みを有効としている。すなわち、制御信号Ｓ１の発行後における所定の期間の全期間Δｔ１＋Δｔ２を書き込み可能とするのではなく、当初の第１時間Δｔ１は書き込み無効な期間とし、その後の第２時間Δｔ２は書き込み有効な期間Δｔ２としている。このように、書き込みを許可するウインドウ期間Δｔ２を設けることにより、短い間隔で誤書き込みが発生するような暴走モードにおいても、重要なレジスタへの書き込みをより隔日に保護することが可能となる。
【００４４】
（第２の実施の形態）
本発明の第２の実施の形態に係る半導体装置の構成について説明する。第２の実施の形態では、第１の実施の形態の構成に加えて、書き込み保護の解除期間（時刻ｔ２〜ｔ３（第２時間Δｔ２））ではないときに、書き込みが行われた場合、割り込み信号又はリセット信号を出力する機能を追加している。以下、追加された機能について説明する。
【００４５】
図７は、本発明の第２の実施の形態に係る保護回路及びタイマの構成の一例を示すブロック図である。本実施の形態の保護回路５では、演算部２７及び割り込み部２８を有している。演算部２７は、保護対象のレジスタ６ａ、７ａごとに設けられ、対応するレジスタが選択され（選択信号ＣＳがＨｉｇｈレベル）、書き込み信号ＷＲを受信した場合、その書き込み信号ＷＲを割り込み部２８へ出力する。割り込み部２８は、許可信号Ｃを受信していないとき、書き込み信号ＷＲを受信した場合、不正な書き込みが行われようとしたとして、割り込み信号又はリセット信号を出力する。
【００４６】
また、カウント値記憶部３２はＣＰＵバス（バス１１）に接続され、ＣＰＵ２により第２カウント値が書き換え可能となっている。
【００４７】
その他の構成は、第１の実施の形態と同様であるので、その説明を省略する。
【００４８】
次に、本発明の第２の実施の形態に係る半導体装置の動作（レジスタの保護方法）について説明する。図８は、本発明の第２の実施の形態に係る半導体装置の動作（レジスタの保護方法）の一例を示すタイミングチャートである。ここで、「制御ビット」は、保護対象のレジスタに対応して設けられた制御部４１の制御ビットの値（制御信号Ｓ１）を示す。「カウント値」は、カウンタ３１のカウント値を示す。「ＣＭＰ」は比較部３３からのタイマ信号ＣＭＰを示す。「Ｃ」は、許可部４２からの許可信号Ｃを示す。「ＷＲ」は、書き込み信号ＷＲを示す。「割り込み信号／リセット信号」は、割り込み部２８からの割り込み信号又はリセット信号を示す。横軸は時間である。以下では、レジスタ６ａに対する書き込み保護について説明するが、割り込み信号／リセット信号以外は第１の実施の形態と同様であるので、割り込み信号／リセット信号についてのみ説明する。
【００４９】
時刻ｔ１より前から時刻ｔ２まで、及び、時刻ｔ３より後では、書き込みが許可されておらず、許可信号ＣがＬｏｗレベルである。このとき、割り込み部２８は、演算部２７経由で書き込み信号ＷＲ（Ｈｉｇｈレベル）を受信した場合、割り込み信号又はリセット信号を出力する。それにより、タイマ４が予め設定された所定の第２カウント値になってからオーバーフローするまでの期間（時刻ｔ２〜ｔ３：第２時間Δｔ２）以外の期間での不正な書き込みが発生した場合、不正な書き込みに対応した処理を実行することができる。
【００５０】
このような動作により、本実施の形態に係るレジスタの保護方法が実行される。
【００５１】
本実施の形態により、第１の実施の形態と同様の効果を得ることができる。加えて、マイクロコンピュータが暴走したとき、レジスタへの不正な書き込みを保護するだけでなく、割り込み信号、又はリセット信号を出力し、暴走したことを検出することで、システムを復帰又は安全に停止させることができる。
【００５２】
本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。
【符号の説明】
【００５３】
１    半導体装置
２    ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
３    メモリ
４    タイマ
５    保護回路
６、７    マクロ
６ａ、７ａ    レジスタ
８、９、１０    アドレスデコーダ
１１    バス
２１    プロテクトレジスタ部
２２、２７    演算部
２３、２４    第１演算部
２５、２６    第２演算部
２８    割り込み部
３１    カウンタ
３２    カウント値記憶部
３３    比較部
４１    制御部
４２    許可部
【図１】
2011210182.tif 000003
【図２】
2011210182.tif 000004
【図３】
2011210182.tif 000005
【図４】
2011210182.tif 000006
【図５】
2011210182.tif 000007
【図６】
2011210182.tif 000008
【図７】
2011210182.tif 000009
【図８】
2011210182.tif 000010