(57)【特許請求の範囲】
【請求項１】
書き換え可能なメモリと、
第１期待値を出力する第１期待値出力回路と、
前記メモリへ誤書き込みされることが保護される第１保護データを格納する第１レジスタと、
前記第１期待値と前記第１保護データとを比較し、その比較結果が一致したか否かを示す第１一致検出信号を出力する第１一致検出回路と、
前記第１一致検出信号が一致したことを示す期間、クロック信号の到来に応じて、カウントアップすると共に、
カウント動作を開始してからオーバーフローするまでの間は一方のレベル、オーバーフローした際は他方のレベルとなる信号を出力するカウンタと、
前記カウンタがカウント動作を開始してからオーバーフローするまでの間、前記一方のレベルを出力する期間、ＣＰＵから前記メモリへの書き込み動作を許可する書き込み許可信号を出力する書き込み制御回路と、
外部のデバック回路からのデバック動作によるプログラム中断を示すブレイク信号に基づき、前記クロック信号をゲートするゲート回路と、を備え
前記カウンタはオーバーフローすると、前記カウンタがオーバーフローした際、前記他方のレベルとすると共に、前記カウンタはカウント動作を停止すると共に、前記第１保護データをリセットすることを特徴とするメモリ制御回路。
【請求項２】
更に、第２期待値を出力する第２期待値出力回路と、
前記メモリへ誤書き込みされることが保護される第２保護データを格納する第２レジスタと、
前記第２期待値と前記第２保護データとを比較し、その比較結果が一致したとき、第２一致検出信号を出力する第２一致検出回路と、を備え、
前記カウンタは、前記第１一致検出信号及び前記第２一致検出信号の夫々が一致を示す期間に、前記クロック信号の到来に応じて、カウントアップすることを特徴とする請求項１記載のメモリ制御回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリ等の不揮発性メモリ等のメモリ制御回路に関し、特に、マイクロコンピュータのデバッグ機能と不揮発性メモリへの書き込みシーケンス及び／又は消去シーケンスに対する保護手段を付加したメモリ制御回路に関する。
【０００２】
【従来の技術】
データを電気的に消去でき且つデータの書き込み及び読み出しできる特性を有する不揮発性メモリを内蔵するマイクロコンピュータにおいて、不揮発性メモリはマイクロコンピュータのプログラム等が書き込まれるメモリとして内蔵される場合があり、これは１チップマイコン（以下、マイコンと称する）と呼ばれる。上述のような１チップマイコンにおいて、前記不揮発性メモリのデータを電気的に消去でき且つデータの書き込み及び読み出しできる利点を利用し、第１記憶領域に各種論理演算を実行させる為のプログラム命令が格納され、第２記憶領域に前記第１記憶領域の内容を書き換える為の書き換え命令が格納され、前記不揮発性メモリの第２記憶領域から読み出された命令に基づき、ＣＰＵが前記不揮発性メモリの第１記憶領域の書き換え処理を行う。また、前記不揮発性メモリへの書き換えを行う際に、誤書き込みを防止するために書き込みシーケンス及び／又は消去シーケンスに対する保護手段を備えている。また、前記１チップマイコンは、マイコンの各種レジスタ等の状態を確認又は設定ができるデバッグ機能を有し、プログラム作成を容易にしている。
【０００３】
図２は、従来の実施例を示すブロック図である。図において、クロック発生回路１は、クロック信号ＣＫを発生させる回路である。
第１期待値出力回路４は例えば、ハードで構成され、所定の固定値が設定される。所定の固定値は例えば、８ビットで構成され、その値は任意に設定される。尚、第１期待値出力回路４は、マイコンの電源が投入されてから所定の固定値が設定されるレジスタ又はＲＡＭ、又は１チップマイコン製造時に所定の固定値が書き込まれるＲＯＭでも良い。また、所定の固定値は特に制限されないが、８ビットで構成される。
第１レジスタ５は、誤書き換えを防止する為の第１保護データがセットされるレジスタであり、ＣＰＵ（図示せず）からバスＢＵＳを介して第１保護データが設定される。第１一致検出回路６は、デコーダで構成され、第１レジスタ５にセットされた第１保護データの値と第１期待値出力回路４の第１期待値が一致した場合に第１一致信号を出力する。
第２期待値出力回路７は例えば、ハードで構成され、所定の固定値が設定される。尚、第２期待値出力回路７は、マイコンの電源が投入されてから所定の固定値が設定されるレジスタ又はＲＡＭ、又は１チップマイコン製造時に所定の固定値が書き込まれるＲＯＭでも良い。また、所定の固定値は特に制限されないが、８ビットで構成される。
第２レジスタ８は、誤書き換えを防止する為の第２保護データがセットされるレジスタであり、ＣＰＵ（図示せず）からバスＢＵＳを介して第２保護データが設定される。第２一致検出回路９は、デコーダで構成され、第２レジスタ８にセットされた第２保護データの値と第２期待値出力回路７の第２期待値が一致した場合に第２一致信号を出力する。
ゲート１０は、第１一致検出回路６から出力される第１一致信号と、第２一致検出回路９から出力される第２一致検出信号と、に基づいて後述のカウンタ１１のカウント動作を許可する信号ＥＮＢを出力する。
カウンタ１１は、バイナリーカウンタで構成され、ゲート１０からの許可信号ＥＮＢが存在する間にクロック信号ＣＫをカウントし、そのカウント期間では信号ＩＮＨを出力する。ゲート１２は、カウンタ１１のカウント動作を継続している間に信号ＩＮＨに応じてＣＰＵからの書き込み開始を指示する書き込み設定データの入力を許可する。この書き込み設定データは、例えば１ビットで構成され「Ｈ」レベルで書き込み開始を示すものである。
レジスタ１３は、ＣＰＵからの書き込み開始を示する書き込み設定データに基づいて信号＊ＷＥを出力する。制御回路１４は、レジスタ１３から出力される信号＊ＷＥの「Ｌ」レベルに応じて、不揮発性メモリ１５へ不揮発性メモリセルの内部書き込み信号ＷＲＴ、消去モード信号ＥＲＡＳＥ、書き込みモード信号ＰＲＯＧＲＡＭを発生する。
不揮発性メモリ１５は、制御回路１４からの書き込み信号ＷＲＴの「Ｈ」レベル、且つ消去モード信号ＥＲＡＳＥの「Ｈ」レベルに応じて所定のメモリセルのデータを消去する。次に、消去モード信号ＥＲＡＳＥが「Ｌ」レベルとなり、書き込み信号ＷＲＴは「Ｈ」レベルのままで書き込みモード信号ＰＲＯＧＲＡＭが「Ｈ」レベルとなると所定のメモリセルに書き込みを行う。
【０００４】
通常における、データを電気的に消去でき且つデータの書き込み及び読み出しできる特性を有する不揮発性メモリへの書き換え処理は、ＣＰＵからの第１保護データが第１レジスタ５にセットされ、第１一致検出回路６において第１レジスタ５にセットされた第１保護データの値と第１期待値の値とが比較され一致した場合に第１一致信号が出力される。次に、ＣＰＵからの第２保護データが第２レジスタ８にセットされ、第２一致検出回路９において第２レジスタ８にセットされた第２保護データの値と第２期待値の値が比較され一致した場合に第２一致信号が出力される。
第１及び第２一致信号が共に存在すると、ゲート１０からカウンタ１１のカウント動作を許可する信号ＥＮＢが出力される。前記信号ＥＮＢに基づきカウンタ１１はカウント動作を開始し、カウント値がオーバーフロー、即ち、カウンタ１１がタイムアップするまでの期間、ゲート１２へＣＰＵからの書き込み設定データ入力を許可する信号ＩＮＨが出力される。信号ＩＮＨに基づいて、ＣＰＵからの書き込み設定データはゲート１２を介して、レジスタ１３に出力され、レジスタ１３にセットされる。レジスタ１３に書き込み設定データがセットされると、さらに制御回路１４へ書き込みを要求する信号＊ＷＥが出力される。制御回路１４は、信号＊ＷＥに基づいて不揮発性メモリへ不揮発性メモリセルの内部書き込み信号ＷＲＴ、消去モード信号ＥＲＡＳＥ、書き込みモード信号ＰＲＯＧＲＡＭを発生する。これらの信号に応じて不揮発性メモリは、メモリセルの消去及び書き込みを行う。
【０００５】
一方、カウンタ１１のカウント値がオーバーフローし、ゲート１２へＣＰＵからの書き込み設定データ入力を禁止すると共に第１レジスタ５及び第２レジスタ８にセットされた第１、第２保護データをリセットする。
これにより、所定の書き換えプログラム処理のみプログラムの書き換えを許可する保護手段を実現している。
【０００６】
尚、第１レジスタ５の第１保護データのセットは、第２レジスタ８へ第２保護データのセットを行ったのちに実行しても良い。第１保護データと第２保護データと２つの保護データを備え、所定の書き込み処理をより制限することにより、書き込みを許可する保護手段の保護効果を高めている。
【０００７】
【発明が解決しようとする課題】
しかし、図２のマイコンにおいて、プログラムの書き換えを行うと同時にマイコンの各種レジスタ等の状態を確認又は設定ができるデバッグ作業を行う場合に、カウンタ１１がカウント動作を開始したのち、デバッグ回路が動作してプログラム実行が中断すると、カウンタ１１がカウント動作を継続しているので、プログラム実行が再開される前にカウンタ１１がオーバーフローした場合、ゲート１２においてＣＰＵからの書き込み設定データ入力が禁止される。この状態でプログラム実行が再開された場合、ＣＰＵからの書き込み設定データをレジスタ１３へセットできなくなるという障害になっていた。その為、所定のプログラム書き換え命令処理が実行できなくなる。
【０００８】
このため、本発明の目的はデバッグ回路の動作によらず所定の書き換え処理を確実に許可し、実行できる保護手段を備えたメモリ制御回路を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、上述した点に鑑みて、創作されたものであり、その特徴とするところは、メモリと、前記メモリの書き込み動作を制御する書き込み制御回路と、該書き込み制御回路による誤書き込みを保護するとともに所定の条件のみ書き込みを許可する保護手段、とを備えるメモリ制御回路において、前記保護手段は、外部回路の実行の中断を示す信号によって、保護手段の書き込み許可状態を保持することを特徴とする。
【００１０】
また、前記メモリへの書き込み開始を示すデータを格納するレジスタと、前記保護手段に所定の時間内にのみ前記レジスタへの設定を許可するためのカウンタを設け、該カウンタ動作に基づいて前記レジスタへの設定を許可するゲートを備えたことを特徴とする。
【００１１】
特に、前記カウンタは、外部回路の実行の中断を示す信号に基づきカウント動作を停止することを特徴とする。
【００１２】
更に、前記ゲートは、外部回路の実行の中断を示す信号に基づき前記カウンタのクロックを遮断することを特徴とする。
【００１３】
更に、前記カウンタは、外部回路の実行の中断を示す信号に基づきカウントの桁上げまたは桁下げを停止することを特徴とする。
【００１４】
本発明によれば、メモリへの誤書き込みを防止するための所定の書き込み処理においてのみ書き込みを許可する保護手段であるカウンタがカウント動作を開始したのち、外部回路の実行が中断された場合、カウンタはカウント動作を停止することにより保護手段の書き込み許可状態を保持する。これにより外部回路の実行が再開されたときに、所定の書き込み処理を実行するためのレジスタ１３への設定が可能となる。
【００１５】
【発明の実施の形態】
本発明の詳細を図面に従って具体的に説明する。図１は本発明を説明するための図であり、保護回路とメモリ制御回路を示す。
図１において、クロック発生回路１、第１期待値出力回路４、第１レジスタ５、第１一致検出回路６、第２期待値出力回路７、第２レジスタ８、第２一致検出回路９、ゲート１０、カウンタ１１、ゲート１２、レジスタ１３、制御回路１４及び不揮発性メモリ１５は、図２と同一の回路であり、図２と同一の符号を付す。本実施形態の特徴とするところは、クロック発生回路１の出力とカウンタ１１の間にクロック信号ＣＫを遮断する制御を行うゲート２を設けた点にある。このゲート２は、プログラムの中断を示す信号ＢＲＫによって制御される。信号ＢＲＫはプログラム実行の中断を示す「Ｈ」レベルになると、前記クロック発生回路１からカウンタ１１へのクロック信号ＣＫを遮断し、信号ＢＲＫが「Ｌ」レベルのときはクロック信号ＣＫをカウンタ１１へ供給する。
【００１６】
次に、プログラムメモリへの書き込み動作を説明する。
ＣＰＵからの第１保護データが第１レジスタ５にセットされ、第１一致検出回路６において第１レジスタ５にセットされた第１保護データの値と第１期待値の値とが比較され一致した場合に「Ｈ」レベルの第１一致信号が出力される。次に、ＣＰＵからの第２保護データが第２レジスタ８にセットされ、第２一致検出回路９において第２レジスタ８にセットされた第２保護データの値と第２期待値の値とが比較され一致した場合に「Ｈ」レベルの第２一致信号が出力される。第１及び第２一致信号が共に「Ｈ」レベルであると、カウンタ１１へ出力するカウント動作を許可する信号ＥＮＢが「Ｈ」レベルとしてゲート１０から出力される。ここで、通常の動作では、デバッグ回路がデバッグ動作によるプログラムの中断を指示していない状態、即ち、プログラムの中断を指示する信号ＢＲＫが「Ｌ」レベルのときにおいては、ゲート２を介してカウンタ１１へクロック信号ＣＫが供給されているので、信号ＥＮＢの「Ｈ」レベルに基づきカウンタ１１はカウント動作を開始し、カウント値がオーバーフローするまでの期間、ゲート１２へＣＰＵからの書き込み設定データ入力を許可する信号ＩＮＨが「Ｈ」レベルとして出力される。信号ＩＮＨの「Ｈ」レベルに基づいて、ＣＰＵからの書き込み設定データがゲート１２を介してレジスタ１３へ供給され、レジスタ１３に書き込み設定データがセットされる。レジスタ１３に記書き込み設定データがセットされると制御回路１４へ書き込み動作を要求する信号＊ＷＥが「Ｌ」レベルとして出力される。制御回路１４は、信号＊ＷＥの「Ｌ」レベルに基づいて不揮発性メモリへ不揮発性メモリセルの内部書き込み信号ＷＲＴ、消去モード信号ＥＲＡＳＥ、書き込みモード信号ＰＲＯＧＲＡＭを発生する。不揮発性メモリ１５は、制御回路１４からの書き込み信号ＷＲＴの「Ｈ」レベル、且つ消去モード信号ＥＲＡＳＥの「Ｈ」レベルに応じて所定のメモリセルのデータを消去する。次に、消去モード信号ＥＲＡＳＥが「Ｌ」レベルとなり、書き込み信号ＷＲＴは「Ｈ」レベルのままで書き込みモード信号ＰＲＯＧＲＡＭが「Ｈ」レベルとなると所定のメモリセルに書き込みを行う。
【００１７】
一方、カウンタ１１がカウント動作を開始したのちにマイコンのデバッグ回路が動作しプログラム実行の中断を指示する信号ＢＲＫが「Ｈ」レベルとなると、即ち、プログラムの実行が中断されたときに、ゲート２においてはカウンタ１１へのクロック信号ＣＫは遮断され、カウンタ１１のカウント動作が停止される。カウンタ１１は、カウント動作を停止されたときのカウント値を保持し、クロック信号ＣＫが再び供給されるまで停止される。次に、デバッグ回路がプログラムの中断が再開されると、信号ＢＲＫは「Ｌ」レベルになり、クロック信号ＣＫはゲート２を介してカウンタ１１へ供給され、それによりカウンタ１１ではカウント動作を停止されたときのカウント値よりカウント動作が再開される。従って、カウンタ１１はオーバーフローする前であるので、ゲート１２へ出力される信号ＩＮＨは「Ｈ」レベルのままとなる。信号ＩＮＨの「Ｈ」レベルに従って、ＣＰＵからの書き込み設定データがレジスタ１３へゲート１２を介して出力され、レジスタ１３に書き込み設定データがセットされる。レジスタ１３は、書き込み設定データをセットされると制御回路１４へ書き込み動作を許可する信号＊ＷＥを「Ｌ」レベルとし、制御回路１４は、信号＊ＷＥの「Ｌ」レベルに基づいて不揮発性メモリへ不揮発性メモリセルの内部書き込み信号ＷＲＴ、消去モード信号ＥＲＡＳＥ、書き込みモード信号ＰＲＯＧＲＡＭを発生する。これにより、不揮発性メモリへの書き換え処理を行うことができるものである。
カウンタ１１は、オーバーフローを示す信号ＯＶＦを「Ｈ」レベルとし、第１レジスタ５及び第２レジスタ８に設定されている保護データをリセットし、同時に、信号ＩＮＨを「Ｌ」レベルとし、これによりレジスタ１３にＣＰＵからの書き込み設定データ入力を禁止する。再び書き込みを行うには、再度、最初の処理である第１レジスタ５及び第２レジスタ８へ第１保護データ及び第２保護データを設定する必要があり、所定の処理においてのみ書き込みを許可する保護手段を実現している。
【００１８】
尚、カウンタ１１のデバッグ動作によるプログラム実行の中断を指示する信号ＢＲＫの「Ｈ」レベルによりカウンタ動作の停止は、カウンタ１１へ供給するクロック信号ＣＫを遮断する手段に制限されない。例えば、カウンタ１１にアップカウンタやダウンカウンタを用いて、カウンタ内の桁上げ信号又は桁下げ信号であるキャリー信号を遮断してもよい。キャリー信号を遮断することによりカウンタのカウント動作を停止することができる。
【００１９】
また、レジスタ１３の書き込み動作を要求する信号＊ＷＥの立下りに基づいて、制御回路１４が、不揮発性メモリへ不揮発性メモリセルの内部書き込み信号ＷＲＴ、消去モード信号ＥＲＡＳＥ、書き込みモード信号ＰＲＯＧＲＡＭを発生する場合は、カウンタ１１が出力するＣＰＵからの書き込み設定データ入力を許可する信号ＩＮＨをレジスタ１３のリセットに用いても同様の効果を得られる。
【００２０】
尚、第１保護データと第２保護データと２つの保護データを備えているが、保護データの数は、１つ或いは３つ以上を備えても良い。また、保護データを備えないで、カウンタ１１の動作を許可する信号ＥＮＢを格納するレジスタを備えても良い。
【００２１】
また、不揮発性メモリ１５として、フラッシュメモリやＥＰＲＯＭ、ＥＥＰＲＯＭが使用することができるが、これに限らずＲＡＭにも適用できる。
【００２２】
【発明の効果】
上述の如く、本発明によれば、不揮発性メモリへの書き込みの際、誤書き込みを防止するための所定の書き込み処理においてのみ書き込みを許可する保護手段にカウンタを備える場合、デバッグ回路の動作に係わらず、保護手段が所定の書き込み処理に対してのみ書き込み許可を確実に実行できる作用効果を奏する。更に、保護手段をデバッグの動作に係わらず確実に実行でるためデバッグを容易にするという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の形態を示すブロック図である。
【図２】従来例を示すブロック図である。
【符号の説明】
１  クロック発生回路
２  制御ゲート
３  保護回路
４  第１期待値出力回路
５  第１レジスタ
６  第１一致検出回路
７  第２期待値出力回路
８  第２レジスタ
９  第２一致検出回路
１０  ゲート
１１  カウンタ
１２  ゲート
１３  レジスタＷＲＴ
１４  制御回路
１５  不揮発性メモリ
【図１】
0004118023.tif 000002
【図２】
0004118023.tif 000003