(57)【特許請求の範囲】
【請求項１】
Ｎビット幅を有する電気的にデータの一括消去が可能な不揮発性メモリをＭ個有する不揮発性メモリ装置と、マイコン制御部とを備え、Ｍ個の前記不揮発性メモリを見かけ上1個のメモリとして用いるマイクロコンピュータの書き込み終了の判別方法において、
前記マイコン制御部は、内部の記憶手段に書き込みデータを保持すると共に、前記不揮発性メモリ装置のデータ入力部に書き込みデータを格納し、
前記不揮発性メモリ装置は、前記データ入力部に書き込みデータが格納されたことを検出すると、Ｍ個の前記不揮発性メモリへの書き込みを開始すると共に、書き込み中は、前記データ入力部に格納されている書き込みデータの内の一部データを反転したデータを出力データとして前記マイコン制御部に出力し、書き込みが終了すると、書き込みデータが書き込まれたＭ個の前記不揮発性メモリから、前記データ入力部の前記一部データに対応するデータを読み出し、読み出した当該データと前記データ入力部の前記一部データとの一致が検出されると、前記データ入力部の前記一部データを非反転としたデータを出力データとして前記マイコン制御部に出力し、
前記マイコン制御部は、前記不揮発性メモリ装置からの出力データが前記記憶手段に保持する書き込みデータの内の対応するデータに対して反転していると、書き込みが実行されていると判別し、前記不揮発性メモリ装置からの出力データが前記記憶手段に保持する書き込みデータの内の対応するデータと一致すると、書き込みが終了したと判別することを特徴とするマイクロコンピュータの書き込み終了の判別方法。
【請求項２】
前記データ入力部に格納された書き込みデータの内の前記一部データは、Ｍ個の前記不揮発性メモリの書き込み領域の最終アドレスにおける所定ビット目に書き込まれるデータであることを特徴とする請求項1記載のマイクロコンピュータの書き込み終了の判別方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば８ビット幅のメモリを使用して見かけ上１６ビット幅のメモリとして用いるマイクロコンピュータの書き込み終了の判別方法に関する。
【０００２】
【従来の技術】
一般に、マイクロコンピュータには動作制御用のプログラムが記憶されるマスクＲＯＭやデータが記憶されるＲＡＭが内蔵されている。一方で、メモリーとして、書き込まれたデータの電気的な一括消去が可能な不揮発性メモリ（フラッシュメモリ）が知られており、最近ではマイクロコンピュータにおいて前記マスクＲＯＭ及びＲＡＭの代わりに不揮発性メモリが内蔵されるようになった。不揮発性メモリがマイクロコンピュータに内蔵されると、不揮発性メモリが電気的に書き込み済みデータの消去が可能なため、動作制御用のプログラムの書き換えが可能となる利点がある。その為、不揮発性メモリをマイクロコンピュータに内蔵する用途が多くなっている。
【０００３】
【発明が解決しようとする課題】
ところで、これまでは８ビット幅のメモリを内蔵するマイクロコンピュータが主流であったが、近年では１６ビット型のマイクロコンピュータが開発されている。１６ビット型のマイクロコンピュータの中には、８ビット幅の不揮発性メモリを２個並列に使用して見かけ上１６ビット幅の不揮発性メモリとして使うマイクロコンピュータがある。このようなマイクロコンピュータにおいて、マイクロコンピュータ上で不揮発性メモリへのデータ書き換え（自己書き込み）を行うものがあった。
【０００４】
しかしながら、通常は、上記のようなマイクロコンピュータでは、マイコン制御部（マイコンコア）も８ビット用から１６ビット用に構成を変更しなければ、１６ビット型マイクロコンピュータを動作させることはできない。この８ビットから１６ビットへの変更は、マイコン制御部の構成も大幅に改良しなくてはならない。特に、自己書き込みの為のプログラムデータも１６ビット用に対応して大幅に変更する必要があった。また、この改良に伴い、集積化したときチップ面積の増大や回路特性の変動が起こり、簡単に回路変更を行うことはできなかった。
【０００５】
そこで、本発明は、８ビット用のマイコン制御部をそのまま流用して、チップ面積の増大や回路特性の変動を招くことなく、１６ビット用のマイクロコンピュータを容易に実現することを目的とする。
【０００６】
【課題を解決するための手段】
本発明は、Ｎビット幅を有する電気的にデータの一括消去可能な不揮発性メモリをＭ個使用して見かけ上１個のメモリとして用いるマイクロコンピュータにおいて、書き込みデータを前記不揮発性メモリに書き込みを開始し、書き込みの間、前記不揮発性メモリの各々における所定ビット目のデータ出力を監視し、データ出力の状態に応じて書き込みが終了したことを判別することを特徴とする。
【０００７】
また、書き込み中、前記不揮発性メモリのデータ出力を反転し、反転データが書き込みデータに対して反転していると、書き込みが実行されていると判別し、続いて前記不揮発性メモリのデータ出力を非反転し、非反転データが書き込みデータと一致すると、書き込みが終了したと判別することを特徴とする。
特に、前記データ出力は、書き込みデータが書き込まれる前記不揮発性メモリ領域の最終アドレスにおける所定ビット目のデータ出力であることを特徴とする。
【０００８】
本発明によれば、各々の不揮発性メモリの所定ビット目のデータ出力の変化を監視することによって、データ出力が変化することにより書き込みが終了したことを判別する。
【０００９】
【発明の実施の形態】
図１は本発明の実施の形態を示す図であり、１は、カウント値に応じてアドレス信号を発生するプログラムカウンター（ＰＣ）２と、プログラムデータを各種命令にデコードするインストラクションデコーダー（ＩＤＥＣ）３と、外部ＲＡＭにアドレス信号を発生するＲＡＭ用アドレス回路４と、データ書き込みの状態がフラグとして書き込まれるアキュムレータ（ＡＣＣ）５及びフラグ（ＣＦ）６と、データを一時格納するレジスタ７とを有するマイコン制御部、８は、プログラムが書き込まれるＲＯＭ領域とデータが書き込まれるＲＡＭ領域として使用され、アドレス制御部８Ａ、データ入力部８Ｂ及びデータ出力部８Ｃを有するとともに、ライト信号の発生数をカウントするカウンタ８０１、内部ライトを開始させるスタート信号発生回路８０２、データ入力部８Ｂに格納されたデータからの出力データとこのデータのインバータ８０３による反転データとを選択する第１選択回路８０４、第１選択回路８０４とデータ出力部８Ｃとの出力データを選択する第２選択回路８０５、書き込もうとするデータと書き込まれたデータとの一致をとる一致回路８０６、及び、第１及び第２選択回路８０４及び８０５を制御する選択制御回路８０７とを内蔵し、８ビット幅の不揮発性メモリ８Ｌ及び８Ｈを２個使い１６ビット幅のメモリとして用いられている不揮発性メモリ、９はアドレス部９Ａ及びデータ出力部９Ｂを有し、不揮発性メモリ８Ａ及び８ＢのＲＡＭ領域のデータを書き換える為のプログラムが書き込まれるＲＯＭ、１０はマイコン制御部１からのアドレス信号を不揮発性メモリ８及びＲＯＭ９に選択して転送する第１セレクタ、１１は不揮発性メモリ８及びＲＯＭ９の出力データを選択してマイコン制御部１に転送する第２セレクタである。
【００１０】
図１において、外部割り込み命令に起因した不揮発性メモリ８のＲＡＭ領域のデータ書き換えについて図２のフローチャートを参照して説明する。
データ書き換えを説明する前に、不揮発性メモリ８のＲＯＭ領域として使用された領域に書き込まれているプログラムに従ったマイクロコンピュータの動作について説明する。マイコン制御部１内のＰＣ２のカウント値がインクリメントされ、カウント値に応じてアドレス信号ａが発生する。アドレス信号ａは第１セレクタ１０を介して不揮発性メモリ８のアドレス部８Ａに入力される。第１セレクタ１０はマイコン制御部１からのセレクト信号SEにより切り換えられ、マイクロコンピュータを不揮発性メモリ８中のプログラムで実行させる場合にはセレクト信号SEによって不揮発性メモリ８側に切り換わる。
【００１１】
尚、不揮発性メモリ８及びＲＯＭ９のアドレスは同一に付されており、ＲＯＭ領域には００００Ｈ〜００ＦＦＨのアドレスが付されている。そこで、第１セレクタ１０に不揮発性メモリ８またはＲＯＭ９のアドレスか否か検出して、自動的にアドレス信号の出力ラインを切り換えるようにしてもよい。さらに、検出されたアドレスの上位ビットを第２セレクタ１１に入力させ、アドレス信号ａに応じて不揮発性メモリ８及びＲＯＭ９の出力データの一方を選択させても良い。
【００１２】
不揮発性メモリ８において、アドレス信号ａはアドレス回路８Ａでデコードされ、不揮発性メモリ部８Ｌ及び８Ｈのアドレスが指定される。８ビット幅の不揮発性メモリ８Ｌ及び８Ｈは１つの１６ビット幅のメモリとして扱われ、アドレスで指定された１６ビットのプログラムデータが読み出され、データ出力部８Ｃから出力される。通常リード時、選択制御回路８０７の制御により、第２選択回路８０５はデータ出力部８Ｃの出力データを選択するように制御される。よって、データ出力部８Ｃからの出力プログラムデータは第２セレクタ１１に入力される。
【００１３】
プログラムデータは、セレクト信号SEによって不揮発性メモリ８の出力データを選択する第２セレクタ１１を介してマイコン制御部１に入力される。プログラムデータはＩＤＥＣ３でプログラム命令にデコードされ、各種動作が実行される。その後、ＰＣ２のカウント値がインクリメントされ、不揮発性メモリ８の次のアドレスが指定され、プログラムデータに応じて各種命令が実行される。マイクロコンピュータの通常動作は上記動作を繰り返して行われる。
【００１４】
通常動作中、外部より割り込みが発生し、不揮発性メモリ８のＲＡＭとして扱われる領域のデータ書き換えの要求が起こる（Ｓ１）。すると、ＰＣカウンタは所定のカウント値にセットされ、所定のアドレス信号が発生することにより、不揮発性メモリ部８Ｌ及び８Ｈのデータ書き換えを行うプログラムが書き込まれたＲＯＭ９のアドレスが指定される。ＲＯＭ９のアドレス指定と同時に、セレクト信号SEの状態が変更され、第１セレクタ１０はアドレス信号ａをＲＯＭ９に転送し、第２セレクタ１１はＲＯＭ９の出力データを選択するように切り換わる（Ｓ２）。
【００１５】
その後、ＰＣ２がインクリメントされ、ＲＯＭ９のアドレスが指定され、ＲＯＭ９からプログラムデータが読み出され、第２セレクタ１１を介してマイコン制御部１に入力される。ＩＤＥＣ３でデコードされた命令によって、データ書き換えプログラムが実行される。書き換えプログラムに従って、まず外部ＲＡＭ１２のアドレスが指定され、書き込まれるべきデータが読み出される。読み出された１２８ワード分のデータはマイコン制御部１のレジスタ７に保持される。１２８ワードのデータがすべてレジスタ７に保持されると、不揮発性メモリ８のデータ入力部８Ｂへの転送が開始される。
【００１６】
データ入力部８Ｂは不揮発性メモリ８の一部に構成される。そこで、マイコン制御部１のＰＣ２からアドレスデータが発生し、データ入力部８Ｂのアドレスが指定される。その後、レジスタ７に保持されていたデータが出力され、続いてライト信号ＷＥが出力されることにより前記データがデータ入力部８Ｂに書き込まれる。このような動作を１２８回繰り返すことにより、１２８ワード分のデータがデータ入力部８Ｂに書き込まれる（Ｓ３）。一方、ライト信号ＷＥはカウンタ８０１にも入力され、ライト信号ＷＥが何回出力されたか検出される。つまり、カウンタ８０１によりデータ入力部８Ｂへの書き込みの回数が検出される。データ入力部８Ｂに１２８回書き込みが行われると、カウンタ８０１のカウント値が１２８になり、データ入力部８Ｂへの書き込みが１２８ワード分行われたとしてカウンタ８０１から出力が発生する。この出力に応じてスタート信号発生回路８０２からスタート信号ｂが発生する。
【００１７】
スタート信号ｂはアドレス制御部８Ａに入力され、内部書き込み動作が開始される。アドレス制御部８Ａはスタート信号ｂに応じてデータ入力部８Ｂに格納されたデータを不揮発性メモリ８Ｈ及び８Ｌに書き込む回路を内蔵している。つまり、アドレス制御部８Ａは不揮発性メモリ８Ｈ及び８Ｌの書き込み開始アドレスを設定し、開始アドレスから１２８個のアドレスを順次指定し、指定される毎にデータ入力部８Ｂからデータを読み出し、指定された不揮発性メモリ８Ｈ及び８Ｌのアドレスに書き込む（Ｓ４）。ところで、８ビット幅の不揮発性メモリ部８Ｌ及び８Ｈは同一のアドレスを有しているので、１つのアドレスを指定することにより不揮発性メモリ８Ｌ及び８Ｈの１６ビットのデータ領域の指定が可能となる。
【００１８】
また、スタート信号ｂは選択制御回路８０７にも入力される。スタート信号ｂに基づいて、第１選択回路８０４はインバータ８０３の出力信号を選択し、第２選択回路８０５は第１選択回路８０４の出力信号を選択するように制御される。データ入力部８Ｂは、書き込まれたデータのうち、少なくとも１２８アドレス目の８ビット及び１６ビット目のデータＤ７及びＤ１５を外部に出力可能な構成に成されている。その為、第２選択回路８０４の出力端にはデータ入力部８Ｂの反転出力データ＊Ｄ７及び＊Ｄ１５が発生する。
【００１９】
この反転データは第２セレクタ１１を介してマイコン制御部１に入力され、マイコン制御部１において、不揮発性メモリ部８Ｌ及び８Ｈの書き換えが開始され、不揮発性メモリ部８Ｌ及び８ＨのデータＤ７及びＤ１５の値が監視され始める。具体的には、前記反転データ＊Ｄ７及び＊Ｄ１５が、レジスタ７に保持された１２８アドレス目のデータＤ７及びＤ１５に対して反転しているか否か確認される。言い換えれば、ＲＡＭ１２中の１２８ワード目のデータに対して反転しているか確認される（Ｓ５）。
【００２０】
データＤ７及びＤ１５が互いに反転状態になっていれば、書き込み中であると認識し、次のステップに移行する。反転されていなければ、この反転していない状態を第１所定時間だけ監視する（Ｓ６）。さらに反転していない状態が第１所定時間を超えた場合、書き込みが全く実行されなかったとして、フラグＣＦを１の状態にセットする（Ｓ７）。
【００２１】
Ｓ５において、書き込みが実行されていると認識されると、次にデータ入力部８Ｂの１２８ワード目のデータＤ７及びＤ１５がレジスタ７中のデータと一致するか確認される。まず、内部書き込み動作が終了すると、書き込まれた不揮発性メモリ８Ｈ及び８Ｌの１２８ワード目のデータＤ７及びＤ１５が一致検出回路８０６に入力され、データ入力部８Ｂの１２８ワード目のデータＤ７及びＤ１５と一致するか検出される。一致が取れた場合、一致検出回路８０６の出力信号に応じて、選択制御回路８０７は第１選択回路８０４をデータ入力部８Ｂの非反転の出力データを選択するように、第２選択回路８０５を第１選択回路８０４の出力を選択するように制御する。よって、不揮発性メモリ８Ｈ及び８Ｌへの正確な書き込みが実行されると、入力データ部８Ｂの１２８ワード目のデータＤ７及びＤ１５が反転状態から非反転状態へ切り換わる。その後、データＤ７及びＤ１５はマイコン制御部１に入力され、レジスタ７中の１２８ワード目のデータＤ７及びＤ１５と一致するか否か確認される（Ｓ８）。一致すれば、書き込みが完了したと認識して、フラグＣＦの状態を０にセットする（Ｓ９）。その後、ＲＯＭ９の書き換えプログラムを終了して、割り込みが入る前の不揮発性メモリ８Ｈ及び８Ｌのプログラムに戻り、前記プログラムに従った通常動作に復帰する。
【００２２】
また、データＤ７及びＤ１５が一致しなければ、一致していない状態を第２所定時間だけ監視し（Ｓ１０）、さらにこ状態が第２所定時間を超えた場合、書き込みエラー等により書き込みが終了できなかったとして、フラグＣＦを１の状態にセットする（Ｓ１１）。その後、割り込み前の不揮発性メモリ８Ｈ及び８Ｌ中のプログラムに復帰する。尚、ステップＳ７の後も、上記と同様にプログラムに復帰する。
【００２３】
このように、２つの不揮発性メモリ８Ｈ及び８Ｌのそれぞれからデータを出力し、この出力データの変化を見るだけでデータの書き込みが完了したか否かを検出することが可能となる。
プログラム終了後、マイコン制御部１は、フラグＣＦの状態を見て、書き換えが成功したか判別される。
【００２４】
図１において、データＤ７及びＤ１５の変化を見てデータ書き込み中か、終了したか、検出していたが、このデータ以外で同様な検出しても良い。また、図１では８ビット幅の不揮発性メモリ８Ｈ及び８Ｌを２個使用して１６ビット幅のメモリとして使用していたが、Ｍビット幅の不揮発性メモリをＮ個用いて一個のメモリとして使用する他の形態にも本発明を適用することが可能である。
【００２５】
図３は、一致検出回路８０６の具体回路例を示す図である。図３において、データ入力部８Ｂに書き込まれたデータと、データ出力部８Ｃからのデータとは、それぞれのアドレスに対応して、ＥＸ−ＯＲゲート１０１乃至１０３に入力される。ＥＸ−ＯＲゲートはそれぞれのアドレスに対応して１２８個備えられており、両方の入力データが０または１で一致したら、１なる出力を発生する。つまり、出力データ部８Ｃのデータが入力データ部８Ｂと同一であったら、ＥＸ−ＯＲゲート１０１から１なる出力が発生する。そして、すべてのＥＸ−ＯＲゲート１０１から１なる出力が発生したら、アンドゲート１０４から１なる一致検出信号が出力される。
【００２６】
尚、一致検出回路８０６の具体回路は、図３に限ることなく、他の構成の回路でも良い。
【００２７】
【発明の効果】
本発明によれば、各々の不揮発性メモリからのデータの変化を見ることによりデータ書き込みの状態を認識するので、８ビット用のマイコン制御部をそのまま流用して、チップ面積の増大や回路特性の変動を招くことなく、１６ビット用のマイクロコンピュータを容易に実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態を示すブロック図である。
【図２】図１の動作説明を行うためのフローチャートである。
【図３】一致検出回路８０６の具体回路例を示す回路図である。
【符号の説明】
１          マイコン制御部
２          プログラムカウンタ
３          インストラクションデコーダ
４          ＲＡＭ用アドレス回路
５          アキュムレータ
６          フラグＣＦ
７          レジスタ
８          不揮発性メモリ
９          ＲＯＭ
１０、１１  セレクタ
１２        外部ＲＡＭ
【図１】
0003663043.tif 000002
【図２】
0003663043.tif 000003
【図３】
0003663043.tif 000004