説明

不揮発性メモリの自動書き換え中断方法と不揮発性メモリおよびマイクロコンピュータ

【課題】不揮発性メモリの自動書き換え処理が所定の時間内に自動で中断できるようにする。
【解決手段】不揮発性メモリ100において、コマンド解読部110が外部から入力されるコマンドを解読した結果により、書き換え制御部120は複数個の分割制御フローから構成される制御フローを実行し、メモリアレイ130の書き換えを制御する。書き換え制御部120は、1つの分割制御フローが完了する毎に制御フローを中断し、メモリアレイ130を読み出し可能な状態にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、書き換え可能な不揮発性メモリの自動書き換えを中断して読み出し動作を可能とする技術に関するものである。具体的には、自動書き換えを中断するための構成を内蔵した不揮発性メモリに関し、さらにCPUと不揮発性メモリとを集積化し、不揮発性メモリの自動書き換えを中断する構成を内蔵したマイクロコンピュータに関するものである。
【背景技術】
【0002】
書き換え可能な不揮発性メモリには、自動書き換え機能およびその中断機能を有するものがある(特許文献1参照)。
【0003】
それは、自動消去中に保留信号がアクティブになると消去を中断し、保留信号が非活動であるときに所定の状態により消去を再開するものである。
【特許文献1】特許第3415172号
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記のような不揮発性メモリでは消去を中断するには、中断を指示するコマンドを不揮発性メモリに入力し、保留信号をアクティブにする必要がある。近年の組み込み用とのアプリケーションでは、数ms単位からなる一連の処理(タスク)を切り替えながら機器の制御を行うタスク管理方式が多く採用されている。その一方で不揮発性メモリの書き換え(消去および書き込み)は一般的に数msから数秒かかるため、あるタスク中に不揮発性メモリの書き換えが発生しても、そのタスク中に書き換えが完了しない。また、書き換え中には不揮発性メモリの内容を読み出すことができないため、不揮発性メモリに格納された次のタスク用のプログラムを実行できず、タスクの切り替えが阻害されてしまう。これを解決するためには、専用のタイマを用いて時間を計測し、所望の時間で不揮発性メモリの書き換えを中断するために、中断を指示するコマンドを入力する必要がある。
【0005】
本発明は、上記の点に鑑み、不揮発性メモリの書き換え処理が所定の時間内に自動で中断できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の不揮発性メモリの自動書き換え中断方法は、不揮発性メモリを書き換えるための所定の制御フローを複数個の分割制御フローから構成し、複数個の分割制御フローの1つが完了する度に制御フローの実行を中断することにより不揮発性メモリの書き換えを中断し、不揮発性メモリを読み出し可能な状態とする。
【0007】
これにより、分割制御フローが完了する度に書き換えのための制御フローを中断するので、自動で不揮発性メモリの書き換え処理を中断することができる。
【0008】
上記本発明の不揮発性メモリの自動書き換え中断方法においては、不揮発性メモリの書き換えを中断した状態から不揮発性メモリの書き換えを再開するために必要な再開情報を記憶し、制御フローとして、再開情報から決定される所定の分割制御フローを実行し、所定の分割制御フローが完了すると制御フローの実行を中断するとともに、再開情報を更新記憶することが好ましい。
【0009】
これにより、不揮発性メモリの書き換え処理を自動で中断した後、その状態から再開することができる。
【0010】
上記本発明の不揮発性メモリの自動書き換え中断方法においては、制御フローでは、まずタイマによる時間計測を開始し、分割制御フローが完了する度に時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には制御フローの実行を中断することが好ましい。
【0011】
これにより、分割制御フローが完了する度にタイマの時間超過の有無を確認し書き換え制御を中断するか継続するかを決定するので、書き換え処理の中断までの時間を、より所望の時間に近付けることができる。
【0012】
本発明の不揮発性メモリは、書き換え可能な不揮発性メモリであって、複数のメモリセルから構成されるメモリアレイと、不揮発性メモリ外部から入力されるコマンドを解読するコマンド解読部と、コマンド解読部の解読結果により、所定の制御フローに従いメモリアレイを書き換える書き換え制御部と、を備え、制御フローは、複数個の分割制御フローから構成され、複数個の分割制御フローの1つが完了する度に制御フローの実行を中断することによりメモリアレイの書き換えを中断し、メモリアレイを読み出し可能な状態とするように構成されている。
【0013】
これにより、分割制御フローが完了する度に書き換えのための制御フローを中断するので、自動で不揮発性メモリの書き換え処理を中断することができる。
【0014】
上記本発明の不揮発性メモリにおいては、書き換え制御部は、メモリアレイの書き換えを中断した状態からメモリアレイの書き換えを再開するために必要な再開情報を記憶する再開情報保持部を備え、制御フローとして、再開情報保持部が保持する再開情報から決定される所定の分割制御フローを実行し、所定の分割制御フローが完了すると制御フローの実行を中断するとともに、再開情報を再開情報保持部に更新記憶するように構成されていることが好ましい。
【0015】
これにより、不揮発性メモリの書き換え処理を自動で中断した後、その状態から再開することができる。
【0016】
上記本発明の不揮発性メモリにおいては、時間を計測し所定の時間を超過したことを検出するタイマを備え、制御フローでは、まずタイマの時間計測を開始し、分割制御フローが完了する度にタイマの時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には制御フローの実行を中断するように構成されていることが好ましい。
【0017】
これにより、分割制御フローが完了する度にタイマの時間超過の有無を確認し書き換え制御を中断するか継続するかを決定するので、書き換え処理の中断までの時間を、より所望の時間に近付けることができる。
【0018】
本発明のマイクロコンピュータは、書き換え可能な不揮発性メモリと、不揮発性メモリを所定の制御フローに従い書き換え制御するCPUとを備えたマイクロコンピュータであって、制御フローは、複数個の分割制御フローから構成され、複数個の分割制御フローの1つが完了する度に制御フローの実行を中断することにより不揮発性メモリの書き換えを中断し、不揮発性メモリを読み出し可能な状態とするように構成されている。
【0019】
これにより、分割制御フローが完了する度に書き換えのための制御フローを中断するので、自動で不揮発性メモリの書き換え処理を中断することができる。
【0020】
上記本発明のマイクロコンピュータによれば、不揮発性メモリの書き換えを中断した状態から不揮発性メモリの書き換えを再開するために必要な再開情報を記憶する再開情報保持部を備え、制御フローとして再開情報保持部が保持する再開情報から決定される所定の分割制御フローを実行し、所定の分割制御フローが完了すると制御フローの実行を中断するとともに、再開情報を再開情報保持部に更新記憶するように構成されていることが好ましい。
【0021】
これにより、不揮発性メモリの書き換え処理を自動で中断した後、その状態から再開することができる。
【0022】
上記本発明のマイクロコンピュータにおいては、時間を計測し所定の時間を超過したことを検出するタイマを備え、制御フローでは、まずタイマの時間計測を開始し、分割制御フローが完了する度にタイマの時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には制御フローの実行を中断するように構成されていることが好ましい。
【0023】
これにより、分割制御フローが完了する度にタイマの時間超過の有無を確認し書き換え制御を中断するか継続するかを決定するので、書き換え処理の中断までの時間を、より所望の時間に近付けることができる。
【発明の効果】
【0024】
本発明によると、不揮発性メモリの書き換え処理を所定の時間内に自動で中断して読み出し動作を可能とできる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の各実施の形態において、他の実施の形態と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【0026】
《実施の形態1》
図1は、本発明の実施の形態1に係るフラッシュメモリ100(不揮発性メモリ)の構成を示すブロック図である。
【0027】
フラッシュメモリ100は、コマンドデコード部110(コマンド解読部)、書き換え制御部120、メモリアレイ130、および出力制御部140を備えている。また、書き換え制御部120は、再開情報保持部150を備えている。
【0028】
コマンドデコード部110は、フラッシュメモリ100の外部からアドレス入力B100、データ入出力B110、ライトイネーブル信号S100、リードイネーブル信号S110が入力されている。
【0029】
コマンドデコード部110は、リードイネーブル信号S110に“1”が入力されると、リードアクセスと認識し書き換えアドレスバスB120にアドレス入力B100の値を出力するとともに、コマンド信号B140にリードアクセスを示す値を出力する。コマンドデコード部110は、ライトイネーブル信号S100に“1”が入力されると、そのときのアドレス入力B100とデータ入出力B110との組み合わせをコマンドと認識してコマンドを解読し、解読結果を書き換えアドレスバスB120上の書き換えアドレス、書き込みデータバスB130上の書き込みデータ、コマンド信号B140として書き換え制御部120に出力する。
【0030】
書き換え制御部120は、書き換えアドレスバスB120、書き込みデータバスB130およびコマンド信号B140から、各コマンドに応じた所定の制御フロー(後述)に従いアレイ制御信号B150を順次出力し、メモリアレイ130の読み出し、書き込み、消去を制御するとともに、コマンド実行状態を状態信号B160に出力する。
【0031】
ここでは、説明を簡単にするために、状態信号B160は4ビットでコマンド正常終了の場合には“1H”(“H”は16進表記であることを示す。)を、コマンド異常終了の場合には、“2H“を、コマンド実行中の場合には、”4H“を、コマンド中断終了の場合には”8H“を、上記何れにも該当しない場合には”0H“を出力するものとする。
【0032】
また、書き換え制御部120は、所定の制御フローに従い、再開情報保持部150への書き込みおよび読み出しを行う。
【0033】
再開情報保持部150は、コマンド再開時に実行する分割制御フローを示すデータ(再開情報)を格納、保持する。初期状態において、再開情報保持部150は、“0H”を保持しているものとする。
【0034】
メモリアレイ130は複数のメモリセルを備え、アレイ制御信号B150に応じて、該当するメモリセルの読み出し、書き込み、消去を行い、アレイ制御信号B150がメモリアレイ130に格納されるデータの読み出しを指示した場合には、該当するメモリセルのデータを読み出しデータバスB170に出力する。
【0035】
出力制御部140は、フラッシュメモリ100の外部から入力されるリードイネーブル信号S110に“1”が入力されると、書き換え制御部120が出力する状態信号B160が“0H”の場合には、読み出しデータバスB170の値をデータ入出力B110に出力し、状態信号B160が“0H”以外の場合には、状態信号B160の値をデータ入出力B110に出力する。
【0036】
―動作―
まず、上記のように構成されたフラッシュメモリ100に対し、外部デバイス(図示せず)がメモリアレイ130に格納されたデータを読み出す動作について説明する。
【0037】
外部デバイスは、フラッシュメモリ100に格納されたデータを読み出すために、アドレス入力B100に所望のアドレス、例えばアドレス“100H”を出力し、さらにリードイネーブル信号S110を値“1”にする。
【0038】
コマンドデコード部110は、リードイネーブル信号S110が“1”であることから、リードアクセスと認識し書き換えアドレスバスB120にアドレス入力B100の値を出力するとともに、コマンド信号B140にはリードアクセスを示す値を出力する。
【0039】
書き換え制御部120は、コマンド信号B140にリードアクセスを示す値が入力されるため、書き換えアドレスバスB120が示すアドレスに対してメモリアレイ130からデータを読み出すために必要な信号をアレイ制御信号B150に順次出力するとともに、コマンド実行ではないため、状態信号B160に“0H”を出力する。
【0040】
メモリアレイ130は、アレイ制御信号B150に従い、指定のアドレスに該当するメモリセルのデータを読み出しデータバスB170に出力する。
【0041】
出力制御部140は、状態信号B160が“0H”のため、読み出しデータバスB170の値をデータ入出力B110に出力する。
【0042】
このようにして、外部デバイスはデータ入出力B110から所望のアドレスに格納されたフラッシュメモリ100のデータを読み出すことができる。
【0043】
次に外部デバイスが、フラッシュメモリ100に所望のコマンド、ここでは消去コマンドを発行する動作について説明する。
【0044】
外部デバイスは、ライトイネーブル信号S100を値“1”にして、アドレス入力B100およびデータ入出力B110に消去コマンドを示す組み合わせを順次入力する。
【0045】
コマンドデコード部110は、ライトイネーブル信号S100が“1”であることから、アドレス入力B100とデータ入出力B110との組み合わせをコマンドと認識して解読し、コマンドの解読結果が消去コマンドであることから、書き換えアドレスバスB120に該当アドレスを、コマンド信号B140に消去コマンドを示す値をそれぞれ出力する。
【0046】
書き換え制御部120は、コマンド信号B140の値を受けて、メモリアレイ130の該当アドレスのメモリセルを消去するための所定の制御フローに従い、アレイ制御信号B150を順次出力するとともに、状態信号B160にコマンド実行中であることを示す“4H”を出力する。
【0047】
メモリアレイ130は、アレイ制御信号B150に従い、当アドレスに相当するメモリセルの消去および、該当するメモリセルが消去されたか否かを確認するベリファイを行う。
【0048】
このとき、外部デバイスがフラッシュメモリ100に対してリードイネーブル信号S110を値“1”にしてリードアクセスを行うと、出力制御部140は、状態信号B160が“4H”のため、データ入出力B110に“4H”を出力する。
【0049】
このようにして、外部デバイスはコマンド発行後にリードアクセスを行うことで、コマンド実行中であることを示す“4H”をデータ入出力B110から読み出すことができる。
【0050】
同様に、コマンド正常終了、コマンド異常終了、コマンド中断の各状態についても、データ入出力B110から読み出すことができる。
【0051】
次に、外部デバイスが消去コマンドを発行した場合に、書き換え制御部120が実行する制御フローについて、図2を用いて詳細に説明する。
【0052】
図2は、書き換え制御部120が消去コマンドを実行する場合の制御フローを示すフローチャートである。
【0053】
消去コマンドの制御フローは、メモリアレイ130に格納されたデータが消去されたか否かを確認するベリファイ(Verify)と、メモリアレイ130に消去パルスを印加する消去(Erase)の2つに分類できる。ここで、消去パルスの印加は通常3ms単位で行うとものとし、さらにここでは1ms単位のパルスに3分割して1回目消去(Erase1)、2回目消去(Erase2)、3回目消去(Erase3)の3つの分割制御フローを実行するものとする。また、上記4つの分割制御フローに対して、ベリファイは“0H“、1回目消去(Erase1)は”1H“、2回目消去(Erase2)は”2H“、3回目消去(Erase3)は”3H“を割り当てて、次に実行する分割制御フローを示すデータ(再開情報)を再開情報保持部150に格納するものとする。
【0054】
初期状態において、書き換え制御部120にコマンド信号B140から消去コマンドを示す信号が入力されると、書き換え制御部120は再開情報保持部150から次に実行する分割制御フローを示すデータ(再開情報)を読み出す(A)。
【0055】
初期状態において再開情報保持部150は“0H”を保持しているため、ベリファイ実行フローに分岐する(B0)。
【0056】
次に書き換え制御部120は、メモリアレイ130に対してベリファイ用の電圧設定を行うために必要な制御信号をアレイ制御信号B150に順次出力する(C0)。
【0057】
次に書き換え制御部120は、メモリアレイ130の該当アドレスが消去状態か否かを確認(ベリファイ)するため、読み出しに必要な制御信号をアレイ制御信号B150に順次出力し、メモリアレイ130が出力するデータを読み出しデータバスB170から順次読み出す(D0)。
【0058】
次に、書き換え制御部120は、上記ベリファイ結果を判定する(E0)。以下、ベリファイ結果がフェイルの場合について説明する。
【0059】
書き換え制御部120はフェイルの結果を受けて、次に実行する分割制御フローが1回目消去(Erase1)であることを示す“1H”を再開情報保持部150に格納する(F4)。
【0060】
次に、書き換え制御部120は、読み出し(Read)用の電圧設定を行うために必要な制御信号をアレイ制御信号B150に順次出力し(G)、制御フローを終了する。
【0061】
このとき、消去コマンドは、ベリファイのみ実行して中断したことになる。その一方でメモリアレイ130は、読み出し用の電圧設定となっているため、外部デバイスはリードイネーブル信号S110の値を“1”とすることで、フラッシュメモリ100からデータを読み出すことができる。
【0062】
次に、上記の消去コマンドが中断した状態で、再び消去コマンドが入力された場合の動作について説明する。
【0063】
再度、消去コマンドが入力されると、書き換え制御部120は再開情報保持部150が格納するデータを読み出す(A)。上記のように、再開情報保持部150はデータ“1H”を格納しているため、1回目消去(Erase1)フローに分岐する(B0)(B1)。
【0064】
次に書き換え制御部120は、消去(Erase)用の電圧設定を行うために必要な制御信号をアレイ制御信号B150に順次出力する(C1)。
【0065】
次に書き換え制御部120は、メモリアレイ130に対して分割消去パルスの1回目を印加するために必要な制御信号をアレイ制御信号B150に順次出力する(D1)。
【0066】
次に書き換え制御部120は、次に実行する分割制御フローが2回目消去(Erase2)であることを示す“2H”を再開情報保持部150に格納する(F1)。
【0067】
次に、書き換え制御部120は、メモリアレイ130に対して読み出し用の電圧設定を行うために必要な制御信号をアレイ制御信号B150に順次出力し(G)、制御フローを終了する。
【0068】
このとき、消去コマンドは1回目消去(Erase1)フローのみ実行して中断したことになる。その一方でメモリアレイ130は、読み出し用の電圧設定となっているため、外部デバイス(図示せず)はリードイネーブル信号S110の値を“1”とすることで、フラッシュメモリ100からデータを読み出すことができる。
【0069】
同様にして、分割消去パルスの3回目まで実行すると、書き換え制御部120は次に実行する分割制御フローがベリファイであることを示す“0H”を再開情報保持部150に格納する(F0)ため、コマンド再開時には再びベリファイから実行される。
【0070】
以上のように、ベリファイと消去パルスの印加を繰り返し、ベリファイがパスすると、書き換え制御部120は初期値である“0H”を再開情報保持部150に格納する(F0)。
【0071】
このように、消去コマンドの制御フローを分割し、分割された個々のフローが完了する度に消去コマンドの実行を中断し、フラッシュメモリ100のデータ読み出しを可能とすることで、アプリケーション上でフラッシュメモリ100の消去処理をタスク管理に埋め込むことが容易となる。
【0072】
《実施の形態2》
図3は、本発明の実施の形態2に係るフラッシュメモリ200の構成を示すブロック図である。同図に示すように、フラッシュメモリ200は、実施の形態1のフラッシュメモリ100の構成に加え、タイマ260を備えている。
【0073】
タイマ260は、タイマ起動信号S220が“1”になると時間計測を開始し、“0”になると時間計測を完了し、計測値をクリアする。また計測値がオーバーフローするとオーバーフロー信号S230に“1”を出力する。ここでは、説明を簡単にするためにタイマ260の周期は1msとする。
【0074】
書き換え制御部220は、実施の形態1の書き換え制御部120の機能に加えて、タイマ起動信号S220によりタイマ260の起動を制御できるとともに、オーバーフロー信号S230により、タイマ260のオーバーフローを検知できる。
【0075】
―動作―
上記のように構成されたフラッシュメモリ200に対し、外部デバイス(図示せず)がメモリアレイ130に格納されたデータを読み出す動作および、外部デバイスが、フラッシュメモリ200に所望のコマンド、ここでは消去コマンドを発行する動作の概要については、実施の形態1と同様であるので説明を省略する。
【0076】
次に、外部デバイスが消去コマンドを発行した場合の、書き換え制御部120が実行する制御フローについて、図4を用いて詳細に説明する。
【0077】
図4は、書き換え制御部220が消去コマンドを実行する場合の制御フローを示すフローチャートである。同図に示すように、実施の形態1に係るフローチャートから、書き換え制御部220がタイマ起動信号S220に“1”を出力して、タイマ260の時間計測を開始する処理(TS)および、書き換え制御部220がオーバーフロー信号S230により、タイマ260のオーバーフローを判定する処理(TC)が追加されている。
【0078】
消去コマンドの制御フローは、メモリアレイ130に格納されたデータが消去されたか否かを確認するベリファイと、メモリアレイ130に消去パルスを印加する消去の2つに分類できる。ここで、ベリファイ処理には0.5msかかるものとする。また、消去パルスの印加は通常3ms単位で行うとものとし、さらにここでは1ms単位のパルスに3分割して1回目消去(Erase1)、2回目消去(Erase2)、3回目消去(Erase3)の3つの分割制御フローを実行するものとする。また、上記4つの分割制御フローに対して、ベリファイは“0H“、1回目消去(Erase1)は”1H“、2回目消去(Erase2)は”2H“、3回目消去(Erase3)は”3H“を割り当てて、次に実行する分割制御フローを示すデータ(再開情報)を再開情報保持部150に格納するものとする。
【0079】
初期状態において、書き換え制御部120にコマンド信号B140から消去コマンドを示す信号が入力されると、書き換え制御部220はタイマ起動信号S220に“1”を出力して、タイマ260の時間計測を開始する(TS)。
【0080】
次に書き換え制御部220は再開情報保持部150から次に実行する分割制御フローを示すデータ(再開情報)を読み出す(A)。
【0081】
初期状態において再開情報保持部150は“0H”を保持しているため、ベリファイ実行フローに分岐する(B0)。
【0082】
次に書き換え制御部220は、メモリアレイ130に対してベリファイ用の電圧設定を行うために必要な制御信号をアレイ制御信号B150に順次出力する(C0)。
【0083】
次に書き換え制御部120は、メモリアレイ130の該当アドレスが消去状態か否かを確認(ベリファイ)するため、読み出しに必要な制御信号をアレイ制御信号B150に順次出力し、メモリアレイ130が出力するデータを読み出しデータバスB150から順次読み出す(D0)。
【0084】
次に、書き換え制御部220は、上記ベリファイ結果を判定する(E0)。以下、ベリファイ結果がフェイルの場合について説明する。
【0085】
書き換え制御部220はフェイルの結果を受けて、次に実行する分割制御フローが1回目消去(Erase1)であることを示す“1H”を再開情報保持部150に格納する(F4)。
【0086】
次に、書き換え制御部220は、読み出し用の電圧設定を行うために必要な制御信号をアレイ制御信号B150に順次出力する(G)。
【0087】
次に、書き換え制御部220は、オーバーフロー信号S230により、タイマ260のオーバーフローを判定する(TC)。このとき、ベリファイ動作に係る処理時間は0.5msのためオーバーフロー信号S230は“0”となり、書き換え制御部220は次の分割制御フローを継続して実行するため、再開情報保持部150が格納するデータを読み出す(A)。上記のように、再開情報保持部150はデータ“1H”を格納しているため、1回目消去(Erase1)フローに分岐する(B0)(B1)。
【0088】
次に書き換え制御部220は、消去用の電圧設定を行うために必要な制御信号をアレイ制御信号B150に順次出力する(C1)。
【0089】
次に書き換え制御部220は、メモリアレイ130に対して分割消去パルスの1回目を印加するために必要な制御信号をアレイ制御信号B150に順次出力する(D1)。
【0090】
次に書き換え制御部220は、次に実行する分割制御フローが2回目消去(Erase2)であることを示す“2H”を再開情報保持部150に格納する(F1)。
【0091】
次に、書き換え制御部220は、メモリアレイ130に対して読み出し用の電圧設定を行うために必要な制御信号をアレイ制御信号B150に順次出力する(G)。
【0092】
次に、書き換え制御部220は、オーバーフロー信号S230により、タイマ260のオーバーフローを判定する(TC)。このとき、ベリファイ動作に係る処理時間0.5msに加えて、分割消去の1回目が実施され合計1.5msの時間が経過しているため、オーバーフロー信号S230は“1”となり制御フローを終了する。
【0093】
このとき、消去コマンドはベリファイフローおよび1回目消去(Erase1)フローのみ実行して中断したことになる。
【0094】
このように、消去コマンドの制御フローを分割し、分割された個々のフローが完了する度に所定の時間を超えて処理が実行されているかを確認し、所定の時間を超えて処理が行われている場合には消去コマンドの実行を中断することで、コマンド発行からコマンド中断までの時間を均一化することができるため、アプリケーション上でフラッシュメモリ100の書き換え処理をタスク管理に埋め込むことがさらに容易となる。
【0095】
《実施の形態3》
図5は、本発明の実施の形態3に係るマイクロコンピュータ300の構成を示すブロック図である。マイクロコンピュータ300は、CPU310(Central Processing Unit)、内蔵フラッシュメモリ320(不揮発性メモリ)、内蔵ROM330(Read Only Memory)、内蔵RAM(Random Access memory)(再開情報保持部)を備えている。
【0096】
CPU310は、内蔵フラッシュメモリ320および内蔵ROM330から命令コードを読み出して解読し、命令を実行することにより、各種制御を行うようになっている。命令コードの読み出しは、アドレスバスB300に、読み出す命令コードが格納されている領域のアドレスを出力し、さらにリードイネーブル信号S300の値を“1”にすることによって行われる。読み出された命令コードはデータバスB310を介してCPU310に読み込まれる。
【0097】
内蔵フラッシュメモリ320は、メモリアレイ(図示せず)に命令コードおよびその他のデータを記憶しており、リードイネーブル信号S300が値“1”である場合、アドレスバスB300に出力されているアドレスによって指定されるメモリ領域に格納されている命令コードやその他のデータをデータバスB310に出力するようになっている。
【0098】
内蔵フラッシュメモリ320は、メモリアレイに格納するデータを消去、書き込みするための制御に用いる制御レジスタ350を備えている。CPU310が、後述する所定の制御フローに従い制御レジスタ350の値を順次書き換えることにより、内蔵フラッシュメモリ320のメモリアレイに対して消去、書き込みを行うことができる。制御レジスタ350は、ライトイネーブル信号S300の値が“1”である場合、アドレスバスB300に出力されているアドレスによって指定されレジスタに、データバスB310に出力されている値を格納保持するようになっている。
【0099】
内蔵ROM330は、内蔵フラッシュメモリ320の書き換えを行うためのプログラムを構成する命令コードおよびその他データを記憶しており、リードイネーブル信号S300が値“1”である場合、アドレスバスB300に出力されているアドレスによって指定されるメモリ領域に格納されている命令コードやその他のデータをデータバスB310に出力するようになっている。
【0100】
内蔵RAM340は、命令コードおよびその他データを記憶しており、リードイネーブル信号S310が値“1”である場合、アドレスバスB300に出力されているアドレスによって指定されるメモリ領域に格納されている命令コードやその他データのデータをデータバスB310に出力するようになっている。また、内蔵RAM340は、ライトイネーブル信号S300が値“1”である場合、アドレスバスB300に出力されているアドレスによって指定されるメモリ領域に、データバスB310に出力されている値を格納保持するようになっている。
【0101】
また、内蔵RAMの所定のアドレスには、次に実行する分割制御フローを格納保持しており、初期状態は“0”が格納されているものとする。
【0102】
―動作―
まず、上記のように構成されたマイクロコンピュータ300におけるCPU310が、内蔵ROM330に格納された内蔵フラッシュメモリ320のデータを書き換えるためのプログラムを実行する動作について説明する。
【0103】
CPU310は、内蔵ROM330から命令コードを読み出すために、アドレスバスB300に、内蔵ROM330に該当するアドレス、例えばアドレス“300H”を出力し、さらにリードイネーブル信号S310を値“1”にする。そしてデータバスB310から命令コードを読み出して解読し、命令を実行する。
【0104】
次にCPU310は、後述する所定の制御フローに従い制御レジスタ350の値を順次書き換えるために、アドレスバスB300に、制御レジスタ350に該当するアドレス、例えばアドレス“200H”を出力するとともに、ライトイネーブル信号S300を値“1”にし、さらにデータバスB310に所定のデータを出力する。
【0105】
このようにして、CPU310が、内蔵ROM330に格納された内蔵フラッシュメモリ320のデータを書き換えるためのプログラムを実行し、フラッシュメモリ320のデータを書き換えることができる。
【0106】
次に、CPU310が、内蔵ROM330に格納された内蔵フラッシュメモリ320のデータを書き換えるためのプログラムを実行する動作について、図2を用いて詳細に説明する。
【0107】
図2は、CPU310がフラッシュメモリ320の消去を実行する場合の制御フローを示すフローチャートであり、実施の形態1における書き換え制御部120が消去コマンドを実行する場合の制御フローと全く同じであるが、制御フローを実現するプログラムが内蔵ROM330に格納されており、このプログラムをCPU310が実行する点で大きく異なる。また、実施の形態1では書き換え制御部120がアレイ制御信号B150を出力してメモリアレイ130の消去を実現していたが、本実施例ではCPU310が制御レジスタ350を書き換えることで内蔵フラッシュメモリ320のデータを消去する。
【0108】
消去の制御フローは、内蔵フラッシュメモリ320に格納されたデータが消去されたか否かを確認するベリファイと、内蔵フラッシュメモリ320に消去パルスを印加する消去の2つに分類できる。ここで、消去パルスの印加は通常3ms単位で行うとものとし、さらにここでは1ms単位のパルスに3分割して1回目消去(Erase1)、2回目消去(Erase2)、3回目消去(Erase3)の3つの分割制御フローを実行するものとする。また、上記4つの分割制御フローに対して、ベリファイは“0H“、1回目消去(Erase1)は”1H“、2回目消去(Erase2)は”2H“、3回目消去(Erase3)は”3H“を割り当てて、次に実行する分割制御フローを示すデータ(再開情報)を内蔵RAM340の所定のアドレスに格納するものとする。
【0109】
CPU310が、内蔵ROM330に格納される消去プログラムを読み出し、実行すると、まずCPU310は内蔵RAM340から、次に実行する分割制御フローを示すデータ(再開情報)を読み出す(A)。
【0110】
初期状態において内蔵RAM340は“0H”を保持しているため、CPU310はベリファイ実行フローに分岐する(B0)。
【0111】
次にCPU310は、内蔵フラッシュメモリ320に対してベリファイ用の電圧設定を行うために必要な制御レジスタ350の設定を順次行う(C0)。
【0112】
次にCPU310は、内蔵フラッシュメモリ320の該当するメモリセルが消去状態か否かを確認(ベリファイ)するため、アドレスバスB300に該当アドレスを出力するとともに、リードイネーブル信号S310の値を“1”にして内蔵フラッシュメモリ320の該当するメモリセルのデータをデータバスB310から順次読み出す(D0)。
【0113】
次に、CPU310は、上記ベリファイ結果を判定する(E0)。以下、ベリファイ結果がフェイルの場合について説明する。
【0114】
CPU310はフェイルの結果を受けて、次に実行する分割制御フローが1回目消去(Erase1)であることを示す“1H”を内蔵RAM340に格納する(F4)。
【0115】
次に、CPU310は、内蔵フラッシュメモリ320に対して読み出し用の電圧設定を行うために必要な制御レジスタの設定を順次行い(G)、制御フローを終了する。
【0116】
このとき、消去処理は、ベリファイのみ実行して中断したことになる。その一方で内蔵フラッシュメモリ320は、読み出し用の電圧設定となっているため、CPU310はアドレスバスB300に内蔵フラッシュメモリ320のアドレスを出力しリードイネーブル信号S110の値を“1”とすることで、内蔵フラッシュメモリ320からデータを読み出すことができる。
【0117】
次に、上記の消去処理が中断した状態で、再び消去処理を実行する動作について説明する。
【0118】
再度、CPU310が、内蔵ROM330に格納される消去プログラムを読み出し、実行すると、CPU310は内蔵RAM340が格納する再開情報データを読み出す(A)。上記のように、内蔵RAM340は再開情報データとして“1H”を格納しているため、1回目消去(Erase1)フローに分岐する(B0)(B1)。
【0119】
次にCPU310は、消去用の電圧設定を行うために必要な制御レジスタ350の設定を順次行う(C1)。
【0120】
次にCPU310は、内蔵フラッシュメモリ320に対して分割消去パルスの1回目を印加するために必要な制御レジスタ350の設定を順次行う(D1)。
【0121】
次にCPU310は、次に実行する分割制御フローが2回目消去(Erase2)であることを示す “2H”を内蔵RAM340に格納する(F1)。
【0122】
次に、CPU310は、内蔵フラッシュメモリ320に対して読み出し用の電圧設定を行うために必要な制御レジスタ350の設定を順次行い(G)、制御フローを終了する。
【0123】
このとき、1回目消去(Erase1)フローのみ実行して中断したことになる。その一方で内蔵フラッシュメモリ320は、読み出し用の電圧設定となっているため、CPU310はリードイネーブル信号S310の値を“1”とすることで、内蔵フラッシュメモリ320からデータを読み出すことができる。
【0124】
同様にして、分割消去パルスの3回目まで実行すると、CPU310は次に実行する分割制御フローがベリファイであることを示す“0H”を内蔵RAM340に格納する(F0)ため、消去処理再開時には再びベリファイから実行される。
【0125】
以上のように、ベリファイと消去パルスの印加を繰り返し、ベリファイがパスすると、CPU310は初期値である“0H”を内蔵RAM340に格納する(F0)。
【0126】
このように、書き換え処理の制御フローを分割し、分割された個々のフローが完了する度に消去処理の実行を中断し、内蔵フラッシュメモリ320のデータ読み出しを可能とすることで、アプリケーション上で内蔵フラッシュメモリ320の書き換え処理をタスク管理に埋め込むことが容易となる。
【0127】
《実施の形態4》
図6は、本発明の実施の形態4に係るマイクロコンピュータ400の構成を示すブロック図である。同図に示すように、マイクロコンピュータ400は、実施の形態3のマイクロコンピュータ300の構成に加え、タイマ460を備えている。
【0128】
タイマ460は、タイマ起動信号S420が“1”になると時間計測を開始し、“0”になると時間計測を完了し、計測値をクリアする。また、計測値がオーバーフローするとオーバーフロー信号S430に“1”を出力する。ここでは説明を簡単にするためにタイマ460の周期は1msとする。
【0129】
CPU410は実施の形態3のCPU310の機能に加えて、タイマ起動信号S420によりタイマ460の起動を制御できるとともに、オーバーフロー信号S430により、タイマ460のオーバーフローを検知できる。
【0130】
―動作―
上記のように構成されたマイクロコンピュータ400におけるCPU410が、内蔵ROM330に格納された内蔵フラッシュメモリ320のデータを書き換えるためのプログラムを実行する動作の概要については、実施の形態3と同様であるので説明を省略する。
【0131】
次に、CPU410が、内蔵ROM330に格納された内蔵フラッシュメモリ320のデータを書き換えるためのプログラムを実行する動作について、図4を用いて詳細に説明する。
【0132】
図4は、CPU410がフラッシュメモリ320の消去を実行する場合の制御フローを示すフローチャートである。同図に示すように、実施の形態3に係るフローチャートから、CPU410がタイマ起動信号S420に“1”を出力して、タイマ460の時間計測を開始する処理(TS)および、CPU410がオーバーフロー信号S430により、タイマ460のオーバーフローを判定する処理(TC)が追加されている。
【0133】
消去の制御フローは、内蔵フラッシュメモリ320に格納されたデータが消去されたか否かを確認するベリファイと、内蔵フラッシュメモリ320に消去パルスを印加する消去の2つに分類できる。ここで、ベリファイ処理には0.5msかかるものとする。また、消去パルスの印加は通常3ms単位で行うとものとし、さらにここでは1ms単位のパルスに3分割して1回目消去(Erase1)、2回目消去(Erase2)、3回目消去(Erase3)の3つの分割制御フローを実行するものとする。また、上記4つの分割制御フローに対して、ベリファイは“0H“、1回目消去(Erase1)は”1H“、2回目消去(Erase2)は”2H“、3回目消去(Erase3)は”3H“を割り当てて、次に実行する分割制御フローを示すデータ(再開情報)を内蔵RAM340に格納するものとする。
【0134】
CPU410が、内蔵ROM330に格納される消去プログラムを読み出し、実行すると、まずCPU410はタイマ起動信号S420に値“1”を出力して、タイマ460の時間計測を開始する(TS)。
【0135】
次にCPU410は、内蔵RAM340から次に実行する分割制御フローを示すデータ(再開情報)を読み出す(A)。
【0136】
初期状態において内蔵RAMは“0H”を保持しているため、CPU310はベリファイ実行フローに分岐する(B0)。
【0137】
次にCPU410は、内蔵フラッシュメモリ320に対してベリファイ用の電圧設定を行うために必要な制御レジスタ350の設定を順次行う(C0)。
【0138】
次に内蔵フラッシュメモリ320の該当メモリセルが消去状態か否かを確認(ベリファイ)するため、アドレスバスB300に該当アドレスを出力するとともに、リードイネーブル信号S310の値を“1”にして内蔵フラッシュメモリ320の該当アドレスのデータをデータバスB310から順次読み出す(D0)。
【0139】
次に、CPU410は、上記ベリファイ結果を判定する(E0)。以下、ベリファイ結果がフェイルの場合について説明する。
【0140】
CPU410はフェイルの結果を受けて、次に実行する分割制御フローが1回目消去(Erase1)であることを示す“1H”を内蔵RAM340に格納する(F4)。
【0141】
次に、CPU410は、内蔵フラッシュメモリに対して読み出し用の電圧設定を行うために必要な制御レジスタの設定を順次行う(G)。
【0142】
次にCPU410は、オーバーフロー信号S430により、タイマ460のオーバーフローを判定する(TC)。このときベリファイ動作に係る処理時間は0.5msのためオーバーフロー信号S430は“0”となり、CPU410は次の分割制御フローを継続して実行するため、内蔵RAM340が格納する再開情報を読み出す(A)。上記のように、内蔵RAM340はデータ“1H”を格納しているため、1回目消去(Erase1)フローに分岐する(B0)(B1)。
【0143】
次にCPU410は、消去用の電圧設定を行うために必要な制御レジスタ350の設定を順次行う(C1)。
【0144】
次にCPU410は、内蔵フラッシュメモリ320に対して分割消去パルスの1回目を印加するために必要な制御レジスタ350の設定を順次行う(D1)。
【0145】
次にCPU410は、次に実行する分割制御フローが2回目消去(Erase2)であることを示す“2H”を内蔵RAM340に格納する(F1)。
【0146】
次に、CPU410は、内蔵フラッシュメモリ320に対して読み出し用の電圧設定を行うために必要な制御レジスタ350の設定を順次行う(G)。
【0147】
次に、CPU410は、オーバーフロー信号S430により、タイマ460のオーバーフローを判定する(TC)。このとき、ベリファイ動作に係る時間0.5msに加えて、分割消去の1回目が実施され合計1.5msの時間が経過しているため、オーバーフロー信号S430は“1”となり制御フローを終了する。このとき、消去処理はベリファイフローおよび1回目消去(Erase1)フローのみ実行して中断したことになる。
【0148】
このように、書き換え処理の制御フローを分割し、分割された個々のフローが完了する度に所定の時間を超えて処理が実行されているかを確認し、所定の時間を超えて処理が行われている場合には消去処理の実行を中断することで、書き換え処理開始から処理中断までの時間を均一化することができるため、アプリケーション上で内蔵フラッシュメモリ320の書き換え処理をタスク管理に埋め込むことがさらに容易となる。
【0149】
《実施の形態5》
本発明の実施の形態5では、実施の形態1または実施の形態2のフラッシュメモリのいずれかをエアコンシステムに搭載している。
【0150】
図7は、本発明の実施の形態5に係るエアコンシステムの構成を示すブロック図である。
【0151】
上記エアコンシステムは、リモコン510と室内機520とから構成される。室内機520は、マイクロコンピュータ530と、受光素子580と、オペアンプ590と、LCD(液晶表示)パネルと、スピーカなどを備えている。マイクロコンピュータ530は、フラッシュメモリ540とCPU550とを備えている。フラッシュメモリ540は、実施の形態1または2で説明したいずれかのフラッシュメモリである。
【0152】
フラッシュメモリ540とCPU550とは、アドレスバスB500、データバスB510、ライトイネーブル信号S500、リードイネーブル信号S510を介して接続されている。
【0153】
リモコン510は、マイクロコンピュータ560と、LED570と、LCDパネルと、図示しないキーパッド等を備えており、ユーザがキーパッドを用いて行った操作に対する信号をマイクロコンピュータ560で受け、LED570により室内機520に伝送する。
【0154】
CPU550は、フラッシュメモリ540に格納された命令コードを読み出し、解読、実行し、数ms単位でタスクを切替えながらエアコンシステムの各種制御を行うものとする。
【0155】
また、CPU550は、受光素子580およびオペアンプ590を通じて、上記リモコン510の操作に対応する信号を受けて、フラッシュメモリ540の所定の領域に対してデータの書き込みコマンドを発行する。書き込みデータには、具体的には、電源オン/オフの状態、温度設定、冷房/暖房の状態、ファン(FAN)の回転数、上下ルーバの角度、などがある。
【0156】
さらにCPU550は、フラッシュメモリ540の所定の領域が、上記書き込みデータで埋め尽くされた場合には、フラッシュメモリ540に対して消去コマンドを発行する。
【0157】
フラッシュメモリ540は、命令コードおよび上記の種種のデータを格納しており、リードイネーブル信号S510が値“1”である場合、アドレスバスB500に出力されているアドレスによって指定されるメモリ領域に格納されている命令コードやその他のデータをデータバスB510に出力する。また、ライトイネーブル信号S520が値“1”である場合、アドレスバスB500の値とデータバスB510の値との組み合わせをコマンドと認識してコマンドを解読し、書き込み、消去動作を実行する。CPU550が発行する書き込みコマンドを受けて、書き込み動作を実施し、新たなデータを格納する。
【0158】
フラッシュメモリの消去コマンドの実行は、実施の形態1および実施の形態2にあるように、分割された制御フローを実施する度に消去動作を中断し、読み出し可能状態とするため、CPU550は、消去コマンドを発行した後も所定の時間以内にフラッシュメモリ540に格納された命令コードを読み出すことが可能となるため、数ms単位でタスクを切替えながら、エアコンシステムの各種制御を行うことができる。
《その他の実施の形態》
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【0159】
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。上記RAMまたは上記ハードディスクユニットには、コンピュータプログラムが記憶されている。上記マイクロプロセッサが、上記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0160】
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。上記RAMには、コンピュータプログラムが記憶されている。上記マイクロプロセッサが、上記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。これらは個別に1チップ化されても良いし、一部または全てを含むように1チップ化されても良い。
【0161】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0162】
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0163】
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0164】
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。上記ICカードまたは上記モジュールは、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。上記ICカードまたは上記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、上記ICカードまたは上記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0165】
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0166】
また、本発明は、上記コンピュータプログラムまたは上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-Ray Disk)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている上記コンピュータプログラムまたは上記デジタル信号であるとしてもよい。
【0167】
また、本発明は、上記コンピュータプログラムまたは上記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0168】
また、上記プログラムまたは上記デジタル信号を上記記録媒体に記録して移送することにより、または上記プログラムまたは上記デジタル信号を上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0169】
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0170】
本発明に係る不揮発性メモリの自動書き換え中断方法と不揮発性メモリおよびマイクロコンピュータは、不揮発性メモリの書き換え処理が所定の時間内に自動で中断できるという効果を有し、例えば、エアコンシステムにおける温度設定データなどのように次々と変更されるデータを記録していく必要のあるシステムに有用である。
【図面の簡単な説明】
【0171】
【図1】本発明の実施の形態1に係るフラッシュメモリ100の構成を示すブロック図である。
【図2】本発明の実施の形態1に係る書き換え制御部120が消去コマンドを実行する場合の制御フローを示すフローチャートである。
【図3】本発明の実施の形態2に係るフラッシュメモリ200の構成を示すブロック図である。
【図4】本発明の実施の形態2に係る書き換え制御部220が消去コマンドを実行する場合の制御フローを示すフローチャートである。
【図5】本発明の実施の形態3に係るマイクロコンピュータ300の構成を示すブロック図である。
【図6】本発明の実施の形態4に係るマイクロコンピュータ400の構成を示すブロック図である。
【図7】本発明の実施の形態5に係るエアコンシステムの構成を示すブロック図である。
【符号の説明】
【0172】
100 フラッシュメモリ
110 コマンドデコード部
120 書き換え制御部
130 メモリアレイ
140 出力制御部
150 再開情報保持部
200 フラッシュメモリ
220 書き換え制御部
260 タイマ
300 マイクロコンピュータ
310 CPU
320 フラッシュメモリ
330 ROM
340 RAM
350 制御レジスタ
400 マイクロコンピュータ
410 CPU
460 タイマ
510 リモコン
520 室内機
530 マイクロコンピュータ
540 フラッシュメモリ
550 CPU
B100 アドレス入力
B110 データ入出力
B120 書き換えアドレスバス
B130 書き込みデータバス
B140 コマンド信号
B150 アレイ制御信号
B160 状態信号
B170 読み出しデータバス
B300 アドレスバス
B310 データバス
B500 アドレスバス
B510 データバス
S100 ライトイネーブル
S110 リードイネーブル
S220 タイマ起動信号
S230 オーバーフロー信号
S300 ライトイネーブル
S310 リードイネーブル
S420 タイマ起動信号
S430 オーバーフロー信号
S500 ライトイネーブル
S510 リードイネーブル

