(57)【要約】【課題】不揮発性メモリの自動書き換え処理が所定の時間内に自動で中断できるようにする。【解決手段】不揮発性メモリ１００において、コマンド解読部１１０が外部から入力されるコマンドを解読した結果により、書き換え制御部１２０は複数個の分割制御フローから構成される制御フローを実行し、メモリアレイ１３０の書き換えを制御する。書き換え制御部１２０は、１つの分割制御フローが完了する毎に制御フローを中断し、メモリアレイ１３０を読み出し可能な状態にする。【選択図】図１
2010079758.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリを書き換えるための所定の制御フローを複数個の分割制御フローから構成し、前記複数個の分割制御フローの１つが完了する度に前記制御フローの実行を中断することにより前記不揮発性メモリの書き換えを中断し、前記不揮発性メモリを読み出し可能な状態とすることを特徴とする不揮発性メモリの自動書き換え中断方法。
【請求項２】
前記不揮発性メモリの書き換えを中断した状態から前記不揮発性メモリの書き換えを再開するために必要な再開情報を記憶し、前記制御フローとして、前記再開情報から決定される所定の分割制御フローを実行し、前記所定の分割制御フローが完了すると前記制御フローの実行を中断するとともに、前記再開情報を更新記憶することを特徴とする請求項１記載の不揮発性メモリの自動書き換え中断方法。
【請求項３】
前記制御フローでは、まずタイマによる時間計測を開始し、前記分割制御フローが完了する度に時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には前記制御フローの実行を中断することを特徴とする請求項１または２記載の不揮発性メモリの自動書き換え中断方法。
【請求項４】
書き換え可能な不揮発性メモリであって、
複数のメモリセルから構成されるメモリアレイと、
不揮発性メモリ外部から入力されるコマンドを解読するコマンド解読部と、
前記コマンド解読部の解読結果により、所定の制御フローに従い前記メモリアレイを書き換える書き換え制御部と、
を備え、
前記制御フローは、複数個の分割制御フローから構成され、
前記複数個の分割制御フローの１つが完了する度に前記制御フローの実行を中断することにより前記メモリアレイの書き換えを中断し、前記メモリアレイを読み出し可能な状態とするように構成されていることを特徴とする不揮発性メモリ。
【請求項５】
前記書き換え制御部は、前記メモリアレイの書き換えを中断した状態から前記メモリアレイの書き換えを再開するために必要な再開情報を記憶する再開情報保持部を備え、
前記制御フローとして、前記再開情報保持部が保持する再開情報から決定される所定の分割制御フローを実行し、前記所定の分割制御フローが完了すると前記制御フローの実行を中断するとともに、前記再開情報を前記再開情報保持部に更新記憶するように構成されていることを特徴とする請求項４記載の不揮発性メモリ。
【請求項６】
時間を計測し所定の時間を超過したことを検出するタイマを備え、
前記制御フローでは、まず前記タイマの時間計測を開始し、前記分割制御フローが完了する度に前記タイマの時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には前記制御フローの実行を中断するように構成されていることを特徴とする請求項４または５記載の不揮発性メモリ。
【請求項７】
書き換え可能な不揮発性メモリと、
前記不揮発性メモリを所定の制御フローに従い書き換え制御するＣＰＵとを備えたマイクロコンピュータであって、
前記制御フローは、複数個の分割制御フローから構成され、
前記複数個の分割制御フローの１つが完了する度に制御フローの実行を中断することにより前記不揮発性メモリの書き換えを中断し、前記不揮発性メモリを読み出し可能な状態とするように構成されていることを特徴とするマイクロコンピュータ。
【請求項８】
前記不揮発性メモリの書き換えを中断した状態から前記不揮発性メモリの書き換えを再開するために必要な再開情報を記憶する再開情報保持部を備え、
前記制御フローとして前記再開情報保持部が保持する再開情報から決定される所定の分割制御フローを実行し、前記所定の分割制御フローが完了すると前記制御フローの実行を中断するとともに、前記再開情報を前記再開情報保持部に更新記憶するように構成されていることを特徴とする請求項７記載のマイクロコンピュータ。
【請求項９】
時間を計測し所定の時間を超過したことを検出するタイマを備え、
前記制御フローでは、まず前記タイマの時間計測を開始し、前記分割制御フローが完了する度に前記タイマの時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には前記制御フローの実行を中断するように構成されていることを特徴とする請求項７または８記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え可能な不揮発性メモリの自動書き換えを中断して読み出し動作を可能とする技術に関するものである。具体的には、自動書き換えを中断するための構成を内蔵した不揮発性メモリに関し、さらにＣＰＵと不揮発性メモリとを集積化し、不揮発性メモリの自動書き換えを中断する構成を内蔵したマイクロコンピュータに関するものである。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリには、自動書き換え機能およびその中断機能を有するものがある（特許文献１参照）。
【０００３】
それは、自動消去中に保留信号がアクティブになると消去を中断し、保留信号が非活動であるときに所定の状態により消去を再開するものである。
【特許文献１】特許第３４１５１７２号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような不揮発性メモリでは消去を中断するには、中断を指示するコマンドを不揮発性メモリに入力し、保留信号をアクティブにする必要がある。近年の組み込み用とのアプリケーションでは、数ｍｓ単位からなる一連の処理（タスク）を切り替えながら機器の制御を行うタスク管理方式が多く採用されている。その一方で不揮発性メモリの書き換え（消去および書き込み）は一般的に数ｍｓから数秒かかるため、あるタスク中に不揮発性メモリの書き換えが発生しても、そのタスク中に書き換えが完了しない。また、書き換え中には不揮発性メモリの内容を読み出すことができないため、不揮発性メモリに格納された次のタスク用のプログラムを実行できず、タスクの切り替えが阻害されてしまう。これを解決するためには、専用のタイマを用いて時間を計測し、所望の時間で不揮発性メモリの書き換えを中断するために、中断を指示するコマンドを入力する必要がある。
【０００５】
本発明は、上記の点に鑑み、不揮発性メモリの書き換え処理が所定の時間内に自動で中断できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の不揮発性メモリの自動書き換え中断方法は、不揮発性メモリを書き換えるための所定の制御フローを複数個の分割制御フローから構成し、複数個の分割制御フローの１つが完了する度に制御フローの実行を中断することにより不揮発性メモリの書き換えを中断し、不揮発性メモリを読み出し可能な状態とする。
【０００７】
これにより、分割制御フローが完了する度に書き換えのための制御フローを中断するので、自動で不揮発性メモリの書き換え処理を中断することができる。
【０００８】
上記本発明の不揮発性メモリの自動書き換え中断方法においては、不揮発性メモリの書き換えを中断した状態から不揮発性メモリの書き換えを再開するために必要な再開情報を記憶し、制御フローとして、再開情報から決定される所定の分割制御フローを実行し、所定の分割制御フローが完了すると制御フローの実行を中断するとともに、再開情報を更新記憶することが好ましい。
【０００９】
これにより、不揮発性メモリの書き換え処理を自動で中断した後、その状態から再開することができる。
【００１０】
上記本発明の不揮発性メモリの自動書き換え中断方法においては、制御フローでは、まずタイマによる時間計測を開始し、分割制御フローが完了する度に時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には制御フローの実行を中断することが好ましい。
【００１１】
これにより、分割制御フローが完了する度にタイマの時間超過の有無を確認し書き換え制御を中断するか継続するかを決定するので、書き換え処理の中断までの時間を、より所望の時間に近付けることができる。
【００１２】
本発明の不揮発性メモリは、書き換え可能な不揮発性メモリであって、複数のメモリセルから構成されるメモリアレイと、不揮発性メモリ外部から入力されるコマンドを解読するコマンド解読部と、コマンド解読部の解読結果により、所定の制御フローに従いメモリアレイを書き換える書き換え制御部と、を備え、制御フローは、複数個の分割制御フローから構成され、複数個の分割制御フローの１つが完了する度に制御フローの実行を中断することによりメモリアレイの書き換えを中断し、メモリアレイを読み出し可能な状態とするように構成されている。
【００１３】
これにより、分割制御フローが完了する度に書き換えのための制御フローを中断するので、自動で不揮発性メモリの書き換え処理を中断することができる。
【００１４】
上記本発明の不揮発性メモリにおいては、書き換え制御部は、メモリアレイの書き換えを中断した状態からメモリアレイの書き換えを再開するために必要な再開情報を記憶する再開情報保持部を備え、制御フローとして、再開情報保持部が保持する再開情報から決定される所定の分割制御フローを実行し、所定の分割制御フローが完了すると制御フローの実行を中断するとともに、再開情報を再開情報保持部に更新記憶するように構成されていることが好ましい。
【００１５】
これにより、不揮発性メモリの書き換え処理を自動で中断した後、その状態から再開することができる。
【００１６】
上記本発明の不揮発性メモリにおいては、時間を計測し所定の時間を超過したことを検出するタイマを備え、制御フローでは、まずタイマの時間計測を開始し、分割制御フローが完了する度にタイマの時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には制御フローの実行を中断するように構成されていることが好ましい。
【００１７】
これにより、分割制御フローが完了する度にタイマの時間超過の有無を確認し書き換え制御を中断するか継続するかを決定するので、書き換え処理の中断までの時間を、より所望の時間に近付けることができる。
【００１８】
本発明のマイクロコンピュータは、書き換え可能な不揮発性メモリと、不揮発性メモリを所定の制御フローに従い書き換え制御するＣＰＵとを備えたマイクロコンピュータであって、制御フローは、複数個の分割制御フローから構成され、複数個の分割制御フローの１つが完了する度に制御フローの実行を中断することにより不揮発性メモリの書き換えを中断し、不揮発性メモリを読み出し可能な状態とするように構成されている。
【００１９】
これにより、分割制御フローが完了する度に書き換えのための制御フローを中断するので、自動で不揮発性メモリの書き換え処理を中断することができる。
【００２０】
上記本発明のマイクロコンピュータによれば、不揮発性メモリの書き換えを中断した状態から不揮発性メモリの書き換えを再開するために必要な再開情報を記憶する再開情報保持部を備え、制御フローとして再開情報保持部が保持する再開情報から決定される所定の分割制御フローを実行し、所定の分割制御フローが完了すると制御フローの実行を中断するとともに、再開情報を再開情報保持部に更新記憶するように構成されていることが好ましい。
【００２１】
これにより、不揮発性メモリの書き換え処理を自動で中断した後、その状態から再開することができる。
【００２２】
上記本発明のマイクロコンピュータにおいては、時間を計測し所定の時間を超過したことを検出するタイマを備え、制御フローでは、まずタイマの時間計測を開始し、分割制御フローが完了する度にタイマの時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には制御フローの実行を中断するように構成されていることが好ましい。
【００２３】
これにより、分割制御フローが完了する度にタイマの時間超過の有無を確認し書き換え制御を中断するか継続するかを決定するので、書き換え処理の中断までの時間を、より所望の時間に近付けることができる。
【発明の効果】
【００２４】
本発明によると、不揮発性メモリの書き換え処理を所定の時間内に自動で中断して読み出し動作を可能とできる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の各実施の形態において、他の実施の形態と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【００２６】
《実施の形態１》
図１は、本発明の実施の形態１に係るフラッシュメモリ１００（不揮発性メモリ）の構成を示すブロック図である。
【００２７】
フラッシュメモリ１００は、コマンドデコード部１１０（コマンド解読部）、書き換え制御部１２０、メモリアレイ１３０、および出力制御部１４０を備えている。また、書き換え制御部１２０は、再開情報保持部１５０を備えている。
【００２８】
コマンドデコード部１１０は、フラッシュメモリ１００の外部からアドレス入力Ｂ１００、データ入出力Ｂ１１０、ライトイネーブル信号Ｓ１００、リードイネーブル信号Ｓ１１０が入力されている。
【００２９】
コマンドデコード部１１０は、リードイネーブル信号Ｓ１１０に“１”が入力されると、リードアクセスと認識し書き換えアドレスバスＢ１２０にアドレス入力Ｂ１００の値を出力するとともに、コマンド信号Ｂ１４０にリードアクセスを示す値を出力する。コマンドデコード部１１０は、ライトイネーブル信号Ｓ１００に“１”が入力されると、そのときのアドレス入力Ｂ１００とデータ入出力Ｂ１１０との組み合わせをコマンドと認識してコマンドを解読し、解読結果を書き換えアドレスバスＢ１２０上の書き換えアドレス、書き込みデータバスＢ１３０上の書き込みデータ、コマンド信号Ｂ１４０として書き換え制御部１２０に出力する。
【００３０】
書き換え制御部１２０は、書き換えアドレスバスＢ１２０、書き込みデータバスＢ１３０およびコマンド信号Ｂ１４０から、各コマンドに応じた所定の制御フロー（後述）に従いアレイ制御信号Ｂ１５０を順次出力し、メモリアレイ１３０の読み出し、書き込み、消去を制御するとともに、コマンド実行状態を状態信号Ｂ１６０に出力する。
【００３１】
ここでは、説明を簡単にするために、状態信号Ｂ１６０は４ビットでコマンド正常終了の場合には“１Ｈ”（“H”は１６進表記であることを示す。）を、コマンド異常終了の場合には、“２Ｈ“を、コマンド実行中の場合には、”４Ｈ“を、コマンド中断終了の場合には”８Ｈ“を、上記何れにも該当しない場合には”０Ｈ“を出力するものとする。
【００３２】
また、書き換え制御部１２０は、所定の制御フローに従い、再開情報保持部１５０への書き込みおよび読み出しを行う。
【００３３】
再開情報保持部１５０は、コマンド再開時に実行する分割制御フローを示すデータ（再開情報）を格納、保持する。初期状態において、再開情報保持部１５０は、“０Ｈ”を保持しているものとする。
【００３４】
メモリアレイ１３０は複数のメモリセルを備え、アレイ制御信号Ｂ１５０に応じて、該当するメモリセルの読み出し、書き込み、消去を行い、アレイ制御信号Ｂ１５０がメモリアレイ１３０に格納されるデータの読み出しを指示した場合には、該当するメモリセルのデータを読み出しデータバスＢ１７０に出力する。
【００３５】
出力制御部１４０は、フラッシュメモリ１００の外部から入力されるリードイネーブル信号Ｓ１１０に“１”が入力されると、書き換え制御部１２０が出力する状態信号Ｂ１６０が“０Ｈ”の場合には、読み出しデータバスＢ１７０の値をデータ入出力Ｂ１１０に出力し、状態信号Ｂ１６０が“０Ｈ”以外の場合には、状態信号Ｂ１６０の値をデータ入出力Ｂ１１０に出力する。
【００３６】
―動作―
まず、上記のように構成されたフラッシュメモリ１００に対し、外部デバイス（図示せず）がメモリアレイ１３０に格納されたデータを読み出す動作について説明する。
【００３７】
外部デバイスは、フラッシュメモリ１００に格納されたデータを読み出すために、アドレス入力Ｂ１００に所望のアドレス、例えばアドレス“１００Ｈ”を出力し、さらにリードイネーブル信号Ｓ１１０を値“１”にする。
【００３８】
コマンドデコード部１１０は、リードイネーブル信号Ｓ１１０が“１”であることから、リードアクセスと認識し書き換えアドレスバスＢ１２０にアドレス入力Ｂ１００の値を出力するとともに、コマンド信号Ｂ１４０にはリードアクセスを示す値を出力する。
【００３９】
書き換え制御部１２０は、コマンド信号Ｂ１４０にリードアクセスを示す値が入力されるため、書き換えアドレスバスＢ１２０が示すアドレスに対してメモリアレイ１３０からデータを読み出すために必要な信号をアレイ制御信号Ｂ１５０に順次出力するとともに、コマンド実行ではないため、状態信号Ｂ１６０に“０Ｈ”を出力する。
【００４０】
メモリアレイ１３０は、アレイ制御信号Ｂ１５０に従い、指定のアドレスに該当するメモリセルのデータを読み出しデータバスＢ１７０に出力する。
【００４１】
出力制御部１４０は、状態信号Ｂ１６０が“０Ｈ”のため、読み出しデータバスＢ１７０の値をデータ入出力Ｂ１１０に出力する。
【００４２】
このようにして、外部デバイスはデータ入出力Ｂ１１０から所望のアドレスに格納されたフラッシュメモリ１００のデータを読み出すことができる。
【００４３】
次に外部デバイスが、フラッシュメモリ１００に所望のコマンド、ここでは消去コマンドを発行する動作について説明する。
【００４４】
外部デバイスは、ライトイネーブル信号Ｓ１００を値“１”にして、アドレス入力Ｂ１００およびデータ入出力Ｂ１１０に消去コマンドを示す組み合わせを順次入力する。
【００４５】
コマンドデコード部１１０は、ライトイネーブル信号Ｓ１００が“１”であることから、アドレス入力Ｂ１００とデータ入出力Ｂ１１０との組み合わせをコマンドと認識して解読し、コマンドの解読結果が消去コマンドであることから、書き換えアドレスバスＢ１２０に該当アドレスを、コマンド信号Ｂ１４０に消去コマンドを示す値をそれぞれ出力する。
【００４６】
書き換え制御部１２０は、コマンド信号Ｂ１４０の値を受けて、メモリアレイ１３０の該当アドレスのメモリセルを消去するための所定の制御フローに従い、アレイ制御信号Ｂ１５０を順次出力するとともに、状態信号Ｂ１６０にコマンド実行中であることを示す“４Ｈ”を出力する。
【００４７】
メモリアレイ１３０は、アレイ制御信号Ｂ１５０に従い、該当アドレスに相当するメモリセルの消去および、該当するメモリセルが消去されたか否かを確認するベリファイを行う。
【００４８】
このとき、外部デバイスがフラッシュメモリ１００に対してリードイネーブル信号Ｓ１１０を値“１”にしてリードアクセスを行うと、出力制御部１４０は、状態信号Ｂ１６０が“４Ｈ”のため、データ入出力Ｂ１１０に“４Ｈ”を出力する。
【００４９】
このようにして、外部デバイスはコマンド発行後にリードアクセスを行うことで、コマンド実行中であることを示す“４Ｈ”をデータ入出力Ｂ１１０から読み出すことができる。
【００５０】
同様に、コマンド正常終了、コマンド異常終了、コマンド中断の各状態についても、データ入出力Ｂ１１０から読み出すことができる。
【００５１】
次に、外部デバイスが消去コマンドを発行した場合に、書き換え制御部１２０が実行する制御フローについて、図２を用いて詳細に説明する。
【００５２】
図２は、書き換え制御部１２０が消去コマンドを実行する場合の制御フローを示すフローチャートである。
【００５３】
消去コマンドの制御フローは、メモリアレイ１３０に格納されたデータが消去されたか否かを確認するベリファイ（Verify）と、メモリアレイ１３０に消去パルスを印加する消去（Erase）の２つに分類できる。ここで、消去パルスの印加は通常３ｍｓ単位で行うとものとし、さらにここでは１ｍｓ単位のパルスに３分割して１回目消去（Erase1）、２回目消去（Erase2）、３回目消去（Erase3）の３つの分割制御フローを実行するものとする。また、上記４つの分割制御フローに対して、ベリファイは“０Ｈ“、１回目消去（Erase1）は”１Ｈ“、２回目消去（Erase2）は”２Ｈ“、３回目消去（Erase3）は”３Ｈ“を割り当てて、次に実行する分割制御フローを示すデータ（再開情報）を再開情報保持部１５０に格納するものとする。
【００５４】
初期状態において、書き換え制御部１２０にコマンド信号Ｂ１４０から消去コマンドを示す信号が入力されると、書き換え制御部１２０は再開情報保持部１５０から次に実行する分割制御フローを示すデータ（再開情報）を読み出す（Ａ）。
【００５５】
初期状態において再開情報保持部１５０は“０Ｈ”を保持しているため、ベリファイ実行フローに分岐する（Ｂ０）。
【００５６】
次に書き換え制御部１２０は、メモリアレイ１３０に対してベリファイ用の電圧設定を行うために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力する（Ｃ０）。
【００５７】
次に書き換え制御部１２０は、メモリアレイ１３０の該当アドレスが消去状態か否かを確認（ベリファイ）するため、読み出しに必要な制御信号をアレイ制御信号Ｂ１５０に順次出力し、メモリアレイ１３０が出力するデータを読み出しデータバスＢ１７０から順次読み出す（Ｄ０）。
【００５８】
次に、書き換え制御部１２０は、上記ベリファイ結果を判定する（Ｅ０）。以下、ベリファイ結果がフェイルの場合について説明する。
【００５９】
書き換え制御部１２０はフェイルの結果を受けて、次に実行する分割制御フローが１回目消去（Erase1）であることを示す“１Ｈ”を再開情報保持部１５０に格納する（Ｆ４）。
【００６０】
次に、書き換え制御部１２０は、読み出し（Read）用の電圧設定を行うために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力し（Ｇ）、制御フローを終了する。
【００６１】
このとき、消去コマンドは、ベリファイのみ実行して中断したことになる。その一方でメモリアレイ１３０は、読み出し用の電圧設定となっているため、外部デバイスはリードイネーブル信号Ｓ１１０の値を“１”とすることで、フラッシュメモリ１００からデータを読み出すことができる。
【００６２】
次に、上記の消去コマンドが中断した状態で、再び消去コマンドが入力された場合の動作について説明する。
【００６３】
再度、消去コマンドが入力されると、書き換え制御部１２０は再開情報保持部１５０が格納するデータを読み出す（Ａ）。上記のように、再開情報保持部１５０はデータ“１Ｈ”を格納しているため、１回目消去（Erase1）フローに分岐する（Ｂ０）（Ｂ１）。
【００６４】
次に書き換え制御部１２０は、消去（Erase）用の電圧設定を行うために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力する（Ｃ１）。
【００６５】
次に書き換え制御部１２０は、メモリアレイ１３０に対して分割消去パルスの１回目を印加するために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力する（Ｄ１）。
【００６６】
次に書き換え制御部１２０は、次に実行する分割制御フローが２回目消去（Erase2）であることを示す“２Ｈ”を再開情報保持部１５０に格納する（Ｆ１）。
【００６７】
次に、書き換え制御部１２０は、メモリアレイ１３０に対して読み出し用の電圧設定を行うために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力し（Ｇ）、制御フローを終了する。
【００６８】
このとき、消去コマンドは１回目消去（Erase1）フローのみ実行して中断したことになる。その一方でメモリアレイ１３０は、読み出し用の電圧設定となっているため、外部デバイス（図示せず）はリードイネーブル信号Ｓ１１０の値を“１”とすることで、フラッシュメモリ１００からデータを読み出すことができる。
【００６９】
同様にして、分割消去パルスの３回目まで実行すると、書き換え制御部１２０は次に実行する分割制御フローがベリファイであることを示す“０Ｈ”を再開情報保持部１５０に格納する（Ｆ０）ため、コマンド再開時には再びベリファイから実行される。
【００７０】
以上のように、ベリファイと消去パルスの印加を繰り返し、ベリファイがパスすると、書き換え制御部１２０は初期値である“０Ｈ”を再開情報保持部１５０に格納する（Ｆ０）。
【００７１】
このように、消去コマンドの制御フローを分割し、分割された個々のフローが完了する度に消去コマンドの実行を中断し、フラッシュメモリ１００のデータ読み出しを可能とすることで、アプリケーション上でフラッシュメモリ１００の消去処理をタスク管理に埋め込むことが容易となる。
【００７２】
《実施の形態２》
図３は、本発明の実施の形態２に係るフラッシュメモリ２００の構成を示すブロック図である。同図に示すように、フラッシュメモリ２００は、実施の形態１のフラッシュメモリ１００の構成に加え、タイマ２６０を備えている。
【００７３】
タイマ２６０は、タイマ起動信号Ｓ２２０が“１”になると時間計測を開始し、“０”になると時間計測を完了し、計測値をクリアする。また計測値がオーバーフローするとオーバーフロー信号Ｓ２３０に“１”を出力する。ここでは、説明を簡単にするためにタイマ２６０の周期は１ｍｓとする。
【００７４】
書き換え制御部２２０は、実施の形態１の書き換え制御部１２０の機能に加えて、タイマ起動信号Ｓ２２０によりタイマ２６０の起動を制御できるとともに、オーバーフロー信号Ｓ２３０により、タイマ２６０のオーバーフローを検知できる。
【００７５】
―動作―
上記のように構成されたフラッシュメモリ２００に対し、外部デバイス（図示せず）がメモリアレイ１３０に格納されたデータを読み出す動作および、外部デバイスが、フラッシュメモリ２００に所望のコマンド、ここでは消去コマンドを発行する動作の概要については、実施の形態１と同様であるので説明を省略する。
【００７６】
次に、外部デバイスが消去コマンドを発行した場合の、書き換え制御部１２０が実行する制御フローについて、図４を用いて詳細に説明する。
【００７７】
図４は、書き換え制御部２２０が消去コマンドを実行する場合の制御フローを示すフローチャートである。同図に示すように、実施の形態１に係るフローチャートから、書き換え制御部２２０がタイマ起動信号Ｓ２２０に“１”を出力して、タイマ２６０の時間計測を開始する処理（ＴＳ）および、書き換え制御部２２０がオーバーフロー信号Ｓ２３０により、タイマ２６０のオーバーフローを判定する処理（ＴＣ）が追加されている。
【００７８】
消去コマンドの制御フローは、メモリアレイ１３０に格納されたデータが消去されたか否かを確認するベリファイと、メモリアレイ１３０に消去パルスを印加する消去の２つに分類できる。ここで、ベリファイ処理には０．５ｍｓかかるものとする。また、消去パルスの印加は通常３ｍｓ単位で行うとものとし、さらにここでは１ｍｓ単位のパルスに３分割して１回目消去（Erase1）、２回目消去（Erase2）、３回目消去（Erase3）の３つの分割制御フローを実行するものとする。また、上記４つの分割制御フローに対して、ベリファイは“０Ｈ“、１回目消去（Erase1）は”１Ｈ“、２回目消去（Erase2）は”２Ｈ“、３回目消去（Erase3）は”３Ｈ“を割り当てて、次に実行する分割制御フローを示すデータ（再開情報）を再開情報保持部１５０に格納するものとする。
【００７９】
初期状態において、書き換え制御部１２０にコマンド信号Ｂ１４０から消去コマンドを示す信号が入力されると、書き換え制御部２２０はタイマ起動信号Ｓ２２０に“１”を出力して、タイマ２６０の時間計測を開始する（ＴＳ）。
【００８０】
次に書き換え制御部２２０は再開情報保持部１５０から次に実行する分割制御フローを示すデータ（再開情報）を読み出す（Ａ）。
【００８１】
初期状態において再開情報保持部１５０は“０Ｈ”を保持しているため、ベリファイ実行フローに分岐する（Ｂ０）。
【００８２】
次に書き換え制御部２２０は、メモリアレイ１３０に対してベリファイ用の電圧設定を行うために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力する（Ｃ０）。
【００８３】
次に書き換え制御部１２０は、メモリアレイ１３０の該当アドレスが消去状態か否かを確認（ベリファイ）するため、読み出しに必要な制御信号をアレイ制御信号Ｂ１５０に順次出力し、メモリアレイ１３０が出力するデータを読み出しデータバスＢ１５０から順次読み出す（Ｄ０）。
【００８４】
次に、書き換え制御部２２０は、上記ベリファイ結果を判定する（Ｅ０）。以下、ベリファイ結果がフェイルの場合について説明する。
【００８５】
書き換え制御部２２０はフェイルの結果を受けて、次に実行する分割制御フローが１回目消去（Erase1）であることを示す“１Ｈ”を再開情報保持部１５０に格納する（Ｆ４）。
【００８６】
次に、書き換え制御部２２０は、読み出し用の電圧設定を行うために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力する（Ｇ）。
【００８７】
次に、書き換え制御部２２０は、オーバーフロー信号Ｓ２３０により、タイマ２６０のオーバーフローを判定する（ＴＣ）。このとき、ベリファイ動作に係る処理時間は０．５ｍｓのためオーバーフロー信号Ｓ２３０は“０”となり、書き換え制御部２２０は次の分割制御フローを継続して実行するため、再開情報保持部１５０が格納するデータを読み出す（Ａ）。上記のように、再開情報保持部１５０はデータ“１Ｈ”を格納しているため、１回目消去（Erase1）フローに分岐する（Ｂ０）（Ｂ１）。
【００８８】
次に書き換え制御部２２０は、消去用の電圧設定を行うために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力する（Ｃ１）。
【００８９】
次に書き換え制御部２２０は、メモリアレイ１３０に対して分割消去パルスの１回目を印加するために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力する（Ｄ１）。
【００９０】
次に書き換え制御部２２０は、次に実行する分割制御フローが２回目消去（Erase2）であることを示す“２Ｈ”を再開情報保持部１５０に格納する（Ｆ１）。
【００９１】
次に、書き換え制御部２２０は、メモリアレイ１３０に対して読み出し用の電圧設定を行うために必要な制御信号をアレイ制御信号Ｂ１５０に順次出力する（Ｇ）。
【００９２】
次に、書き換え制御部２２０は、オーバーフロー信号Ｓ２３０により、タイマ２６０のオーバーフローを判定する（ＴＣ）。このとき、ベリファイ動作に係る処理時間０．５ｍｓに加えて、分割消去の１回目が実施され合計１．５ｍｓの時間が経過しているため、オーバーフロー信号Ｓ２３０は“１”となり制御フローを終了する。
【００９３】
このとき、消去コマンドはベリファイフローおよび１回目消去（Erase1）フローのみ実行して中断したことになる。
【００９４】
このように、消去コマンドの制御フローを分割し、分割された個々のフローが完了する度に所定の時間を超えて処理が実行されているかを確認し、所定の時間を超えて処理が行われている場合には消去コマンドの実行を中断することで、コマンド発行からコマンド中断までの時間を均一化することができるため、アプリケーション上でフラッシュメモリ１００の書き換え処理をタスク管理に埋め込むことがさらに容易となる。
【００９５】
《実施の形態３》
図５は、本発明の実施の形態３に係るマイクロコンピュータ３００の構成を示すブロック図である。マイクロコンピュータ３００は、ＣＰＵ３１０（Central Processing Unit）、内蔵フラッシュメモリ３２０（不揮発性メモリ）、内蔵ＲＯＭ３３０（Read Only Memory）、内蔵ＲＡＭ（Random Access memory）（再開情報保持部）を備えている。
【００９６】
ＣＰＵ３１０は、内蔵フラッシュメモリ３２０および内蔵ＲＯＭ３３０から命令コードを読み出して解読し、命令を実行することにより、各種制御を行うようになっている。命令コードの読み出しは、アドレスバスＢ３００に、読み出す命令コードが格納されている領域のアドレスを出力し、さらにリードイネーブル信号Ｓ３００の値を“１”にすることによって行われる。読み出された命令コードはデータバスＢ３１０を介してＣＰＵ３１０に読み込まれる。
【００９７】
内蔵フラッシュメモリ３２０は、メモリアレイ（図示せず）に命令コードおよびその他のデータを記憶しており、リードイネーブル信号Ｓ３００が値“１”である場合、アドレスバスＢ３００に出力されているアドレスによって指定されるメモリ領域に格納されている命令コードやその他のデータをデータバスＢ３１０に出力するようになっている。
【００９８】
内蔵フラッシュメモリ３２０は、メモリアレイに格納するデータを消去、書き込みするための制御に用いる制御レジスタ３５０を備えている。ＣＰＵ３１０が、後述する所定の制御フローに従い制御レジスタ３５０の値を順次書き換えることにより、内蔵フラッシュメモリ３２０のメモリアレイに対して消去、書き込みを行うことができる。制御レジスタ３５０は、ライトイネーブル信号Ｓ３００の値が“１”である場合、アドレスバスＢ３００に出力されているアドレスによって指定されレジスタに、データバスＢ３１０に出力されている値を格納保持するようになっている。
【００９９】
内蔵ＲＯＭ３３０は、内蔵フラッシュメモリ３２０の書き換えを行うためのプログラムを構成する命令コードおよびその他データを記憶しており、リードイネーブル信号Ｓ３００が値“１”である場合、アドレスバスＢ３００に出力されているアドレスによって指定されるメモリ領域に格納されている命令コードやその他のデータをデータバスＢ３１０に出力するようになっている。
【０１００】
内蔵ＲＡＭ３４０は、命令コードおよびその他データを記憶しており、リードイネーブル信号Ｓ３１０が値“１”である場合、アドレスバスＢ３００に出力されているアドレスによって指定されるメモリ領域に格納されている命令コードやその他データのデータをデータバスＢ３１０に出力するようになっている。また、内蔵ＲＡＭ３４０は、ライトイネーブル信号Ｓ３００が値“１”である場合、アドレスバスＢ３００に出力されているアドレスによって指定されるメモリ領域に、データバスＢ３１０に出力されている値を格納保持するようになっている。
【０１０１】
また、内蔵ＲＡＭの所定のアドレスには、次に実行する分割制御フローを格納保持しており、初期状態は“０”が格納されているものとする。
【０１０２】
―動作―
まず、上記のように構成されたマイクロコンピュータ３００におけるＣＰＵ３１０が、内蔵ＲＯＭ３３０に格納された内蔵フラッシュメモリ３２０のデータを書き換えるためのプログラムを実行する動作について説明する。
【０１０３】
ＣＰＵ３１０は、内蔵ＲＯＭ３３０から命令コードを読み出すために、アドレスバスＢ３００に、内蔵ＲＯＭ３３０に該当するアドレス、例えばアドレス“３００Ｈ”を出力し、さらにリードイネーブル信号Ｓ３１０を値“１”にする。そしてデータバスＢ３１０から命令コードを読み出して解読し、命令を実行する。
【０１０４】
次にＣＰＵ３１０は、後述する所定の制御フローに従い制御レジスタ３５０の値を順次書き換えるために、アドレスバスＢ３００に、制御レジスタ３５０に該当するアドレス、例えばアドレス“２００Ｈ”を出力するとともに、ライトイネーブル信号Ｓ３００を値“１”にし、さらにデータバスＢ３１０に所定のデータを出力する。
【０１０５】
このようにして、ＣＰＵ３１０が、内蔵ＲＯＭ３３０に格納された内蔵フラッシュメモリ３２０のデータを書き換えるためのプログラムを実行し、フラッシュメモリ３２０のデータを書き換えることができる。
【０１０６】
次に、ＣＰＵ３１０が、内蔵ＲＯＭ３３０に格納された内蔵フラッシュメモリ３２０のデータを書き換えるためのプログラムを実行する動作について、図２を用いて詳細に説明する。
【０１０７】
図２は、ＣＰＵ３１０がフラッシュメモリ３２０の消去を実行する場合の制御フローを示すフローチャートであり、実施の形態１における書き換え制御部１２０が消去コマンドを実行する場合の制御フローと全く同じであるが、制御フローを実現するプログラムが内蔵ＲＯＭ３３０に格納されており、このプログラムをＣＰＵ３１０が実行する点で大きく異なる。また、実施の形態１では書き換え制御部１２０がアレイ制御信号Ｂ１５０を出力してメモリアレイ１３０の消去を実現していたが、本実施例ではＣＰＵ３１０が制御レジスタ３５０を書き換えることで内蔵フラッシュメモリ３２０のデータを消去する。
【０１０８】
消去の制御フローは、内蔵フラッシュメモリ３２０に格納されたデータが消去されたか否かを確認するベリファイと、内蔵フラッシュメモリ３２０に消去パルスを印加する消去の２つに分類できる。ここで、消去パルスの印加は通常３ｍｓ単位で行うとものとし、さらにここでは１ｍｓ単位のパルスに３分割して１回目消去（Erase1）、２回目消去（Erase2）、３回目消去（Erase3）の３つの分割制御フローを実行するものとする。また、上記４つの分割制御フローに対して、ベリファイは“０Ｈ“、１回目消去（Erase1）は”１Ｈ“、２回目消去（Erase2）は”２Ｈ“、３回目消去（Erase3）は”３Ｈ“を割り当てて、次に実行する分割制御フローを示すデータ（再開情報）を内蔵ＲＡＭ３４０の所定のアドレスに格納するものとする。
【０１０９】
ＣＰＵ３１０が、内蔵ＲＯＭ３３０に格納される消去プログラムを読み出し、実行すると、まずＣＰＵ３１０は内蔵ＲＡＭ３４０から、次に実行する分割制御フローを示すデータ（再開情報）を読み出す（Ａ）。
【０１１０】
初期状態において内蔵ＲＡＭ３４０は“０Ｈ”を保持しているため、ＣＰＵ３１０はベリファイ実行フローに分岐する（Ｂ０）。
【０１１１】
次にＣＰＵ３１０は、内蔵フラッシュメモリ３２０に対してベリファイ用の電圧設定を行うために必要な制御レジスタ３５０の設定を順次行う（Ｃ０）。
【０１１２】
次にＣＰＵ３１０は、内蔵フラッシュメモリ３２０の該当するメモリセルが消去状態か否かを確認（ベリファイ）するため、アドレスバスＢ３００に該当アドレスを出力するとともに、リードイネーブル信号Ｓ３１０の値を“１”にして内蔵フラッシュメモリ３２０の該当するメモリセルのデータをデータバスＢ３１０から順次読み出す（Ｄ０）。
【０１１３】
次に、ＣＰＵ３１０は、上記ベリファイ結果を判定する（Ｅ０）。以下、ベリファイ結果がフェイルの場合について説明する。
【０１１４】
ＣＰＵ３１０はフェイルの結果を受けて、次に実行する分割制御フローが１回目消去（Erase1）であることを示す“１Ｈ”を内蔵ＲＡＭ３４０に格納する（Ｆ４）。
【０１１５】
次に、ＣＰＵ３１０は、内蔵フラッシュメモリ３２０に対して読み出し用の電圧設定を行うために必要な制御レジスタの設定を順次行い（Ｇ）、制御フローを終了する。
【０１１６】
このとき、消去処理は、ベリファイのみ実行して中断したことになる。その一方で内蔵フラッシュメモリ３２０は、読み出し用の電圧設定となっているため、ＣＰＵ３１０はアドレスバスＢ３００に内蔵フラッシュメモリ３２０のアドレスを出力しリードイネーブル信号Ｓ１１０の値を“１”とすることで、内蔵フラッシュメモリ３２０からデータを読み出すことができる。
【０１１７】
次に、上記の消去処理が中断した状態で、再び消去処理を実行する動作について説明する。
【０１１８】
再度、ＣＰＵ３１０が、内蔵ＲＯＭ３３０に格納される消去プログラムを読み出し、実行すると、ＣＰＵ３１０は内蔵ＲＡＭ３４０が格納する再開情報データを読み出す（Ａ）。上記のように、内蔵ＲＡＭ３４０は再開情報データとして“１Ｈ”を格納しているため、１回目消去（Erase1）フローに分岐する（Ｂ０）（Ｂ１）。
【０１１９】
次にＣＰＵ３１０は、消去用の電圧設定を行うために必要な制御レジスタ３５０の設定を順次行う（Ｃ１）。
【０１２０】
次にＣＰＵ３１０は、内蔵フラッシュメモリ３２０に対して分割消去パルスの１回目を印加するために必要な制御レジスタ３５０の設定を順次行う（Ｄ１）。
【０１２１】
次にＣＰＵ３１０は、次に実行する分割制御フローが２回目消去（Erase2）であることを示す “２Ｈ”を内蔵ＲＡＭ３４０に格納する（Ｆ１）。
【０１２２】
次に、ＣＰＵ３１０は、内蔵フラッシュメモリ３２０に対して読み出し用の電圧設定を行うために必要な制御レジスタ３５０の設定を順次行い（Ｇ）、制御フローを終了する。
【０１２３】
このとき、１回目消去（Erase1）フローのみ実行して中断したことになる。その一方で内蔵フラッシュメモリ３２０は、読み出し用の電圧設定となっているため、ＣＰＵ３１０はリードイネーブル信号Ｓ３１０の値を“１”とすることで、内蔵フラッシュメモリ３２０からデータを読み出すことができる。
【０１２４】
同様にして、分割消去パルスの３回目まで実行すると、ＣＰＵ３１０は次に実行する分割制御フローがベリファイであることを示す“０Ｈ”を内蔵ＲＡＭ３４０に格納する（Ｆ０）ため、消去処理再開時には再びベリファイから実行される。
【０１２５】
以上のように、ベリファイと消去パルスの印加を繰り返し、ベリファイがパスすると、ＣＰＵ３１０は初期値である“０Ｈ”を内蔵ＲＡＭ３４０に格納する（Ｆ０）。
【０１２６】
このように、書き換え処理の制御フローを分割し、分割された個々のフローが完了する度に消去処理の実行を中断し、内蔵フラッシュメモリ３２０のデータ読み出しを可能とすることで、アプリケーション上で内蔵フラッシュメモリ３２０の書き換え処理をタスク管理に埋め込むことが容易となる。
【０１２７】
《実施の形態４》
図６は、本発明の実施の形態４に係るマイクロコンピュータ４００の構成を示すブロック図である。同図に示すように、マイクロコンピュータ４００は、実施の形態３のマイクロコンピュータ３００の構成に加え、タイマ４６０を備えている。
【０１２８】
タイマ４６０は、タイマ起動信号Ｓ４２０が“１”になると時間計測を開始し、“０”になると時間計測を完了し、計測値をクリアする。また、計測値がオーバーフローするとオーバーフロー信号Ｓ４３０に“１”を出力する。ここでは説明を簡単にするためにタイマ４６０の周期は１ｍｓとする。
【０１２９】
ＣＰＵ４１０は実施の形態３のＣＰＵ３１０の機能に加えて、タイマ起動信号Ｓ４２０によりタイマ４６０の起動を制御できるとともに、オーバーフロー信号Ｓ４３０により、タイマ４６０のオーバーフローを検知できる。
【０１３０】
―動作―
上記のように構成されたマイクロコンピュータ４００におけるＣＰＵ４１０が、内蔵ＲＯＭ３３０に格納された内蔵フラッシュメモリ３２０のデータを書き換えるためのプログラムを実行する動作の概要については、実施の形態３と同様であるので説明を省略する。
【０１３１】
次に、ＣＰＵ４１０が、内蔵ＲＯＭ３３０に格納された内蔵フラッシュメモリ３２０のデータを書き換えるためのプログラムを実行する動作について、図４を用いて詳細に説明する。
【０１３２】
図４は、ＣＰＵ４１０がフラッシュメモリ３２０の消去を実行する場合の制御フローを示すフローチャートである。同図に示すように、実施の形態３に係るフローチャートから、ＣＰＵ４１０がタイマ起動信号Ｓ４２０に“１”を出力して、タイマ４６０の時間計測を開始する処理（ＴＳ）および、ＣＰＵ４１０がオーバーフロー信号Ｓ４３０により、タイマ４６０のオーバーフローを判定する処理（ＴＣ）が追加されている。
【０１３３】
消去の制御フローは、内蔵フラッシュメモリ３２０に格納されたデータが消去されたか否かを確認するベリファイと、内蔵フラッシュメモリ３２０に消去パルスを印加する消去の２つに分類できる。ここで、ベリファイ処理には０．５ｍｓかかるものとする。また、消去パルスの印加は通常３ｍｓ単位で行うとものとし、さらにここでは１ｍｓ単位のパルスに３分割して１回目消去（Erase1）、２回目消去（Erase2）、３回目消去（Erase3）の３つの分割制御フローを実行するものとする。また、上記４つの分割制御フローに対して、ベリファイは“０Ｈ“、１回目消去（Erase1）は”１Ｈ“、２回目消去（Erase2）は”２Ｈ“、３回目消去（Erase3）は”３Ｈ“を割り当てて、次に実行する分割制御フローを示すデータ（再開情報）を内蔵ＲＡＭ３４０に格納するものとする。
【０１３４】
ＣＰＵ４１０が、内蔵ＲＯＭ３３０に格納される消去プログラムを読み出し、実行すると、まずＣＰＵ４１０はタイマ起動信号Ｓ４２０に値“１”を出力して、タイマ４６０の時間計測を開始する（ＴＳ）。
【０１３５】
次にＣＰＵ４１０は、内蔵ＲＡＭ３４０から次に実行する分割制御フローを示すデータ（再開情報）を読み出す（Ａ）。
【０１３６】
初期状態において内蔵ＲＡＭは“０Ｈ”を保持しているため、ＣＰＵ３１０はベリファイ実行フローに分岐する（Ｂ０）。
【０１３７】
次にＣＰＵ４１０は、内蔵フラッシュメモリ３２０に対してベリファイ用の電圧設定を行うために必要な制御レジスタ３５０の設定を順次行う（Ｃ０）。
【０１３８】
次に内蔵フラッシュメモリ３２０の該当メモリセルが消去状態か否かを確認（ベリファイ）するため、アドレスバスＢ３００に該当アドレスを出力するとともに、リードイネーブル信号Ｓ３１０の値を“１”にして内蔵フラッシュメモリ３２０の該当アドレスのデータをデータバスＢ３１０から順次読み出す（Ｄ０）。
【０１３９】
次に、ＣＰＵ４１０は、上記ベリファイ結果を判定する（Ｅ０）。以下、ベリファイ結果がフェイルの場合について説明する。
【０１４０】
ＣＰＵ４１０はフェイルの結果を受けて、次に実行する分割制御フローが１回目消去（Erase1）であることを示す“１Ｈ”を内蔵ＲＡＭ３４０に格納する（Ｆ４）。
【０１４１】
次に、ＣＰＵ４１０は、内蔵フラッシュメモリに対して読み出し用の電圧設定を行うために必要な制御レジスタの設定を順次行う（Ｇ）。
【０１４２】
次にＣＰＵ４１０は、オーバーフロー信号Ｓ４３０により、タイマ４６０のオーバーフローを判定する（ＴＣ）。このときベリファイ動作に係る処理時間は０．５ｍｓのためオーバーフロー信号Ｓ４３０は“０”となり、ＣＰＵ４１０は次の分割制御フローを継続して実行するため、内蔵ＲＡＭ３４０が格納する再開情報を読み出す（Ａ）。上記のように、内蔵ＲＡＭ３４０はデータ“１Ｈ”を格納しているため、１回目消去（Erase1）フローに分岐する（Ｂ０）（Ｂ１）。
【０１４３】
次にＣＰＵ４１０は、消去用の電圧設定を行うために必要な制御レジスタ３５０の設定を順次行う（Ｃ１）。
【０１４４】
次にＣＰＵ４１０は、内蔵フラッシュメモリ３２０に対して分割消去パルスの１回目を印加するために必要な制御レジスタ３５０の設定を順次行う（Ｄ１）。
【０１４５】
次にＣＰＵ４１０は、次に実行する分割制御フローが２回目消去（Erase2）であることを示す“２Ｈ”を内蔵ＲＡＭ３４０に格納する（Ｆ１）。
【０１４６】
次に、ＣＰＵ４１０は、内蔵フラッシュメモリ３２０に対して読み出し用の電圧設定を行うために必要な制御レジスタ３５０の設定を順次行う（Ｇ）。
【０１４７】
次に、ＣＰＵ４１０は、オーバーフロー信号Ｓ４３０により、タイマ４６０のオーバーフローを判定する（ＴＣ）。このとき、ベリファイ動作に係る時間０．５ｍｓに加えて、分割消去の１回目が実施され合計１．５ｍｓの時間が経過しているため、オーバーフロー信号Ｓ４３０は“１”となり制御フローを終了する。このとき、消去処理はベリファイフローおよび１回目消去（Erase1）フローのみ実行して中断したことになる。
【０１４８】
このように、書き換え処理の制御フローを分割し、分割された個々のフローが完了する度に所定の時間を超えて処理が実行されているかを確認し、所定の時間を超えて処理が行われている場合には消去処理の実行を中断することで、書き換え処理開始から処理中断までの時間を均一化することができるため、アプリケーション上で内蔵フラッシュメモリ３２０の書き換え処理をタスク管理に埋め込むことがさらに容易となる。
【０１４９】
《実施の形態５》
本発明の実施の形態５では、実施の形態１または実施の形態２のフラッシュメモリのいずれかをエアコンシステムに搭載している。
【０１５０】
図７は、本発明の実施の形態５に係るエアコンシステムの構成を示すブロック図である。
【０１５１】
上記エアコンシステムは、リモコン５１０と室内機５２０とから構成される。室内機５２０は、マイクロコンピュータ５３０と、受光素子５８０と、オペアンプ５９０と、ＬＣＤ（液晶表示）パネルと、スピーカなどを備えている。マイクロコンピュータ５３０は、フラッシュメモリ５４０とＣＰＵ５５０とを備えている。フラッシュメモリ５４０は、実施の形態１または２で説明したいずれかのフラッシュメモリである。
【０１５２】
フラッシュメモリ５４０とＣＰＵ５５０とは、アドレスバスＢ５００、データバスＢ５１０、ライトイネーブル信号Ｓ５００、リードイネーブル信号Ｓ５１０を介して接続されている。
【０１５３】
リモコン５１０は、マイクロコンピュータ５６０と、ＬＥＤ５７０と、ＬＣＤパネルと、図示しないキーパッド等を備えており、ユーザがキーパッドを用いて行った操作に対する信号をマイクロコンピュータ５６０で受け、ＬＥＤ５７０により室内機５２０に伝送する。
【０１５４】
ＣＰＵ５５０は、フラッシュメモリ５４０に格納された命令コードを読み出し、解読、実行し、数ｍｓ単位でタスクを切替えながらエアコンシステムの各種制御を行うものとする。
【０１５５】
また、ＣＰＵ５５０は、受光素子５８０およびオペアンプ５９０を通じて、上記リモコン５１０の操作に対応する信号を受けて、フラッシュメモリ５４０の所定の領域に対してデータの書き込みコマンドを発行する。書き込みデータには、具体的には、電源オン／オフの状態、温度設定、冷房／暖房の状態、ファン（ＦＡＮ）の回転数、上下ルーバの角度、などがある。
【０１５６】
さらにＣＰＵ５５０は、フラッシュメモリ５４０の所定の領域が、上記書き込みデータで埋め尽くされた場合には、フラッシュメモリ５４０に対して消去コマンドを発行する。
【０１５７】
フラッシュメモリ５４０は、命令コードおよび上記の種種のデータを格納しており、リードイネーブル信号Ｓ５１０が値“１”である場合、アドレスバスＢ５００に出力されているアドレスによって指定されるメモリ領域に格納されている命令コードやその他のデータをデータバスＢ５１０に出力する。また、ライトイネーブル信号Ｓ５２０が値“１”である場合、アドレスバスＢ５００の値とデータバスＢ５１０の値との組み合わせをコマンドと認識してコマンドを解読し、書き込み、消去動作を実行する。ＣＰＵ５５０が発行する書き込みコマンドを受けて、書き込み動作を実施し、新たなデータを格納する。
【０１５８】
フラッシュメモリの消去コマンドの実行は、実施の形態１および実施の形態２にあるように、分割された制御フローを実施する度に消去動作を中断し、読み出し可能状態とするため、ＣＰＵ５５０は、消去コマンドを発行した後も所定の時間以内にフラッシュメモリ５４０に格納された命令コードを読み出すことが可能となるため、数ｍｓ単位でタスクを切替えながら、エアコンシステムの各種制御を行うことができる。
《その他の実施の形態》
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０１５９】
（１）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。上記ＲＡＭまたは上記ハードディスクユニットには、コンピュータプログラムが記憶されている。上記マイクロプロセッサが、上記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１６０】
（２）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。上記ＲＡＭには、コンピュータプログラムが記憶されている。上記マイクロプロセッサが、上記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。これらは個別に１チップ化されても良いし、一部または全てを含むように１チップ化されても良い。
【０１６１】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１６２】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１６３】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１６４】
（３）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。上記ＩＣカードまたは上記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、などから構成されるコンピュータシステムである。上記ＩＣカードまたは上記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、上記ＩＣカードまたは上記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０１６５】
（４）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１６６】
また、本発明は、上記コンピュータプログラムまたは上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-Ray Disk）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている上記コンピュータプログラムまたは上記デジタル信号であるとしてもよい。
【０１６７】
また、本発明は、上記コンピュータプログラムまたは上記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１６８】
また、上記プログラムまたは上記デジタル信号を上記記録媒体に記録して移送することにより、または上記プログラムまたは上記デジタル信号を上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０１６９】
（５）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１７０】
本発明に係る不揮発性メモリの自動書き換え中断方法と不揮発性メモリおよびマイクロコンピュータは、不揮発性メモリの書き換え処理が所定の時間内に自動で中断できるという効果を有し、例えば、エアコンシステムにおける温度設定データなどのように次々と変更されるデータを記録していく必要のあるシステムに有用である。
【図面の簡単な説明】
【０１７１】
【図１】本発明の実施の形態１に係るフラッシュメモリ１００の構成を示すブロック図である。
【図２】本発明の実施の形態１に係る書き換え制御部１２０が消去コマンドを実行する場合の制御フローを示すフローチャートである。
【図３】本発明の実施の形態２に係るフラッシュメモリ２００の構成を示すブロック図である。
【図４】本発明の実施の形態２に係る書き換え制御部２２０が消去コマンドを実行する場合の制御フローを示すフローチャートである。
【図５】本発明の実施の形態３に係るマイクロコンピュータ３００の構成を示すブロック図である。
【図６】本発明の実施の形態４に係るマイクロコンピュータ４００の構成を示すブロック図である。
【図７】本発明の実施の形態５に係るエアコンシステムの構成を示すブロック図である。
【符号の説明】
【０１７２】
１００  フラッシュメモリ
１１０  コマンドデコード部
１２０  書き換え制御部
１３０  メモリアレイ
１４０  出力制御部
１５０  再開情報保持部
２００  フラッシュメモリ
２２０  書き換え制御部
２６０  タイマ
３００  マイクロコンピュータ
３１０  ＣＰＵ
３２０  フラッシュメモリ
３３０  ＲＯＭ
３４０  ＲＡＭ
３５０  制御レジスタ
４００  マイクロコンピュータ
４１０  ＣＰＵ
４６０  タイマ
５１０  リモコン
５２０  室内機
５３０  マイクロコンピュータ
５４０  フラッシュメモリ
５５０  ＣＰＵ
Ｂ１００  アドレス入力
Ｂ１１０  データ入出力
Ｂ１２０  書き換えアドレスバス
Ｂ１３０  書き込みデータバス
Ｂ１４０  コマンド信号
Ｂ１５０  アレイ制御信号
Ｂ１６０  状態信号
Ｂ１７０  読み出しデータバス
Ｂ３００  アドレスバス
Ｂ３１０  データバス
Ｂ５００  アドレスバス
Ｂ５１０  データバス
Ｓ１００  ライトイネーブル
Ｓ１１０  リードイネーブル
Ｓ２２０  タイマ起動信号
Ｓ２３０  オーバーフロー信号
Ｓ３００  ライトイネーブル
Ｓ３１０  リードイネーブル
Ｓ４２０  タイマ起動信号
Ｓ４３０  オーバーフロー信号
Ｓ５００  ライトイネーブル
Ｓ５１０  リードイネーブル
【図１】
2010079758.tif 000003
【図２】
2010079758.tif 000004
【図３】
2010079758.tif 000005
【図４】
2010079758.tif 000006
【図５】
2010079758.tif 000007
【図６】
2010079758.tif 000008
【図７】
2010079758.tif 000009