【特許請求の範囲】
【請求項1】
不揮発性メモリを書き換えるための所定の制御フローを複数個の分割制御フローから構成し、前記複数個の分割制御フローの1つが完了する度に前記制御フローの実行を中断することにより前記不揮発性メモリの書き換えを中断し、前記不揮発性メモリを読み出し可能な状態とすることを特徴とする不揮発性メモリの自動書き換え中断方法。
【請求項2】
前記不揮発性メモリの書き換えを中断した状態から前記不揮発性メモリの書き換えを再開するために必要な再開情報を記憶し、前記制御フローとして、前記再開情報から決定される所定の分割制御フローを実行し、前記所定の分割制御フローが完了すると前記制御フローの実行を中断するとともに、前記再開情報を更新記憶することを特徴とする請求項1記載の不揮発性メモリの自動書き換え中断方法。
【請求項3】
前記制御フローでは、まずタイマによる時間計測を開始し、前記分割制御フローが完了する度に時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には前記制御フローの実行を中断することを特徴とする請求項1または2記載の不揮発性メモリの自動書き換え中断方法。
【請求項4】
書き換え可能な不揮発性メモリであって、
複数のメモリセルから構成されるメモリアレイと、
不揮発性メモリ外部から入力されるコマンドを解読するコマンド解読部と、
前記コマンド解読部の解読結果により、所定の制御フローに従い前記メモリアレイを書き換える書き換え制御部と、
を備え、
前記制御フローは、複数個の分割制御フローから構成され、
前記複数個の分割制御フローの1つが完了する度に前記制御フローの実行を中断することにより前記メモリアレイの書き換えを中断し、前記メモリアレイを読み出し可能な状態とするように構成されていることを特徴とする不揮発性メモリ。
【請求項5】
前記書き換え制御部は、前記メモリアレイの書き換えを中断した状態から前記メモリアレイの書き換えを再開するために必要な再開情報を記憶する再開情報保持部を備え、
前記制御フローとして、前記再開情報保持部が保持する再開情報から決定される所定の分割制御フローを実行し、前記所定の分割制御フローが完了すると前記制御フローの実行を中断するとともに、前記再開情報を前記再開情報保持部に更新記憶するように構成されていることを特徴とする請求項4記載の不揮発性メモリ。
【請求項6】
時間を計測し所定の時間を超過したことを検出するタイマを備え、
前記制御フローでは、まず前記タイマの時間計測を開始し、前記分割制御フローが完了する度に前記タイマの時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には前記制御フローの実行を中断するように構成されていることを特徴とする請求項4または5記載の不揮発性メモリ。
【請求項7】
書き換え可能な不揮発性メモリと、
前記不揮発性メモリを所定の制御フローに従い書き換え制御するCPUとを備えたマイクロコンピュータであって、
前記制御フローは、複数個の分割制御フローから構成され、
前記複数個の分割制御フローの1つが完了する度に制御フローの実行を中断することにより前記不揮発性メモリの書き換えを中断し、前記不揮発性メモリを読み出し可能な状態とするように構成されていることを特徴とするマイクロコンピュータ。
【請求項8】
前記不揮発性メモリの書き換えを中断した状態から前記不揮発性メモリの書き換えを再開するために必要な再開情報を記憶する再開情報保持部を備え、
前記制御フローとして前記再開情報保持部が保持する再開情報から決定される所定の分割制御フローを実行し、前記所定の分割制御フローが完了すると前記制御フローの実行を中断するとともに、前記再開情報を前記再開情報保持部に更新記憶するように構成されていることを特徴とする請求項7記載のマイクロコンピュータ。
【請求項9】
時間を計測し所定の時間を超過したことを検出するタイマを備え、
前記制御フローでは、まず前記タイマの時間計測を開始し、前記分割制御フローが完了する度に前記タイマの時間超過の有無を確認し、超過していない場合には次の分割制御フローを実行し、超過している場合には前記制御フローの実行を中断するように構成されていることを特徴とする請求項7または8記載のマイクロコンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−79758(P2010−79758A)
【公開日】平成22年4月8日(2010.4.8)
【国際特許分類】
【出願番号】特願2008−249387(P2008−249387)
【出願日】平成20年9月29日(2008.9.29)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】